软件体系结构---软件体系结构建模Mail:yrmeixue@sina.com22020年2月16日12时25分课程内容◇软件体系结构概论◇软件体系结构建模◇软件体系结构风格◇软件体系结构描述◇动态软件体系结构◇Web服务体系结构◇基于体系结构的软件开发◇软件体系结构的分析与测试◇软件体系结构评估◇软件产品线体系结构Mail:yrmeixue@sina.com32020年2月16日12时25分第2章软件体系结构建模2.1软件体系结构建模概述研究软件体系结构的首要问题:如何表示体系结构,即如何对软件体系结构建模。(1)结构模型(2)框架模型(3)动态模型(4)过程模型(5)功能模型Mail:yrmeixue@sina.com42020年2月16日12时25分第2章软件体系结构建模2.2“4+1”视图模型Kruchten在1995年提出了一个“4+1”的视图模型逻辑视图进程视图开发视图物理视图最终用户:功能需求场景编程人员:软件管理系统集成人员:性能可扩充性、吞吐量等系统工程人员:系统拓扑、安装、通信等Mail:yrmeixue@sina.com52020年2月16日12时25分第2章软件体系结构建模--“4+1”视图模型◇软件架构视图•Kruchten在其著作《Rational统一过程引论》中写道:一个架构视图是对于从某一视角或某一点上看到的系统所做的简化描述,描述中涵盖了系统的某一特定方面,而省略了于此方面无关的实体。软件架构的每个视图分别关注不同的方面,针对不同的目标和用途。Mail:yrmeixue@sina.com62020年2月16日12时25分第2章软件体系结构建模--“4+1”视图模型◇关于视图气候学家关心的社会学家关心的同一事物的不同视图之间是有联系的。对比上面两幅图,除了南美洲之外基本都是降水量足的地方人口较密集。Mail:yrmeixue@sina.com72020年2月16日12时25分第2章软件体系结构建模--“4+1”视图模型2.2.1逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。在面向对象技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图。Mail:yrmeixue@sina.com82020年2月16日12时25分2.2“4+1”视图模型--逻辑视图构件实例继承使用包含,聚集关联类层次参数化类类服务类连接件可以从Booch标记法中导出逻辑视图的标记法,只是从体系结构级的范畴来考虑这些符号,用RationalRose进行体系结构设计。Mail:yrmeixue@sina.com92020年2月16日12时25分2.2“4+1”视图模型--逻辑视图◇实例–通信体系结构ACS会话终端控制器转换服务连接服务编号计划•译码,把所有符号加入到线路接口卡中•保持终端的状态,代表本条线路的利益参与协商服务•代表一组参与会话的终端,使用转换服务和连接服务在终端之间建立语音路径Mail:yrmeixue@sina.com102020年2月16日12时25分2.2“4+1”视图模型--逻辑视图◇又例–空中管制系统的一级类图对于规模更大的系统来说,体系结构级中包含数十甚至数百个类。显示及用户接口机械服务基本元素航空信息空中交通管理飞行管理外部接口网关仿真和培训Mail:yrmeixue@sina.com112020年2月16日12时25分第2章软件体系结构建模--“4+1”视图模型2.2.2开发视图开发视图也称模块视图,主要侧重于软件模块的组织和管理。开发视图要考虑软件内部的需求,如软件开发的容易性、软件的重用和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性。开发视图通过系统输入输出关系的模型图和子系统图来描述。Mail:yrmeixue@sina.com122020年2月16日12时25分2.2“4+1”视图模型--开发视图与逻辑视图一样,可以使用Booch标记法中某些符号来表示开发视图。构件参照相关性模块连接件子系统层Mail:yrmeixue@sina.com132020年2月16日12时25分2.2“4+1”视图模型--开发视图在开发视图中,最好采用4-6层子系统,而且每个子系统仅仅能与同层或更低层的子系统通讯,这样可以使每个层次的接口既完备又精练,避免了各个模块之间很复杂的依赖关系。设计时要充分考虑,对于各个层次,层次越低,通用性越强,这样,可以保证应用程序的需求发生改变时,所做的改动最小。开发视图所用的风格通常是层次结构风格。Mail:yrmeixue@sina.com142020年2月16日12时25分2.2“4+1”视图模型--开发视图◇实例–空中交通管制系统的五层结构公用构件1低层服务支撑机制:通信、时间、储存、资源管理等2航空类、空中交通管制类3空中交通管制功能区:飞行管理、雷达管理等4人机接口外部系统5离线工具测试工具各种各样的空中交通管制系统特定的空中交通管制系统构件空中交通管制系统框架分布式虚拟机基本元素硬件、操作系统、数据库领域特定领域无关通用空中交通管制代码客户定制Mail:yrmeixue@sina.com152020年2月16日12时25分第2章软件体系结构建模--“4+1”视图模型2.2.3进程视图进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。进程视图强调并发性、分布性、系统集成性和容错能力,以及从逻辑视图中的主要抽象如何适合进程结构。它也定义逻辑视图中的各个类的操作具体是在哪一个线程中被执行的。通过进程视图可以从进程测量一个目标系统最终执行情况。Mail:yrmeixue@sina.com162020年2月16日12时25分2.2“4+1”视图模型--进程视图通过扩展Booch对Ada任务的表示法,来表示进程视图。构件事件广播双向消息远程过程调用消息未指定连接件循环进程简化进程进程Mail:yrmeixue@sina.com172020年2月16日12时25分2.2“4+1”视图模型--进程视图◇实例–ACS系统的局部进程视图控制器进程慢周期控制器任务快周期控制器任务主控制器任务终端进程Mail:yrmeixue@sina.com182020年2月16日12时25分第2章软件体系结构建模--“4+1”视图模型2.2.4物理视图物理视图主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。解决系统拓扑结构、系统安装、通讯等问题。当软件运行于不同的节点上时,各视图中的构件都直接或间接地对应于系统的不同节点上。因此,从软件到节点的映射要有较高的灵活性,当环境改变时,对系统其他视图的影响最小。Mail:yrmeixue@sina.com192020年2月16日12时25分2.2“4+1”视图模型--进程视图大型系统的物理视图可能会变得十分混乱,因此可以与进程视图的映射一道,以多种形式出现,也可单独出现。构件宽带或总线双向通信单向通信临时通信通信其他设备处理器连接件Mail:yrmeixue@sina.com202020年2月16日12时25分2.2“4+1”视图模型--进程视图◇实例–ACS系统的物理视图C主KKKKKKKKF备份F主F备份F主C备份K会话进程F终端进程控制器进程具有进程分配的小型ACS系统的物理视图Mail:yrmeixue@sina.com212020年2月16日12时25分2.2“4+1”视图模型--进程视图◇实例–具有进程分配的大型ACS系统的物理视图C中心进程备份节点伪中心进程F会话进程终端进程伪中心进程F会话进程终端进程K控制器进程K控制器进程K控制器进程更多的K类处理器线路接口卡线路接口卡线路接口卡Mail:yrmeixue@sina.com222020年2月16日12时25分第2章软件体系结构建模--“4+1”视图模型2.2.5场景场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。在开发体系结构时,它可以帮助设计者找到体系结构的构件和它们之间的作用关系。同时,也可以用场景来分析一个特定的视图,或描述不同视图构件间是如何相互作用的。场景可以用文本表示,也可以用图形表示。Mail:yrmeixue@sina.com232020年2月16日12时25分2.2“4+1”视图模型--进程视图◇实例–本地呼叫场景的一个原型(1)摘机小王:控制器编号计划小王:终端小王:会话(2)拨号音(3)号码(4)号码(5)打开会话Mail:yrmeixue@sina.com242020年2月16日12时25分2.2“4+1”视图模型--进程视图◇小结Mail:yrmeixue@sina.com252020年2月16日12时25分2.2“4+1”视图模型--进程视图◇小结逻辑视图开发视图进程视图物理视图静态结构动态结构对于不同的软件系统来说,侧重的角度也有所不同。Mail:yrmeixue@sina.com262020年2月16日12时25分第2章软件体系结构建模2.3软件体系结构的核心模型综合软件体系结构的概念,体系结构的核心模型由5中元素组成:•构件•连接件•配置•端口•角色其中,构件、连接件和配置是最基本的元素。Mail:yrmeixue@sina.com272020年2月16日12时25分第2章软件体系结构建模--软件体系结构的核心模型软件体系结构配置连接件构件端口角色1:N1:N1:N原子构件复合构件:表示软件之间的交互表示构件和连接件的拓扑结构和约束:表示构件和外部环境的交互点::定义了该连接件表示的交互的参与者Mail:yrmeixue@sina.com282020年2月16日12时25分第2章软件体系结构建模2.4软件体系结构的生命周期模型需求分析建立体系结构测试实现设计Mail:yrmeixue@sina.com292020年2月16日12时25分第2章软件体系结构建模--软件体系结构的生命周期模型体系结构的非形式化描述体系结构的形式化基础(数学模型)体系结构的规范描述体系结构演化体系结构提供、评价和度量体系结构的终结体系结构实施体系结构求精的验证体系结构求精体系结构的性质分析需要演化或扩展否否是需要求精否是否Mail:yrmeixue@sina.com302020年2月16日12时25分END