Week 4 - Software Architecture
Architecture is the fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution
From ISO/IEC/IEEE 42010 Systems and software engineering — Architecture description (2011)
Architecture is conceptual
Architecture is about fundamental (important) things
Quality Attributes
Measurable or testable property
- Feasibility
- Reusability
- Consistency
- Simplicity
- Stability
- Composability
- Deployability
Operation Quality
Failure-Related Quality
Security-related Quality
Change-related Quality
Project Health Quality
Attribute-Driven Design (ADD)
Designing Software Architecture: Attribute Driven Design (ADD) | by Higor Diego | Medium
Focuses on identifying and modeling attributes (characteristics) of a system that are important to its users and stakeholders
4+1 architectural view model
4+1 architectural view model - Wikipedia
- Logical view
- Process view
- Implementation/Development view
- Deployment/Physical view
- Scenario
Architectural styles
- Blackboard
- Client-Server / Master-slave
- Event-bus/Publish–subscribe pattern
- Pipe-and-Filter
- Layered pattern
- Microkernel
- Model-View-Controller