软件体系结构(System Architecture简称SA)
定义
对于大规模的,分布的,需要协作的,需要交互的,需要监测的,需要扩展的,需要演化的复杂软件系统的规划。
要素
组件(component )连接件 (connector) 配置 (configuration) 约束 (constraint)
4+1View主要特点
多视图共同表达不同涉众的观点
- 逻辑视图(Logical View):表示系统功能。考虑功能性需求——系统需要在给用户的服务方面应该提供的。
- 开发视图(Development View):表示开发分工和任务管理。考虑软件模块组织——层次分析,软件管理,重用,工具约束。
- 进程视图(Process View):表示系统进程,线程,分布等信息。考虑非功能性需求——并发性,性能,可扩展性。
- 物理视图(Physical View):表示系统物理部署情况。考虑非功能性需求——关于底层硬件(拓扑,通信)。
- 场景(Scenarios):用一些场景、用例来描述系统各个部分之间,以及与环境之间的交互。考虑系统一致性,有效性。
风格
- 描述一类体系结构
- 在实践中被多次设计、应用
- 是若干设计思想的综合
- 具有已经被熟知的特性,并且可以复用
决定因素
- 一组组件类型(数据容器、过程、对象)
- 一组连接件类型/交互机制(过程调用、事件)