Upon successful completion of the course students will be able to
1. Understand and discuss the properties of good architectural design
2. Compare and contrast object-oriented analysis and design with structured analysis and design.
3. Evaluate the quality of multiple architectural designs based on key design principles and concepts.
4. Select and apply appropriate architectural patterns in the development of a software system.
5. As part of a team effort, create and specify a software architectural design for a medium-size software product based on an existing software requirement specification using an accepted program design methodology (e.g., structured or object-oriented), and appropriate design notation.
6. Conduct a software architectural review using appropriate guidelines.
7. Evaluate a software architecture at the component level.
8. Evaluate a software architecture from the perspective of reuse.