These notes present the basic engineering principles, methods and practice of how a large system can be
specified, desigined and implemented using object-oriented techniques.
The overall purpose of the notes is to give a understanding of problems of large-scale software development
and how this can be solved using object-oriented techniques. The main focus is about the use of objectorientation
to analyse, specify, design and implement software systems. UML will be used as the modelling
language for the specification of a system at different stages in its development.