2.软件架构设计与生命周期
生命周期

架构为了支撑需求
需求分析阶段(在具体架构之前)
需求模型是逻辑模型,到架构设计阶段要转换为物理模型,模型转换需要关注两个问题
- 如何根据需求模型构建 SA【架构】模型
- 转换工程可以追溯(溯源)
设计阶段(架构设计属于设计阶段,有高层的架构设计,也有中层的设计模式等)
早期研究架构设计,后期研究架构内设计如何落地
这是 SA【架构】研究关注的最早和最多的阶段
需要关注 ADL 和 4+1 视图
实现阶段
把设计的思想、逻辑落地
落地时配套构件的方法论
构件组装阶段
把各部分构件组装起来
部署
SA 为部署提供高层视图知道
后开发阶段(维护)
会涉及到架构优化、演化
动态软件体系结构(内部执行和外部请求导致变化)、体系结构恢复和重建
ADL(类似伪代码)
ADL 是一种形式化语言,在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架
- C2SADL 【基于组件和消息的软件架构描述语言】
- Wright 【分布、并发类型的架构描述语言】
- ACME 【架构互换语言】
- UniCon 【基于组件和连接的架构描述语言】
- Rapide 【基于事件的架构描述语言】
三个基本元素
- 构件:计算或数据存储单元
- 连接件:用于构件之间交互建模的体系结构构造块及其支配这些交互的规则
- 架构配置:描述体系结构的构件与连接件的连接图
4+1 视图
架构是复杂的东西 需要从不同角度去看待(类似建筑中的电路图、设计图等)
视图可以降低架构呈现的复杂度

逻辑视图用到了类与对象(考试中可能不叫逻辑视图,是个抽象) (实现/开发)视图强调系统配置、装配(体现源代码结构) (进程/过程)视图强调并发、可伸缩、吞吐率 (部署/物理)视图对应发布、安装