This unit introduces students to designing software by exploring in detail the development of software designs from a problem statement using the techniques of object-oriented analysis and design. The resulting designs are expressed in UML notation. Topics covered include designing systems with data abstraction, data encapsulation, inheritance, generalisation and specialisation, object-oriented analysis and design techniques, design by contract, design and reusability, and the role of software engineering concepts for managing software development. This unit introduces the concepts of programming languages and object-oriented programming, and provides practical experience in the... -- Course Website
Instructor: T Pham
Prerequisites: Nil