This subject aims to develop an understanding of the issues which beset software engineering and to build competence in the application of mathematics in software development.
The issues portion of the subject covers topics such as the nature of software as an entity to be engineered, the newness of the software engineering discipline and current issues in the large-scale application of software engineering practice.
The mathematics portion covers fundamental concepts and methods for software development and engineering, including formal specification, program development from specification and proving/verifying correctness. Appropriate tools and packages are used, including Z and OCL. The mathematical basis includes predicate logic and structures (sets, relations, functions and trees).
Autumn semester, City campus