Skip to main content

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

搞笑談軟工: 軟體架構的 4 + 1 View

  • 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