At the end of this module, student shall be able to
Understand the software development process models and be able to reason about their characteristics,
Describe an architecture accurately,
Recognize major architectural styles in existing software systems,
Evaluate design alternatives for a problem
Construct a design specification for a medium-sized software system that satisfies a requirement specification,
Understand the use of various design principles and patterns and be able to reason about them, and understand the use of design quality attributes and be able to evaluate a design.
- Explain how programs treat the other programs as their input data.
- Write a program to process some representation of code for some purpose