SEN 410
Software Architecture and Design
2
Course Description
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 Outline
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.