This course will prepare students for advanced research by examining how to plan, conduct and report on empirical investigations. We will examine techniques for modeling and formally analyzing computing systems and will consider applications in software, hardware, and security. Introducing formal methods formal methods for software specification and analysis. Formal methods in software engineering course formal methods in software engineering formal methods of software design. This course outline contains important information that may affect your grade. 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. Course description this course covers the fundamentals of formal methods and can be used as a breadth course for software engineering and information security. 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. The use of formal methods approaches can help to eliminate errors early in the design process.
The need for these methods is rooted in the desire to create robust and reliable computer programs. Seng1031 is a prerequisite for this course, and comp2111 is a corequisite. This course provides a handson introduction to formal methods for software engineering. 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. 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. This course covers formal methods used in the development of software. Their objective is software reliability in applications where failure is unacceptable, e. Please enrol for the course intended for your degree program. This course gives a survey on the use of formal methods for the development of reliable software. 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. Please check with me if you wish to reproduce or adapt any of this material.
Formal methods and software engineering springerlink. Formal methods in software engineering course outline search this guide search. The standard course outline is given in the anu handbook here is an approximate draft schedule of lectures, tutorials and assignments. Using z carnegie mellon school of computer science. 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. Software engineering application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. 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.
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. Software engineering course descriptions ecs 1200 introduction to engineering and computer science 2 semester hours introduction to the engineering and computing professions, professional ethics. Almost certainly, it will be modified and updated as the semester progresses. This preliminary syllabus can be expected to change as the course progresses. 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. 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. Teaching formal methods for software engineering ten. Quizzes take place during the normal class periods. Course curriculum national university of sciences and. You should retain it throughout the semester as you will be assumed to be familiar with the rules specified in this document.
Formal methods are system design techniques that use rigorously specified mathematical models to build software and hardware systems. Since knowledge in all disciplines and fields is expanding at a fast. Overview of ecs curricula, connections among ecs fields. Bachelor of software engineering, course outline online. Advanced software engineering open courses by atlantic. Develop a scientific understanding of algorithmic verification techniques, including the underlying concepts for stateoftheart tools.
The universitys open courses are free and do not require any. Comp sci 7405 research methods in software engineering. The formal methods model is concerned with the application of a mathematical technique to design and implement the software. Formal methods for software development about this course. In the graduate program, the course wa formal methods. Course outline formal methods in software engineering. Acm transactions on software engineering and methodology 61.
Within a discipline, there are often attempts to unify structural. Fast track affordable degree programs allow professional adults to finish college earn a degree and advance their careers. Advanced topics in formal methods and software architecture. Bachelor of software engineering, distance learning degree programs for adult learners at the bachelors, masters, and doctoral level.
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. In contrast to other design systems, formal methods use mathematical proof as a complement to system testing in order to ensure correct behavior. It studies languages for objectoriented modeling, such as the unified modeling language uml along with its object constraint language ocl and action semantics extensions. Course outline we explore selected formal methods for the description, construction and analysis of software systems. 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.
Course outline introduction to software engineering. Dit271 formal methods in software development at gu. This book contains enough material for three courses of study. The course will combine a strong technical focus with a capstone project. More specifically, we deal with specifying sequential programs and concurrent systems, computersupported verification, extended static checking, model checking. The following areas of study constitute the backbone of the course. 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. Formal methods courses have been taught at universite du quebec a montreal uqam, montreal, pq, canada, since 1996. The conference focuses in all areas related to formal engineering methods, such as veri. Cs 533 formal methods in software engineering 3 credit. 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. Course outline 19 common computing core courses 19.
Be able to specify software using program logics such as temporal logic. The use of formal methods for software and hardware design is motivated by the expectation that, as in other engineering disciplines, performing. Mike hinchey formal methods formal methods are mathematically based techniques for specification, development and verification of systems, both hardware and software. The purpose of formal methods is to enable the construction of highly reliable software. 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. 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. It introduces concepts such as software processes and agile methods, and essential software development activities, from initial specification through to system maintenance.
In software engineering, formal methods are a particular kind of mathematically based techniques for the specification, development and verification of software and hardware systems. The course will focus on two particular styles of formal methods for. The formal methods used during the development process provide a mechanism for eliminating problems, which are difficult to overcome using other software process. Understand the role of abstraction in formal methods and its uses to simplify models and make verification feasible. Motivation for program specification and verification book 4. As a nontraditional university, self paced programs taken online, by correspondence or home study. This model lays the foundation for developing a complex system and supporting the program development.
Formal methods electrical and computer engineering at. Predicate calculus and natural deduction, inductive definitions of data types as a basis for. The following outline is provided as an overview of and topical guide to software engineering. This course provides a general introduction to software engineering. Comp sci 1106 introduction to software engineering.
310 148 434 1422 155 794 581 1470 286 616 118 357 345 1252 466 138 154 210 1245 1588 1228 1397 858 31 14 557 1604 360 1 757 1407 1015 1269 1257 529 1057 1139 72 1423 748 339 863 502 173 1044