Almost certainly, it will be modified and updated as the semester progresses. The standard course outline is given in the anu handbook here is an approximate draft schedule of lectures, tutorials and assignments. Teaching formal methods for software engineering 3 context of process algebra, are also to be found in temporal logics, which again are closely connected to automata theory, and are applied, e. The following outline is provided as an overview of and topical guide to software engineering. This model lays the foundation for developing a complex system and supporting the program development. This book contains enough material for three courses of study. More specifically, we deal with specifying sequential programs and concurrent systems, computersupported verification, extended static checking, model checking. Bachelor of software engineering, distance learning degree programs for adult learners at the bachelors, masters, and doctoral level. Course outline formal methods in software engineering. Comp sci 7405 research methods in software engineering.
Software engineering application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. Dit271 formal methods in software development at gu. Seng1031 is a prerequisite for this course, and comp2111 is a corequisite. Formal methods are system design techniques that use rigorously specified mathematical models to build software and hardware systems. As a nontraditional university, self paced programs taken online, by correspondence or home study. It studies languages for objectoriented modeling, such as the unified modeling language uml along with its object constraint language ocl and action semantics extensions. National university of sciences and technology nust is a national institution imparting highquality higher education at both undergraduate and postgraduate levels in the disciplines of engineering, leadership, peace and conflict studies. The formal methods used during the development process provide a mechanism for eliminating problems, which are difficult to overcome using other software process. Develop a scientific understanding of algorithmic verification techniques, including the underlying concepts for stateoftheart tools. This preliminary syllabus can be expected to change as the course progresses.
This course provides a handson introduction to formal methods for software engineering. The course will focus on two particular styles of formal methods for. Formal methods in software engineering course formal methods in software engineering formal methods of software design. In computer science, specifically software engineering and hardware engineering, formal methods are a particular kind of mathematically rigorous techniques for the specification, development and verification of software and hardware systems. The formal methods model is an approach to software engineering that applies mathematical methods or techniques to the process of developing complex software systems. Please check with me if you wish to reproduce or adapt any of this material. Motivation for program specification and verification book 4. Mike hinchey formal methods formal methods are mathematically based techniques for specification, development and verification of systems, both hardware and software. The use of formal methods for software and hardware design is motivated by the expectation that, as in other engineering disciplines, performing. Since knowledge in all disciplines and fields is expanding at a fast. Software engineering course descriptions ecs 1200 introduction to engineering and computer science 2 semester hours introduction to the engineering and computing professions, professional ethics.
This course covers formal methods used in the development of software. The software engineering community has applied formal methods to improve software reliability and dependability to specify, design, analyze, and implement a hardware or software system. In software engineering, formal methods are a particular kind of mathematically based techniques for the specification, development and verification of software and hardware systems. In the graduate program, the course wa formal methods. It introduces concepts such as software processes and agile methods, and essential software development activities, from initial specification through to system maintenance. Quizzes take place during the normal class periods. Comp sci 1106 introduction to software engineering. The universitys open courses are free and do not require any. Course summary this course teaches practical techniques for computer program development that help us to proceed from informal but precise requirements, via more formal and precise specifications through to implementations that are correct and easy to understand and. This course outline contains important information that may affect your grade. Using z carnegie mellon school of computer science.
Course curriculum national university of sciences and. In contrast to other design systems, formal methods use mathematical proof as a complement to system testing in order to ensure correct behavior. Teaching formal methods for software engineering ten. Formal methods and software engineering springerlink. Predicate calculus and natural deduction, inductive definitions of data types as a basis for. Be able to specify software using program logics such as temporal logic. This material can be adapted in a number of ways, to support other courses or as part of a programme of selfpaced learning. Formal methods is a generic term for system design, analysis, and implementation methods that are described and used with mathematical rigor. Course outline 19 common computing core courses 19. Bachelor of software engineering, course outline online. Formal methods in software engineering course outline search this guide search. This course provides a general introduction to software engineering. Advanced software engineering open courses by atlantic. Course goals the overall goal of this course is to learn software engineering methods, both formal and informal, and to practice their use in designing, building, and validating verifying, testing practical software systems.
The following course in advanced software engineering is provided in its entirety by atlantic international universitys open access initiative which strives to make knowledge and education readily available to those seeking advancement regardless of their socioeconomic situation, location or other previously limiting factors. This course gives a survey on the use of formal methods for the development of reliable software. Course description this course covers the fundamentals of formal methods and can be used as a breadth course for software engineering and information security. Please enrol for the course intended for your degree program. National university of sciences and technology nust is a national institution imparting highquality higher education at both undergraduate and postgraduate levels in the disciplines of electrical engineering, aerospace engineering, construction engineering, mechanical engineering. Advanced topics in formal methods and software architecture. The course will cover techniques applicable to each of the steps of a research project, including formulating research questions, theory building, data analysis using both qualitative and quantitative methods, building evidence, assessing validity, and publishing. Course outline we explore selected formal methods for the description, construction and analysis of software systems. Introducing formal methods formal methods for software specification and analysis. We will examine techniques for modeling and formally analyzing computing systems and will consider applications in software, hardware, and security.
Fast track affordable degree programs allow professional adults to finish college earn a degree and advance their careers. The conference focuses in all areas related to formal engineering methods, such as veri. Their objective is software reliability in applications where failure is unacceptable, e. These platform independent specifications serve as an initial technical contract between the programmer and client, and subsequently guide the creation, verification, and documentation of the software. The formal methods model is concerned with the application of a mathematical technique to design and implement the software. Fall 20 page 6 of 6 cse program outcomes outcome description of outcome 1 an ability to apply knowledge of computing, mathematics, science, and engineering 2 an ability to design and conduct experiments, as well as to analyze and interpret data 3 an ability to design, implement, and evaluate a computerbased system, process. This course presents some formal notations that are commonly used for the description of computation and of computing systems, for the specification of software and for mathematically rigorous arguments about program properties. The need for these methods is rooted in the desire to create robust and reliable computer programs. The use of formal methods approaches can help to eliminate errors early in the design process. This course covers the fundamentals of software engineering, including understanding system requirements, finding appropriate engineering compromises, effective methods of design, coding, and testing, team software development, and the application of engineering tools. Formal methods for software development about this course. An overview l 5 2 software engineering and formal methods nevery software engineering methodology is based on a recommended development process proceeding through several phases.
You should retain it throughout the semester as you will be assumed to be familiar with the rules specified in this document. Understand the role of abstraction in formal methods and its uses to simplify models and make verification feasible. Cs 533 formal methods in software engineering 3 credit. This course will prepare students for advanced research by examining how to plan, conduct and report on empirical investigations. The following areas of study constitute the backbone of the course. Within a discipline, there are often attempts to unify structural. Formal methods courses have been taught at universite du quebec a montreal uqam, montreal, pq, canada, since 1996. Course contents introduction, limitations of testing and need for formal verification, overview of logic and propositional calculus, calculational logic, logical connectives, boolean equality, continued equivalence, disjunction, conjunction, implication, introduction to hoares logic, weakest precondition, the assignment axiom, calculating assignments, sequential composition, conditional. The course will combine a strong technical focus with a capstone project. Acm transactions on software engineering and methodology 61. Formal methods electrical and computer engineering at. The purpose of formal methods is to enable the construction of highly reliable software. Elements of discrete mathematics, formal mechanisms for specifying and verifying the correctness, reliability and efficiency of software systems, finite state machines, regular expression, assertions, algebraic and model based specification techniques including.
1428 314 426 577 1567 775 399 1352 40 466 1077 985 281 1457 1616 1312 1273 529 1360 1549 912 948 315 473 1216 784 576 991 116 581 1288 321 145 506 1137 711 1423 510 340 499