The purpose of this course is to familiarize students with concepts, methods, and tools for object oriented analysis and design of software systems, with emphasis on methods applied in large product development projects.
The course introduces common design principles and patterns that support the development of maintainable, reusable and extensible software. The course gives an introduction to UML. Analysis- and design models are expressed using UML models such as use case diagrams, class diagram, sequence diagrams, and state diagrams. Furthermore, techniques and guidelines are introduced for analysis of software domain and requirements.