Ch04 Software Design
# Software Design
Basic Principles of the Design
从system model出发,设计 system architecture 和 specific system components
system --> subsystems + interplay --> components + interfaces
System analysis to system design

System architecture: A system architecture describes the structure of the system by means of software components and the relationships(events等) amongst each other.
设计需要考虑的标准

call return pattern

pipes and filter Architectures:支持复用,并发,易维护
pipe 是连接两个方块的线
filter是方块
controller控制板块

Service Oriented Architecture(SOA):Architectural style that for software design where services are provided to other componentsthrough a communication protocol over a network.
更好的复用
统一的接口标准
可移植性强,可以跨平台调用
Service: A service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently, such as retrieving a location information online.

Evaluation

Multi-tier Architectures多层架构:
- 例如: IOT三层架构

- 例如: IOT三层架构
MVC架构:

Analysis the system archtecture:
从每个stakeholder的角度,分析scenarios
SAAM方法: 想各种scenarios,并排优先级,分为直接或者间接,分别评估

ATAM方法:注意analysis的输入输出

Design principles:
module:可以独立测试,不关心其中的具体实现的模块,如 class, component, library
在设计module的时候,要权衡耦合性,复杂性和module的数量

analysis model --> design model

System of Systems
real time:
Real-time Design Patterns:
Concurrency Patterns:control and scheduling of the architectural elements
help to organize, manage, use and share finite resources in real-time andembedded systems
Watchdog Pattern:解决死锁等问题

Event-driven architectures
Time-driven architectures
Safey:
