版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、黑龙江大学计算机科学技术学院 青巴图 2006-2007,软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,前言,课程内容 软件体系结构的概述 软件体系结构描述方法 软件体系结构的风格 软件体系结构的设计 软件体系结构的分析与评估 基于体系结构的软件开发模型 典型软件的体系结构: Windows、X window 分布式计算体系结构:RMI、CORBA、DCOM、Web Services,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,前言,教材及参考书目 软件体系结构 张友生 编著 清华大学出版社 软件架构师教程 Raphael
2、 Malveau等著 申峻嵘等译 电子工业出版社 软件体系结构的艺术 Stephen T. Albin著 刘晓霞等译 机械工业出版社 大型软件体系结构-使用UML实践指南 Jeff Garland等著 叶俊民等译 电子工业出版社 软件构架实践 Len Bass等著 车立红译 清华大学出版社,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第一章 概述,主要内容 软件工程与软件危机 软件体系结构的定义 基本概念和术语 软件体系结构的发展历程 软件体系结构的意义 当前研究现状,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第一章 概述,软件工程
3、(Software Engineering) 软件工程是指导计算机软件开发和维护的工程学科。 软件工程的传统途径-生命周期方法学 需求分析:目标系统必须具备的功能是什么? 总体设计:如何实现目标系统(大概)? 详细设计:如何实现目标系统(具体)? 编码与单元测试 总体测试 软件维护 最新的软件工程方法:OOA/OOD,ASD,SOA,UP,1.1 软件工程与软件危机,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第一章 概述,软件危机(Software Crisis) 在计算机软件开发和维护过程中所遇到的一系列严重问题。 软件危机的表现 软件成本日益增加:开发、部署
4、与应用成本高 开发进度难以控制:不能按期完成 软件质量差:错误率高,不能满足用户的需求,没有生命力 软件维护困难:成本高,维护效果不理想,可能带来潜在的错误,1.1软件工程与软件危机,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第一章 概述,软件危机的原因 用户需求不明确 缺乏正确的理论指导 软件规模越来越大 软件复杂度越来越高,1.1软件工程与软件危机,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第一章 概述,软件危机的解决 采用科学的方法:软件工程、OOA/OOD/OOP 增强软件分析和设计的力度 采用更多的辅助工具 软件重用:构
5、件,1.1软件工程与软件危机,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第一章 概述,一般描述 软件体系结构(Software Architecture)最初被称为“大型软件设计”,主要对大规模的复杂软件系统进行总体的结构设计和规格说明。 软件体系结构是软件工程学的自然延伸。 在软件需求与软件设计之间的一座桥梁,着重解决软件系统的结构和需求向实现平坦过渡的问题。,1.2 软件体系结构的定义,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第一章 概述,定义 软件体系结构为软件系统提供了一个结构、属性和行为的高级抽象。它不仅指定了系统的组
6、织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。 软件体系结构主要由构成系统的元素的描述、这些元素的相互作用关系、指导元素集成的模式以及这些模式的约束组成。,1.2 软件体系结构的定义,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第一章 概述,定义 Garlan | wc -l,3.2 经典的体系结构风格,test.c,cat,grep,wc,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,管道与过滤器风格 管道和过滤器风格实例-传统的编译器的实现也是典型的管道过滤器风格
7、的应用:,3.2 经典的体系结构风格,源程序,词法分析,语法分析,语义分析,目标 代码,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,管道与过滤器风格 优点 结构简单:系统的行为是所有过滤器行为的简单复合; 系统易于维护和增强:增加新过滤器,替换旧过滤器; 支持复用:过滤器只同其输入、输出端口的数据相关; 各过滤器可以并发运行。 缺点 容易导致批处理方式:每个过滤器从输入数据到输出数据的转换是一个整体,不适合交互式的应用; 有时必须维护两个分离而又相关的流之间的对应关系; 过滤器之间的数据传输率较低,而且每个过滤器都要作类似的数据打包和解包的工作。
8、,3.2 经典的体系结构风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,数据抽象和面向对象组织风格 该风格建立在面向对象分析、设计与实现的基础上。 在该风格中,数据及其操作被封装成抽象数据类型,数据类型的实例-对象就是构件,而方法调用起到连接件的作用。,3.2 经典的体系结构风格,对象,对象,对象,对象,对象,过程调用,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,数据抽象和面向对象组织风格 特点 隐藏了实现细节,使得构件的使用只通过接口进行。 封装数据和代码使设计者可以将问题进行分解成一个个抽象类
9、型,并只需要关心它们之间的交互方式。 缺点 过程调用过分依赖于与之交互的对象标识。 在两个对象同时访问一个对象时,可能产生数据依赖现象。,3.2 经典的体系结构风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,分层系统风格 分层的系统将自己组织成一个层次结构,每一层为上层服务,同时又是下层的客户。每一层只和相邻的层进行交互。 两个层之间的交互协议组成了连接件。 在某些性能要求较高的应用场合,允许非相邻的层之间进行直接的通信。,3.2 经典的体系结构风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,分
10、层系统风格 分层系统的典型实例包括OSI参考模型、TCP/IP协议层以及Unix操作系统。,3.2 经典的体系结构风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,分层系统风格 优点: 分层结构的软件系统体现了不断增加的软件层次,使得系统的分析和构造也可以按递增的步骤完成。 层与层之间的联系较为宽松,易于软件系统的更新和修改。 重用粒度高,只要提供给相邻层的接口不变,同一层的不同实现可以交换使用。 缺点 系统的分层可能带来效率低下的问题。 并不是每个软件系统都具有层次结构;即便具有层次结构,如何划分层次也是较为复杂的问题。,3.2 经典的体系结构
11、风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,基于事件的隐式调用风格 系统中的所有构件并不直接调用过程,而是触发或广播一个或多个事件。系统中的其它构件可以把某个过程注册为与特定事件相关。当一个事件被触发时,系统自动调用在这个事件中注册的所有过程。,3.2 经典的体系结构风格,触发事件,注册事件,调用过程,注册事件,广播媒介,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,基于事件的隐式调用风格 这种风格的典型应用是Java AWT事件处理模型。,3.2 经典的体系结构风格,容器,组件,class L
12、istenerClass implements ActionListener actionPerformed(ActionEvent ev) ,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,基于事件的隐式调用风格 优点 事件广播者不必知道哪些构件会受到事件的影响,构建之间的关联性较弱。 接口简单,易于软件重用。当需要将一个构件加入到现存系统中时,只需要将它注册到系统中的某个事件上。 用一个构件替换另一个构件方便,不影响其它构件的接口。 缺点 一个构件不能肯定其它构件是否对它所触发的事件具有响应,也不能得知事件在不同构件中处理的顺序,从而不能主动控制
13、系统的处理流程。 过程的调用依赖于调用时的环境,因此系统正确性的判断变得困难。,3.2 经典的体系结构风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,虚拟机风格 虚拟机风格也称为“解释器”(Interpreters)风格,其特点是通过软件手段建立一个虚拟的机器平台,并在该平台上解释运行所谓的“程序”代码。 这种风格的典型例子包括: 解释型程序设计语言,如Java、Basic 基于规则的系统,如专家系统领域的Prolog语言 脚本语言,如Javascript、Perl、AWK,3.2 经典的体系结构风格,软件体系结构 黑龙江大学计算机科学技术学院
14、 版权所有 2006-2007,第三章 SA风格,虚拟机风格 实际应用举例:文本驱动的图形界面,3.2 经典的体系结构风格,图形界面 描述文本,界面文本 解释器,用户界面,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,虚拟机风格 构成这种系统的构件包括: 正在被解释的程序 虚拟机引擎构件 用来保存被解释程序的状态的构件 用来保存虚拟机引擎状态的构件,3.2 经典的体系结构风格,正在被 解释的程序,虚拟机引擎,虚拟机引擎 的当前状态,执行程序 的当前状态,硬件平台,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA
15、风格,虚拟机风格 这种风格的软件系统具有很好的移植性、跨平台能力和软件更新能力。 基于解释的运行方式带来了性能低下的问题。,3.2 经典的体系结构风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,C2风格 C2风格是一种通过连接件邦定在一起的、按照一组规则运作的层次化构件网络。,3.2 经典的体系结构风格,构件,构件,构件,构件,构件,构件,连接件,连接件,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,C2风格 C2风格中的组织规则: 系统中的构件和连接件都有一个顶部和底部; 构件的顶部应连接到某连接
16、点的底部,构件的底部应连接到连接件的顶部,而构件和构件之间的直接连接是不允许的; 一个连接件可以和任意数目的构件和其它连接件连接; 当两个连接件直接连接时,必须由其中一个的底部连接到另一个的顶部。,3.2 经典的体系结构风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,C2风格 C2风格中的通信规则: C2风格中的构件由顶端域、底端域、内部对象和对话模块组成。 顶端域定义了可以对哪些上层来的通知作出响应,以及向上层发出哪些请求; 底端域定义了可以对哪些下层来的请求作出响应,以及向下层发出哪些通知; 对话模块接受所有的通知和请求,并把它们映射到内部
17、对象的相应操作; 内部对象响应请求和通知,并在状态改变的情况下向下层发出通知或向上层发出请求。,3.2 经典的体系结构风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,C2风格 C2风格中的通信规则:,3.2 经典的体系结构风格,顶层域,底层域,对话模块,内部对象,通知,通知,请求服务,请求服务,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,C2风格 C2风格中的通信规则: 构件之间的所有交互必须通过消息传递的方式实现。 每个构件只能感知上层提供的服务,而不能感知下层的服务。 特点 通过构件实现应用需
18、求,并将任意复杂度的功能封装在一起; 所有构件之间的通信是通过连接件为中介的消息传递机制来实现; 构件相对独立,构建之间依赖型较少。,3.2 经典的体系结构风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,C/S(客户/服务器)结构风格 整个应用软件系统被逻辑地划分为两个部分:客户端和服务器端。客户端运行用户的应用软件,服务器端运行DBMS。 客户端和服务器端一般都安装在不同的计算机系统中,并通过网络线路进行物理连接。 值得注意的是,由于有的应用系统非常简单,或者在软件系统的开发初期,为了开发和维护方便,可以将这两个部分安装在同一台计算机中,但其
19、逻辑功能是完全独立的。,3.3 C/S与B/S风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,C/S(客户/服务器)结构风格,3.3 C/S与B/S风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,C/S(客户/服务器)结构风格 客户端和服务器端之间的连接必须经过连接件。 连接件所指的是实现客户端和服务器端通信的软件接口技术或编程函数。 客户端和服务器端通过连接件进行标准的命令和数据传递。 由于连接件往往都是定义了一些标准供双方使用,所以凡是符合该标准的客户端或服务器端产品都可以方便地进行交流,从
20、而简化了应用系统开发和运行的复杂度。,3.3 C/S与B/S风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,C/S(客户/服务器)结构风格,3.3 C/S与B/S风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,C/S(客户/服务器)结构风格 C/S结构的特点 开放性:由于客户端和服务器端提供开放的、标准的接口,使得在软件系统中采用不同的客户端开发工具和服务器端DBMS产品。开放性本身也意味着开发和维护成本的降低。 分布式:客户端和服务器端分别承担整个应用中的一部分任务,使得客户端集中处理应用逻辑
21、和与用户的交互工作,同时服务器也重点负责数据存储、查询和维护工作。 透明性:客户端和服务器端一般都是多对一的对应关系,从而导致服务器端的位置透明性。 可扩展性:在客户/服务器结构的系统中,可以方便地增加客户机数量而不影响整个系统。有的系统甚至可以增加服务器,提高系统的数据处理能力和服务性能。,3.3 C/S与B/S风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,C/S(客户/服务器)结构风格 C/S结构的缺点 对客户端软硬件配置要求较高,同时随着软件的升级导致客户端变得越来越臃肿,变成“胖客户机”。同时服务器演化为单纯的数据库服务器,变成“瘦服
22、务器” 。 业务处理的大部分功能都由客户端来实现,使得客户端显得过分庞大。 用户界面不统一,不利于推广。 软件的维护和升级困难。 由于客户端直接访问服务器,在客户机上的其它软件也可以访问服务器,安全性不高。,3.3 C/S与B/S风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,三层C/S结构风格 在传统C/S结构基础上,三层C/S结构将服务器进一步划分为应用服务器和数据库服务器两个部分,并把客户端应用系统的应用逻辑移到应用服务器中。客户机只需负责用户的接口部分。 应用服务器负责接收客户机的请求,并根据应用逻辑将它转化为数据库请求命令,进而交付数
23、据库服务器去处理。 数据库服务器处理请求后将结果返回给应用服务器,最终到达客户端。,3.3 C/S与B/S风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,三层C/S结构风格,3.3 C/S与B/S风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,三层C/S结构风格 所谓的“三层”分别是表示层、功能层和数据层。,3.3 C/S与B/S风格,输入数据,处理请求,开始业务处理,数据存取请求,业务处理结束,SQL请求开始,SQL请求结束,输出数据,表示层,功能层,数据层,软件体系结构 黑龙江大学计算机科学
24、技术学院 版权所有 2006-2007,第三章 SA风格,B/S结构风格 B/S结构是三层C/S结构与WWW网结合的产物。 表示层:根据用户及应用的需要,将数据库信息按网页形式显示出来,也称为浏览器层。 服务层:提供浏览器端的Internet访问接口和应用系统的运行平台,也叫应用服务器层。 数据库层:该层运行数据库服务器,接收来自服务层的应用请求,并按标准格式或接口定义返回数据信息。,3.3 C/S与B/S风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,B/S结构风格,3.3 C/S与B/S风格,软件体系结构 黑龙江大学计算机科学技术学院 版权
25、所有 2006-2007,第三章 SA风格,B/S结构风格 以上三层的划分和C/S结构一样,属于逻辑划分,即并不要求表示层和应用层在物理位置上必须处于Internet两端,也不要求应用层和数据库层之间的绝对位置。,3.3 C/S与B/S风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,B/S结构风格,3.3 C/S与B/S风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,B/S结构风格,3.3 C/S与B/S风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA
26、风格,B/S结构风格 B/S结构应用的关键技术 应用表示方式:数据在浏览器中的表现形式都用标记语言进行描述,这些标记语言文件都是由应用服务器根据用户的请求从数据库服务器中提取相关数据而生成的。目前应用的标记语言只有三种:HTML、DHTML以及XML。 应用服务器与数据库互连与访问技术:应用服务器和数据库服务器之间的连接一般都遵循某种标准,这些标准定义了应用服务器访问和处理数据库的、独立于具体数据库系统的接口规范,比较典型的有:ODBC、JDBC、OLE DB、ADO。 应用服务器:常见的应用服务器包括基于Windows 平台的IIS、基于Unix和Linux平台的Apache、Netscap
27、e的NES企业服务器、Oracle的Application Server以及IBM的Web Sphere等等。在应用服务器上,通过CGI、ASP、PHP、JSP等动态网页技术,将应用表示方式和数据库访问技术集成到一起。,3.3 C/S与B/S风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,MVC风格概述 传统的B/S结构没有严格区分软件组成部分的职责,导致复杂软件的结构容易陷入混乱。一个显著的例子是 复杂的应用系统需要多种用户界面和操作方式,如果将用户界面、操作方式和具体处理数据的业务逻辑部分放在一起,就会导致修改业务逻辑时重复修改多处界面代码
28、或操作处理代码问题。,3.4 MVC风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,MVC风格概述,3.4 MVC风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,MVC风格概述 在一个具有服务器应用程序的软件系统中,可以把服务器应用程序划分成三个部分: 商务逻辑(Business Logic):对系统信息(如用户信息、订单信息)进行如何处理规则的实现部分,是系统的核心部分。 外观呈现(Presentation):软件系统提供给用户的界面部分。 请求处理(Request Processing):将
29、商务逻辑和外观呈现联系起来的部分。,3.4 MVC风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,MVC风格概述 基于上述考虑而设计的MVC风格,将各个构件划分成各自独立的三个部分:模型Model、视图View和控制器Controller,分别对应商务逻辑、外观呈现和请求处理。 目的: 系统的数据结构和商务逻辑部分通常都是稳定不变的,而它们的表现形式经常发生变化。 将商务逻辑和外观呈现分开后,可以很容易地根据界面变化需求修改程序,同时又不影响商务逻辑。 MVC风格应用典型实例:Struts框架,3.4 MVC风格,软件体系结构 黑龙江大学计算机
30、科学技术学院 版权所有 2006-2007,第三章 SA风格,MVC风格应用实例:用户登录模型,3.4 MVC风格,UserInfoInput.htm,UserInfoValidate.class,UserInfoValid.htm,UserInfoBean.class,浏览器,1、初次访问,2、8.1 应答,3、提交输入信息,4、请求验证,5、验证回复,7.1、验证失败,7.2、验证成功,8.2、应答,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,参考文献 “软件体系结构的艺术” Stephen T. Albin 机械工业出版社 “J2EE技术内
31、幕” Joseph J. Bambara Paul R. Allen机械工业出版社 “JSP设计” Hans Bergsten 中国电力出版社 “Struts in Action” Ted Husted 等著,Eric Liu 译,3.4 MVC风格,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,正交软件体系结构概述 正交(Orthogonal)软件体系结构由构件组织层和由相互关联的构件组成的线索构成。 线索是子系统的特例,它是由完成不同层次功能的构件组成,每一条线索完成整个系统中相对独立的一部分功能。 每一条线索的实现与其他线索的实现无关或关联很
32、少,在同一层中的构件之间是不存在相互调用的。,3.5 正交软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,正交软件体系结构概述 正交软件体系结构是一种以垂直线索构件族为基础的层次化结构,其基本思想是把应用系统的结构按功能的正交相关性,垂直分割为若干个线索(子系统),线索又分为几个层次,每个线索由多个具有不同层次功能的构件构成。 对于大型的和复杂的软件系统,其子线索(如一级子线索)还可以划分为更低一级的子线索(如二级子线索),形成多级正交结构。,3.5 正交软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-20
33、07,第三章 SA风格,正交软件体系结构概述,3.5 正交软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,正交软件体系结构概述 上图是一个三级线索、五层结构的正交软件体系结构框架图。在该图中,ABDFK组成了一条线索,ACEJK也是一条线索。因为B、C处于同一层次中,所以不允许进行互相调用;H、J处于同一层次中,也不允许进行互相调用。 一般来讲,最后一层(第五层)是一个物理数据库连接构件或设备构件,供整个系统公用。 在正交软件体系结构中,因线索的正交性,每一个需求变动仅影响某一条线索,而不会涉及到其他线索。这样,就把软件需求的变动局部化
34、了,产生的影响也被限制在一定范围内,因此容易实现需求变化。,3.5 正交软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,正交软件体系结构的特点 结构清晰,易于理解:线索功能相互独立,不进行互相调用;构件在结构图中的位置已经说明它所实现的是哪一级抽象,担负的是什么功能。 易修改,可维护性强。由于线索之间是相互独立的,所以对一个线索的修改不会影响到其他线索。因此,当软件需求发生变化时,可以将新需求分解为独立的子需求,然后以线索和其中的构件为主要对象分别对各个子需求进行处理,这样软件修改就很容易实现。 可移植性强,重用粒度大。因为正交结构可以
35、为一个领域内的所有应用程序所共享,这些软件有着相同或类似的层次和线索,可以实现体系结构级的重用。,3.5 正交软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,正交软件体系结构的实例 考虑实现一套劳动和社会保险管理信息系统。其业务管理子系统完成劳动和社会保险的主要业务管理。 具体业务牵涉到银行、企业、事业机关、医院、财务部门、税务部门、邮局等部门,流程十分复杂。 另外,虽然国家有一套指导性处理流程,但是在各个省市的具体操作中都有些变化(“土政策”),使得系统的设计和实施变得困难。 为了尽量降低维护成本,提高重用性,采用正交软件体系结构是比
36、较理想的选择。,3.5 正交软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,正交软件体系结构的实例 在该系统的设计中,设计人员采用了三级正交结构。,3.5 正交软件体系结构,系统一级线索结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,正交软件体系结构的实例 每个一级线索又划分为多个二级线索,如“年终处理”可划分为如下三个二级线索。,3.5 正交软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,正交软件体系结构的实例 二级线索“下年准
37、备”又划分成四个三级线索。,3.5 正交软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,正交软件体系结构的实例 所有线索相互独立,即不同线索中的构件之间没有相互调用。整个系统为三级正交线索,五个层次,其中的一条完整的线索层次结构如下图所示:,3.5 正交软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,正交软件体系结构的实例 在软件部署阶段,根据不同单位的具体需求,开发者采用了如下方法进行软件的更新: 从最左边的一条线索开始,判断该线索是否可重用。若完全可重用,则保留;部分可重用则
38、从上层到下层判断哪一级构件需要做修改。依此类推,直到最右边的线索。 对于新增加的功能,如果可以用原来的功能合并完成,则对相应线索做合并标志;否则对新功能进行适当的抽象化、层次化和分级,建立一条新的线索。 对所有的变更进行处理,包括开发新线索中的构件,对已有的需要修改的构件进行修改、删除或更换,最后完成这次的系统更改工作。,3.5 正交软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,参考文献 “软件体系结构” 张友生 编著 清华大学出版社 “正交软件架构的设计与演化” 张友生 希赛技术频道 HTTP:/TECH.CSAI.CN,3.5 正
39、交软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,HMB体系结构风格概述 基于层次消息总线的体系结构风格(Hierarchy Message Bus,HMB)是北京大学杨芙清院士等人提出的软件体系结构风格。 HMB风格结合了分布式构件技术(CORBA、DCOM、EJB)、基于事件驱动的编程模式以及基于总线和接口规范的硬件体系结构等概念,在软件体系结构风格领域提出了分层消息总线的软件构架。,3.6 HMB软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,HMB体系结构风格概述,3.6
40、 HMB软件体系结构,消息总线(连接件),消息总线(连接件),构件,复合构件,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,HMB体系结构风格概述 消息总线是系统的连接件,负责消息的分派、传递和过滤,以及处理结果的返回。 各个构件挂接在消息总线上,向总线登记感兴趣的消息类型。 构件根据需要发出消息,由消息总线负责将该消息分派到系统中所有对此消息感兴趣的构件,消息是构件之间通讯的唯一方式。 构件接收到消息后,根据自身状态对消息进行响应,并通过总线返回处理结果。由于构件通过总线进行连接,并不要求各个构件具有相同的地址空间或局限在一台机器上。,3.6 H
41、MB软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,HMB体系结构风格概述 系统中的复杂构件可以分解为比较简单的子构件,这些子构件通过局部消息总线进行连接,这种复杂的构件称为复合构件。 如果子构件仍然比较复杂,还可以进一步分解。 如此分解下去,整个系统形成了树状的拓扑结构,树结构的末端结点称为叶结点,它们是系统中的原子构件,不再包含子构件。,3.6 HMB软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,HMB体系结构风格概述 原子构件的内部可以采用不同于HMB 的风格,例如数据流
42、风格、面向对象风格、管道- 过滤器风格等,这些属于构件的内部实现细节,但要把它们集成到HMB 风格的系统中,必须满足 HMB 风格的构件模型的要求,主要是在接口规约方面的要求。 另外,整个系统也可以作为一个构件,通过更高层的消息总线,集成到更大的系统中。于是,可以采用统一的方式刻划整个系统和组成系统的单个构件。,3.6 HMB软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,构件模型 HMB风格的构件模型包括接口、静态结构和动态行为三个部分。,3.6 HMB软件体系结构,接口,动态行为,静态结构,软件体系结构 黑龙江大学计算机科学技术学院
43、 版权所有 2006-2007,第三章 SA风格,构件接口 一个构件可以支持多个不同的接口,每个接口定义了一组输入和输出的消息,同时刻画了构件对外提供的服务以及要求环境提供给该构件的服务。 环境不应对构件作任何与接口无关的假设(如实现细节),接口是构件和环境的唯一的交互途径。 构件只对消息本身感兴趣,并不关心消息是在哪里以及如何产生的。这样可以降低构件之间的耦合度,提高了构件的重用性。 构件对外来的消息响应后产生状态变化。因此在不同时刻收到同一个消息的响应可能不同。,3.6 HMB软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,构件接口
44、,3.6 HMB软件体系结构,B,C1,C2,B.sendMSG(),C2.receiveMSG(),软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,消息总线 消息总线是系统的连接件。 构件向消息总线登记感兴趣的消息,形成构件消息响应登记表。消息总线根据接收到的消息类型和响应登记表,定位并传送消息到指定的构件,并把处理结果返回给发送消息者。 由于特殊的原因,部分消息经过消息总线时可能被过滤或阻塞。,3.6 HMB软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,消息总线,3.6 HMB软件体系结
45、构,服务:消息登记 消息分派 消息传递 消息过滤,构件1,构件2,消息总线 属性:构件实例表 构件消息响应登记表 消息过滤表,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,消息总线 消息登记 在基于消息总线的系统中,构件需要向消息总线登记所要响应的消息集合。响应消息的构件只对消息的类型感兴趣,而并不关心消息的发送源。 对于连接到同一个消息总线的构件来说,消息是它们之间的共享资源。在构件消息响应登记表中记录了该总线上所有构件和消息的相应关系。这种模式具有很高的灵活性。,3.6 HMB软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有
46、2006-2007,第三章 SA风格,消息总线 消息分派和传递 消息总线负责消息在构件之间的传递,而构件消息响应登记表发送的消息与接收构件之间的对应关系,以此作为消息分派的依据。 在消息广播的情况下,可能有多个构件响应一个消息,也可能没有任何构件响应该消息。此时需要对该消息进行阻塞。 在物理上消息总线可以跨越多个机器,因此挂接在消息总线上的构件也可以分布在不同的机器上。 由于构件之间不是直接交互,所以其位置关系透明,即使发生构件迁移,也不会影响系统的运行。,3.6 HMB软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,消息总线 消息过滤
47、 消息过滤的主要方式是消息转换。由于不同来源的构件并不知道对方的接口,因此同一个消息在不同的构件中可能使用不同的名称,或者不同的消息使用了同一个名称。,3.6 HMB软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,消息总线 消息种类 按消息与构件之间的关系划分: 构件发出的消息:通知其他构件发生了某种事件或请求其他构件提供服务; 构件接收的消息:对系统中的某个事件的响应或提供其他构件所需的服务。 根据相应方式的异同划分: 同步消息:消息的发送者必须等待消息处理结果返回后才能继续运行; 异步消息:消息的发送者不必等待消息处理结果既可继续运
48、行。,3.6 HMB软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,静态结构 HMB风格支持对系统进行自顶向下的分解,分解过程中可能需要用到复合构件。 复合构件是由比较简单的子构件组装而成,子构件通过符合构件内部的消息总线连接。 各个层次的消息总线负责与其连接的构件或子系统的消息登记、分派、传递和过滤。 消息总线之间没有直接连接。,3.6 HMB软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,静态结构,3.6 HMB软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所
49、有 2006-2007,第三章 SA风格,动态行为 在一般情况下,对于同一种事件,构件总是采用相同的动作响应该事件。,3.6 HMB软件体系结构,初始状态,中间状态,中间状态,恢复初始状态,响应消息,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,动态行为 在HMB中,为了让构件对同一种消息具有不同的响应能力,采用带输出的有限状态机(Finite State Machine)描述构件的状态(有关带输出的有限状态机可以参考离散数学和自动机理论等书籍)。,3.6 HMB软件体系结构,状态1,状态2,状态3,消息2,消息4,消息5,消息1,状态3,消息3,
50、软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第三章 SA风格,动态行为 由于HMB体系结构保持构件之间的透明性,所以能够保证运行时刻的系统演化要求,如扩充系统功能、裁减系统功能或删除系统构件、用新的构件替换原有构件等等。 同样,可以动态改变构件响应的消息类型,这一点只需要向消息总线重新登记消息类型既可。,3.6 HMB软件体系结构,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第四章 软件体系结构的设计,主要内容 软件体系结构设计概述 需求驱动的体系结构设计 模式驱动的体系结构设计 工件驱动的体系结构设计 用例驱动的体系结构设计 领域驱
51、动的体系结构设计,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第四章 SA的设计,软件体系结构设计 软件体系结构设计包括早期的设计决定,体现了系统的全局结构,对于整个系统的质量有着决定性的影响。 为了确保各种质量因素,正确地对体系结构进行抽象很有必要。 成功的体系结构设计是开发一个成功的软件系统的决定性因素之一。成功的体系结构有如下特征:可伸缩、简单、关系清楚明了、 职责分布明确、高效益和技术平衡。,4.1 软件体系结构设计概述,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第四章 SA的设计,需求驱动 需求驱动是指基于需求分析的结果,
52、因此需求驱动下软件体系结构设计主要是描述所要解决的问题和解决方案之间的动态关系。 需求分析与软件体系结构之间的关系 需求分析主要关心问题领域,其目的是限定软件系统所解决的问题范围,而软件体系结构是关于所求解问题的解决方案,它的主要目标是确定问题解决方案的结构。 软件体系结构是软件需求、业务技术流程和社会环境因素的整体高层规划。在体系结构设计过程中,反映用户需求并根据需求指导软件体系结构设计选择是一个相互作用的过程。,4.2需求驱动的体系结构设计,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第四章 SA的设计,需求驱动的体系结构设计模型,4.2需求驱动的体系结构设计
53、,问题空间,需求分析,体系结构设计,详细设计,需求分析模型,解决方案空间,评价,场景模型,分析,描述,满足目标,不满足 目标,获取,获取,分解,参考,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第四章 SA的设计,需求驱动的体系结构设计模型 问题空间定义了所解决的问题,一般是组织的高层业务目标,如某公司期望实现2006 年盈利,提高产品市场占有率等,其特点是具有较高的抽象性。此外,定义问题空间还可以通过再生原有遗产系统的用例来完成。 需求分析可分为两个阶段: 前期阶段的目的是通过研究组织环境来理解问题,主要考虑组织和非功能需求,强调理解系统需求底层的原理和需求的根
54、本原因,主要成果是产生一个组织模型; 后期阶段主要在操作环境中描述系统相关功能和属性,通常强调需求完整性、一致性及功能需求的自动验证等。,4.2需求驱动的体系结构设计,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第四章 SA的设计,需求驱动的体系结构设计模型 体系结构设计是根据构件或子系统之间的数据、控制及其它依赖关系描述的系统全局结构设计,该结构描述系统如何分解为构件,各构件如何相互交互等问题。 得到软件体系结构的抽象模型后,再从需求分析模型确定的解决方案空间中发现体系结构设计方案,从而得到具体的体系结构实例。 由于不能肯定所得到的实例是否满足需求分析模型,需要
55、对体系结构进行评价,即选定某解决方案的同时建立场景模型。,4.2需求驱动的体系结构设计,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第四章 SA的设计,需求驱动的体系结构设计模型 场景模型(也称为“用例模型”) 描述了构件执行责任间的因果关系,这种因果关系是评价体系结构选择方案是否满足需求分析模型和相关目标的依据。 如果评价结果满足需求分析模型中的目标,则进入详细设计阶段;反之,重新选择候选方案。,4.2需求驱动的体系结构设计,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第四章 SA的设计,模式(风格) 体系结构模式提供了获得高层次的
56、可复用构件的描述方式,是复用成功设计的有效手段。 基于模式的软件构件是整个体系结构的一部分,可以获得更高层次的设计复用和代码复用,有助于得到无需重新设计就可适用于多种应用的体系结构。,4.3模式驱动的体系结构设计,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第四章 SA的设计,模式驱动的体系结构设计模型,4.3模式驱动的体系结构设计,客户,需求规格说明,意图,问题,体系结构模式,体系结构描述,通用知识,组合,上下文,解决方案,实现,描述,应用,体系结构 模式的描述,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第四章 SA的设计,模式驱
57、动的体系结构设计模型 需求规格说明表示对问题的规格说明,该问题可以通过模式得以解决。 体系结构模式的描述主要由4 个概念组成: 意图表示使用模式的基本原则; 上下文表示问题的产生环境; 问题表示上下文环境中经常出现的问题; 解决方案是以元素及其关系的抽象描述的形式来表示对问题的解决方案。 体系结构模式表示应用的结果。 组合表示在导出体系结构描述时,体系结构模式之间的相互协作。,4.3模式驱动的体系结构设计,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第四章 SA的设计,模式驱动的体系结构设计模型的缺点 在处理范围广泛的体系结构问题时,模式库可能不够充足:已有的模式
58、分类无法覆盖所有范围的体系结构设计问题。 对模式的选择仅依靠通用知识和软件工程师的经验。 模式的应用并不是一个简单直接的过程,它需要对问题进行全面的分析; 对于模式的组合没有提供很好的支持。,4.3模式驱动的体系结构设计,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第四章 SA的设计,基本概念 在软件成型之前,知识的主要载体是文档和模型,我们称它们为工件。 工件是实用的软件制品,工件的概念表示某一设计方法的诸如工件类、工件操作、工件属性等描述。 软件体系结构是软件在设计构成上的基本、可供选择的形态和总体结构。可以从设计方法的工件描述中提取软件体系结构描述。,4.4
59、工件驱动的体系结构设计,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第四章 SA的设计,工件驱动的体系结构设计模型,4.4工件驱动的体系结构设计,客户,需求规格说明,通用知识,工件,分析和设计模型,子系统,体系结构描述,通用知识,描述,查找,分组,组合,解决方案,软件体系结构 黑龙江大学计算机科学技术学院 版权所有 2006-2007,第四章 SA的设计,工件驱动的体系结构设计模型 分析和设计模型及子系统共同表示解决方案,通用知识表示实际的知识领域概念。 描述表示需求规格说明的描述。 查找表示对工件的查找,查找过程得到了软件工程师的通用知识的支持,也得到了构成工件的启发式规则的支持,其结果是一组工件实例,这些工件实例用“分析和设计模型”概念表示。 分组将工件分组为子系统,为单个软件系统的开发定义整体体系结构。 组合表示软件体系结构由子系统组合而成,这一阶段也用到通用知识概念所提供的支
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某玻璃厂熔炉安全准则
- 某化工厂质量保证制度
- 某化工厂实验室安全操作制度
- 主题27 自然灾害与防范安全常识与自我保护
- 2026香港银行业量子准备度研究报告
- 某轮胎厂物料管理准则
- 第8课《蝴蝶的家》教学设计 试讲稿 说课稿 统编版语文四年级上册新教材
- 西南大学20年6月1067-大作业参考机考
- 小学二年级科学“发黄的豆苗”教学设计
- 高三化学氮及其化合物知识清单复习教学设计
- (新教材)苏教版二年级上册科学全册教案(教学设计)
- ESC 2026新版心力衰竭管理指南精读
- 2026年康复治疗师资格考试试题及答案
- 糖尿病周围神经病变共识(2023 版)
- 2026秋初中湘教版数学九年级上册(新教材)教学计划含进度表
- 新版2025-2026新人教版小学2二年级数学上册(全册)教案【新教材】
- 23J916-1 住宅排气道(一)
- KVS3.7汽车零件查询系统使用课件
- 项目部HSE管理大纲
- 煤矿绩效考核管理办法
- 商标许可使用授权书
评论
0/150
提交评论