Software Architecture and Design
Number of Lectures
This course is designed for Software Engineering students. It focuses on the aspect of architecture and software design. Students will learn about design patterns, frameworks, and architectures, as well as the role of architecture in the software development process.
This course covers the following topics:
Architecture documentation, interfaces and middleware, design of distributed systems, component based design, architecture attributes: performance, safety, security, reusability, reliability, etc.; measuring qualities and complexity of software, design patterns, frameworks, view type and styles, module view type, components and connector viewtype; Styles and allocation of software architecture; Interfaces and GUI; Reverse engineering techniques, object-oriented design, the OO model, design process and patterns, review and inspections.
1. “Architecting Software Intensive Systems: A Practitioners Guide," Lattanze (Lat08)
2. “Software Architectures in Practice,” Bass, Clements, Kazman (BCK03)