2010-09-18
School of Software
4
Carnegie Mellon University Software Engineering Masters Programs https://www.doczj.com/doc/188669949.html,/software-engineering/Courses/17-651-models-of-software-development.html Scientific foundations for software engineering depend on the use of precise, abstract models for characterizing and
reasoning about properties of software systems. This
course considers many of the standard models for representing sequential and concurrent systems, such as state machines, algebras, and traces. It shows how different logics can be used to specify properties of software systems, such as functional correctness,
deadlock freedom, and internal consistency. Concepts such as composition mechanisms, abstraction relations, invariants, non-determinism, inductive definitions and denotational descriptions are recurrent themes
throughout the course. This course provides the formal foundations for the other core courses. Notations are not emphasized, although some are introduced for concreteness. Examples are drawn from software applications.
John.E.Hopcroft, the Turing Award
A U
B = { 1, 2, 3, 4, 5 } A B
2
3
1
4
5
1
Venn diagrams
If n+1 objects are put into n boxes, then at least one box must contain 2 or more