SEN 410: Software Architecture and Design



Learning Outcomes
At the end of this course, students should be able to:
1. describe design patterns, frameworks and architectures;
2. explain design of distributed systems and component based design; and
3. describe the techniques of designing for qualities such as reliability, performance, safety, security and reusability.

Course Contents
An in-depth look at software design. Continuation of the study of design patterns, frameworks, and architectures. Survey of current middleware architectures. Design of distributed systems using middleware. Component based design. Measurement theory and appropriate use of metrics in design. Designing for quality attributes such as reliability, performance, safety, security, reusability, etc. Measuring internal qualities and complexity of software. Evaluation and evolution of designs.
Lab Work: Practical demonstration of the use of design patterns, frameworks and architectures. Practical simulation of distributed systems. Illustration of component based design. Working with software design software. Use of software metrics measuring software.