软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。架构设计主要关注软件组件的结构、属性和(),并通过多种()全面描述特定系统的架构。
问题(1)
问题(2)
考试趋势:本章平均每年约2~3 分。
- 近年考查主要集中在4+1 视图,软件架构定义和架构描述语言的题目相对较早且较少;复习时优先掌握各视图的关注点和名称对应。
- 题目以概念辨析和视图映射为主,常考逻辑、进程、开发、物理与场景视图的职责区别;RUP/UML 的实现、部署、用例视图要注意同义对应。
软件架构(Software Architecture,SA),或称软件体系结构,是指系统的一个或者多个结构。这些结构包括软件的构件(可能是程序模块、类或者中间件)、构件的外部可见属性及其之间的相互关系。
软件架构是对软件系统结构、行为和属性进行的高层次抽象。它不仅描述系统的组织结构和拓扑结构,还要说明系统需求与构件之间的对应关系,以及架构设计中的关键决策。
软件体系结构的设计通常考虑到设计金字塔中的两个层次——数据设计和体系结构设计:
补充:架构描述语言(ADL)用于明确描述和建模软件系统的概念架构,主要包含构件、构件接口、连接件和架构配置。
对应真题:#2013.11-28#2013.11-30#2014.11-28#2015.11-31#2015.11-38
为了从不同角度描述复杂软件架构,Kruchten 提出了4+1 视图模型。
一句话背诵:逻辑看功能,进程看运行,开发看代码,物理看部署,场景来验证。
RUP/UML 也采用 4+1 视图模型,用于在开发过程中从不同角度描述软件架构。图中蓝色文字表示与前一张图名称不同的视图:
RUP/UML 与常见 4+1 模型的关注点基本相同,主要是名称有所区别:
这个对比的用途是识别同一关注点的不同叫法:两种模型的关注内容基本一致,只是开发视图称为实现视图、物理视图称为部署视图、场景视图称为用例视图。做题时按题干采用的模型名称判断即可。
对应真题:#2014.11-31#2018.11-31#2019.11-29#2021.11-32#2022.11-40#2024.11-19#2025.05-19#2025.11-54
