Life cycle models, Fundamentals of software design; UML; data flow modelling like: object-oriented analysis and design; software architecture and design patterns; software architectural modelling; computer tools: version management software and CASE tools.