1. 软件体系结构分类:结构模型、框架模型、动态模型、过程模型、功能模型
(1)结构模型:以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质等。
【最直观、最普遍的建模方法】
(2)框架模型:不太侧重描述结构的细节而更侧重于整体的结构。
【类似于结构模型】
(3)动态模型:研究系统的“大颗粒”的行为性质
【对结构或框架模型的补充】
(4)过程模型:研究构造系统的步骤和过程。
(5)功能模型:认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。
【有点像计网的分层协议那种,可以看作框架模型的一种特殊的形式】
2. 结构:是系统元素本身的集合
视图:是结构的表示
3. “4+1”的视图模型
(1)每一个视图只关心系统的一个侧面。
(2)逻辑视图:主要支持系统的功能需求,即系统提供给最终用户的服务。
【逻辑视图中使用的风格为面向对象的风格】
【下面是表示逻辑视图的类图】
关联关系:横线 包含关系:带有实心圆的一端表示整体,另一端表示部分
使用关系:带有空心圆的一端连接在请求服务的类,另一端连接在提供服务的类
继承关系:箭头由子类指向基类
(3)开发视图:着重于软件开发环境中实际软件模块的组织。也称模块视图,主要侧重于软件模块的组织和管理。
【通过系统输入输出关系的模型图和子系统图来描述。】
(4)进程视图:侧重于系统的运行特性,主要关注一些非功能性的需求,如性能和系统的可用性。强调并发性、分布性、系统集成性和容错能力。
【可以看作一系列多层的程序】
(5)物理视图:主要考虑系统的非功能性需求,如系统可用性、可靠性(容错)、性能(吞吐量)以及规模。
【这主要侧重于硬件方面】
(6)场景:在开发体系结构时,场景可以帮助设计者找到体系结构的构件和它们之间的作用关系。可以用场景来分析一个特定的视图,或描述不同视图构件间是如何相互作用的。
【在这四个视图中,逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。】
2. 软件体系结构的核心模型
(1)元素:构件、连接件、配置、端口和角色
【构件、连接件、配置是最基本的元素】
(2)构件:是具有某种功能的可重用的软件模板单位,表示系统中主要的计算元素和数据存储。
连接件:表示构件之间的交互。
配置表示构件和连接件的拓扑逻辑和约束。
【构件是一个封装的实体,和外界的联系通过接口,连接件也是提供端口来和外部交互】
3. 体系结构的生命周期模型
(1)传统的软件开发过程由问题定义、需求分析、软件设计、软件实现及其软件测试等阶段。
(2)软件体系结构的建立应位于需求分析之后,软件设计之前。
(3)体系结构需求包括需求获取、生成类图、对类分组、将类打包成构件和需求评审等过程。
(4)系统结构设计师从结构角度分析整个系统,选择恰当的构件、构件间的相互作用关系以及对它们的约束,最后形成一个系统框架以满足用户需求,为设计奠定基础。
(5)设计阶段主要对系统进行模块化并决定描述各构件间的详细接口、算法和数据类型的选定。
(6)实现阶段将设计阶段设计的算法和数据类型用语言实现,得到满足需求的目标系统。