This course covers formal methods used in the development of software. It studies languages for object-oriented modeling, such as the Unified Modeling Language (UML) along with its Object Constraint Language (OCL) and Action Semantics extensions; the specification of abstract data types, such as Z; and concurrency, such as process algebras and temporal logic.Aims:The aim of the course is to equip students with the knowledge to develop and specify a precise statement of what the software is to do, while avoiding explicit (or even implicit) constraints on how it is to be done.
At the end of the course