Advanced Software Design
- Building designs from use cases/requirements descriptions;
- identifying classes, assigning responsibilities and determining collaborations between objects;
- modelling and documenting software design;
- Software Design patterns;
- Software Architecture;
- Model Driven Engineering;
- Modern approaches to software design;
- Practical exercises will involve the use of software tools to construct or modify designs as well as practical implementations to illustrate design principles and patterns and approaches.
- Have a good knowledge of the software design process for object oriented software;
- Describe software design principles and be able to choose from a range of software design patterns and to implement these singly or in compbination to solve specific problems;
- Appreciate the application of Software Architecture design;
- Appreciate current and possible future trends in Software Design;
- Use appropriate modelling techniques and use software tools that support these.
Use of software tools; knowledge of software design processes and notations and their use.