Authorised by Academic Registrar, April 1996
Objectives On completion of the subject students will understand the synergy between a modern object-oriented language (Eiffel), and the role of specification in software engineering; understand how this synergy plays a key role in software engineering; gain an insight into the software engineering process.
Synopsis This subject examines issues related to programming in the large. Topics covered include formal specification (using the Z specification language), criteria governing the design of modules, object orientation and the role of static and dynamic bindings in system construction. Examples of languages using strong typing, inheritance, polymorphism, genericity and persistence will be used to support these ideas. Of particular importance is the process of mapping formal specifications into implementations, and the idea of programming by contract.
Assessment Examination (2 hours): 60% + Two exercises: 40%