版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件架构与建模共七十六页顺序(shnx)图协作图状态图回 顾共七十六页基本概念体系结构风格组件图部署图包与包图小结(xioji)与实验主要(zhyo)内容共七十六页建筑(jinzh)的例子狗舍一个人搭建(d jin),需要最小化建模简单的过程简单的工具共七十六页建筑(jinzh)的例子住房一个团队高效(o xio)和适时地建造,需要仔细的建模良好定义的过程良好的工具共七十六页建筑(jinzh)的例子摩天大厦共七十六页组织机构的例子(l zi)家庭作坊共七十六页组织机构(jgu)的例子中小公司共七十六页组织机构的例子(l zi)跨国集团共七十六页软件开发单枪匹马(dn qing p m)共七十六
2、页软件开发(kif)团队开发(kif)共七十六页软件开发大型(dxng)复杂系统共七十六页ISO/IEC 12207按ISO/IEC 12207软件开发生存周期过程,软件设计由两个活动组成软件体系结构设计-software architectural design顶层设计(top-level design)描述系统顶层的结构和组织标识各个构件软件详细(xingx)设计-software detailed design充分描述每个构件使之可以编码13/72共七十六页系统架构认识(rn shi)与实现程序=数据结构+算法程序=对象+对象系统=构件(gujin)+构件系统=组件+连接件整体结构技术细
3、节性能功能共七十六页为什么需要(xyo)体系结构我们所定义(dngy)的类或者对象其关注的重点是定义(dngy)了一个系统的核心概念和行为一个系统是由多个子系统组成,每个子系统中的领域对象都不只一个这些类如何组织、分布并协同完成所需的功能?因此系统应该要有一个总体的体系结构,它定义了各子系统之间的通信和耦合体系结构包图(architecture package diagram)15/72共七十六页软件体系结构的焦点(jiodin)和范围软件体系结构是一个软件系统的设计图解决复杂性问题提高复用和构件市场的潜力包含形式化方法两个主要焦点系统结构需求和实现之间的对应 构件 + 组装规则 + 行为规则
4、理解系统级关注的框架全局流动率,通讯模式,执行控制机构(jgu),可升级性,系统演化路径,容量,吞吐量,一致性,构件兼容性,等16/72共七十六页软件体系结构定义(dngy)1软件体系结构描述(mio sh)软件系统的子系统和构件及其相互关系体系结构的概念从研究软件的结构和风格开始,导致家族式(产品线)软件,可重用软件和类属设计UML Reference Manual:体系结构是一个系统的组织结构,包括系统分解成的各个部分、它们的连接性、交互机制和通知系统设计的向导规则17/72共七十六页系统(xtng)体系结构定义软件体系结构将多组类结合起来,形成一个有机的整体,并且展示(zhnsh)各部分
5、之间结构上的相互关系.构件(components)连接件(connectors)配置(configurations)共七十六页构件(gujin)构件是指语义完整、语法(yf)正确和有可复用价值的单位软件,是软件复用过程中可以明确辨识的元素;结构上,它是语义描述、通讯接口和实现代码的复合体。共七十六页构件(gujin)组成构件是计算或数据储存的单元构件可以是计算和状态的场所客户(clients)服务器(servers)数据库(databases)过滤器(filters)层次(layers)抽象数据类型(ADTs)构件可以是简单的或复合(fh)的复合构件描述了一个(子)系统共七十六页连接件连接件是
6、对以下内容进行建模的体系结构元素构件之间的交互指导这些交互的规则简单交互过程调用共享变量访问复杂和语义丰富的交互客户/服务器协议数据库访问协议异步事件(shjin)广播管道数据流共七十六页配置(pizh)拓扑体系结构的配置或拓扑是构件(gujin)和连接件的连接图(connected graph),描述了系统结构 适当的连接并发和分布特性符合设计启发式规则和风格规则复合构件本身就是配置共七十六页软件体系结构风格(fngg)是对某个体系结构的一组约束,定义了能满足要求的一组或一族体系结构通用结构:分层、管道过滤器、黑板分布式系统:客户-服务器、三层、中介交互式系统:MVC、表示-抽象-控制(kn
7、gzh)可适配系统:微内核、反映式其它:批处理、解释器、进程控制、基于规则共七十六页典型(dinxng)的体系结构风格共七十六页管道(gundo)/过滤器(pipes and filters)计算(j sun)过滤器计算过滤器管道过滤器:对输入数据进行局部变换,并采用渐进式计算方法,在未处理完所有输入数据以前,就可以产生部分计算结果,并将其送到输出端口。管道:各过滤器之间的连接器将一个过滤器的输出传到下一过滤器的输入端。特征:1.过滤器一定是独立的实体,即各过滤器之间不能共享状态; 2.过滤器与其连接的上下游的过滤器互相独立。过滤器只能涉及限制哪类数据可以出现在它的输入管道中,可以保证它将输出
8、何种类型的计算结果,但不能识别与其相连的管道的另一边的过滤器。$cat TestResults | sort | grep Good共七十六页1.系统(xtng)的整体行为可以理解为各独立过滤器行为的简单合成。 2.系统维护容易:过滤器可以容易地替换和增加。 3.允许进行如吞吐量和死锁等性能分析。 4.很自然地支持并发执行。1.过滤器容易被看成提供一个完整的将输入数据转换成输出数据的模块。实际上,过滤器是以渐进式处理数据的。 2.维护两个分离但相关的数据流时,很难设计这样的系统。 3.由于管道遵循最一般的数据传输标准,所以(suy),过滤器必须承担数据语法分析和编码的额外工作,增加了复杂性,降
9、低了性能。管道/过滤器(pipes and filters)共七十六页分层系统(xtng)(layered systems)内核(ni h)基本工具有用的系统用户软部件:实现在层次结构中的虚拟机连接件:层次与层次之间交互的协议层次化组织原则:每一层向其上层提供服务,并利用下层的服务。共七十六页支持基于抽象程度递增的系统设计。支持功能扩展、增强(zngqing)。因为功能的改变最多影响相邻的层次。支持复用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。并不是每个系统(xtng)都可以很容易地划分为分层的模式,有时即使存在逻辑层次结构,但出于对系统(xtng)性能的考虑,将低层和高层的
10、功能耦合起来。很难找到一个合适的、正确的层次抽象方法。分层系统(layered systems)共七十六页仓库(cngk)系统(repositories)软件(run jin)部件表示当前状态的中心数据结构一组相互独立的处理中心数据的部件部件交互方式根据输入数据流的事务处理类型决定执行哪个处理过程根据中心数据结构的当前状态触发进行执行传统的数据库系统黑板系统共七十六页黑板(hibn)(共享数据)知识(zh shi)源知识源知识源知识源直接存取:知识源不断改变黑板的状态。按照与应用程序相关的层次组织的问题求解数据独立、分离的与应用程序相关的知识及其处理单元黑板状态驱动控制:使用特定的知识。仓库系
11、统(repositories)共七十六页模型-视图(sht)-控制器风格用户控制器视图模型问题领域的应用程序使用操作更新查看共七十六页客户服务器风格(fngg)分布式系统中最常用(chn yn)的体系结构:客户/服务器模型服务器:为客户提供服务;事先并不知道有哪些客户对其进行访问。客户:必须直接或间接知道服务器的标识。远过程调用注意:结构的层次可以是两层,也可以是三层(在客户和服务器之间增加了一个中间层:中间件),三层结构中相邻两层仍然保持客户/服务器的关系。共七十六页客户-服务器风格(fngg)处理流程共七十六页三层客户(k h)-服务器风格共七十六页三层风格(fngg)处理流程共七十六页三
12、层客户(k h)-服务器风格共七十六页异构结构(jigu)风格共七十六页结构(jigu)模型视图用户视图用例图实现视图 结构视图 行为视图 环境视图 类图对象图顺序图协作图状态图活动图组件图部署图共七十六页组件(z jin)图组件图描述了软件的各种组件和它们之间的依赖关系。组件图中通常包含(bohn)3种元素:组件、接口和依赖关系。共七十六页组件(z jin)组件是定义了良好接口的物理实现单元,是系统中可替换的物理部件。一般情况下,组件表示将类、接口等逻辑元素打包而形成的物理模块。组件可以是源代码组件、二进制组件或一个可执行的组件。每个组件实现一些接口,并使用另一些接口。如果(rgu)组件间的
13、依赖关系与接口有关,就可以被具有同样接口的其他组件所替代。共七十六页组件(z jin)一个组件包含它所实现的一个或多个(du )逻辑类的相关信息。在UML中,组件用一个左侧带有两个突出小矩形的矩形来表示。 共七十六页组件(z jin)组件在很多方面与类相同 有名称; 可以实现一组接口; 可以参与(cny)依赖关系; 可以被嵌套; 可以有实例; 可以参与交互。共七十六页组件(z jin)类和组件之间也存在着差别: 类描述了软件设计的逻辑组织和意图(yt); 组件描述软件设计的物理实现,即每个组件体现了系统设计中特定类的实现。共七十六页组件(z jin)名称每个组件都必须有一个不同于其他组件的名称
14、。组件的名称是一个字符串,位于(wiy)组件图标内部。实际应用中,组件名称通常是从现实的词汇表中抽取出来的短名词或名词短语,并依据目标操作系统添加相应的扩展名,例如java和dll。共七十六页组件(z jin)名称组件的名称有两种:简单名和路径名。简单名只有一个简单的名称;路径名是在简单名的前面(qin mian)加上组件所在包的名称。共七十六页组件(z jin)名称通常,UML图中的组件只显示其名称,也可以用标记(bioj)值或表示组件细节的附加栏加以修饰。共七十六页组件(z jin)种类 在软件系统建模过程中,存在3种类型的组件:配置组件、工作产品(chnpn)组件执行组件。共七十六页配置
15、(pizh)组件配置组件是运行系统需要(xyo)配置的组件,是形成可执行文件的基础。操作系统、Java虚拟机(JVM)和数据库管理系统(DBMS)都属于配置组件。共七十六页工作产品(chnpn)组件工作产品(chnpn)组件包括模型、源代码和用于创建配置组件的数据文件,它们是配置组件的来源。工作产品组件包括UML图、Java类和动态链接库(DLL)和数据库表等。共七十六页执行(zhxng)组件执行组件是在运行时创建的组件,是最终可运行的系统产生的允许(ynx)结果。HTML和XML文档和.NET组件等都是执行组件的例子。共七十六页组件(z jin)图标组件的定义非常广泛,如程序源代码、子系统、
16、动态链接库、ActiveX控件等都可以(ky)认为是组件。 在实际建模过程中,如果仅仅使用一种图标表示组件会造成不便。共七十六页一般(ybn)组件Rose中的组件(Component),即一般(ybn)意义上的组件。可以用构造型来指定组件类型(Application、 DLL、ActiveX、 和Executable等)。共七十六页接口(ji ku)在组件图中,组件可以通过其他(qt)组件的接口来使用其他(qt)组件中定义的操作。通过使用命名的接口,可以避免在系统中各个组件之间直接发生依赖关系,有利于组件的替换。组件图中的接口也使用一个小圆圈来表示。共七十六页接口(ji ku)接口和组件之间的
17、关系分为(fn wi)两种:实现关系和依赖关系。接口和组件之间用实线连接表示实现关系;用虚线箭头连接表示依赖关系。共七十六页接 口组件(z jin)的接口分为两种:导入接口和导出接口。导入接口供访问操作的组件使用,导出接口由提供操作的组件提供。如下图所示,接口Interface对于组件Component来说是导出接口,对于组件Component2来说是导入接口。共七十六页依赖(yli)关系组件图用依赖(yli)关系表示各组件之间存在的关系类型。在UML中,组件图中依赖关系的表示方法与类图中依赖关系相同,都是一个由客户指向提供者的虚线箭头。其中,客户组件依赖于提供者组件;提供者组件只在开发时存在
18、,运行时则不存在。共七十六页组件(z jin)建模技术组件图一般用于面向对象系统物理方面的建模,建模时要找出系统中存在的组件、接口以及(yj)组件之间的依赖关系。具体的建模步骤如下: 对系统中的组件建模。 对相应组件提供的接口建模。 对组件之间的依赖关系建模。 将逻辑设计映射成物理实现。 对建模的结果进行精化和细化。共七十六页实例(shl)-图书馆管理系统组件图使用Rose绘制(huzh)组件图的步骤: 创建组件图 添加组件 增加组件的细节 指定组件的类型。 指定组件语言。 为组件添加声明。 增加组件之间的依赖。共七十六页实例(shl)-图书馆管理系统组件图组件(z jin)图工具栏按钮简介:
19、共七十六页实例(shl)-图书馆管理系统组件图图书馆管理系统的业务对象(duxing)的组件图共七十六页部署(b sh)图共七十六页定 义部署图是描述计算机、外部硬件设备及它们构成的物理分布结构。部署图包含两个部分:节点和连接。简单的单机系统部署图包含一台计算机及其外部设备(wi b sh bi),所有组件都部署在这个节点上在网络支持和系统中,部署图不仅描述每个分布的节点,还描述组件在节点上的分布。共七十六页节 点节点代表一个运行时计算机系统中的硬件资源。节点通常拥有一些内存,并具有处理能力。例如(lr)一台计算机、一个工作站等其它计算设备都属于节点。共七十六页自定义构造型图标共七十六页节点(
20、ji din)中的构件当某些构件驻留在某个节点(ji din)时,可以在该节点(ji din)的内部描述这些构件。对于一张部署图而言,最有价值的信息就是节点上的内容,也就是安装在节点中的构件。共七十六页连 接节点之间最常见的关系就是关联关系(用一根实线表示(biosh)),在部署图中,称之为“连接”,表示(biosh)两个节点之间的物理连接。共七十六页如何绘制(huzh) 部署图绘制系统部署(b sh)图,可以参照如下步骤进行: (1)对系统中的节点建模; (2)对节点间的关系建模; (3)对系统中的构件建模,这些构件来自构件图; (4)对构件间的关系建模; (5)对建模的结果进行精化和细化。
21、共七十六页案 例以一个IC卡考勤系统的例子来说明部署图的绘制过程。确定所需的节点及节点间的连接关系(1)IC卡读卡器:提供给员工刷卡用,它收集刷卡的事件信息,传给应用系统,并存入数据库中。(2)应用服务器:用来负责(fz)从IC卡读卡器重收集信息,并对管理人员提供员工设置、考勤查询等功能。(3)数据库服务器:用来存储考勤数据,由于该系统比较小,因此在物理上可以与应用服务器合并。(4)客户端软件:提供给管理人员使用,连接应用服务器,完成相应操作。另:客户端与服务器的连接显然应该是通过网络(假设是百兆以太网),而服务器与IC卡读写器则是通过串口(RS-232C).共七十六页案例(n l)共七十六页案 例2. 根据实现描述节点 结合(jih)具体的实现来描述每个节点,通过约束以及构件来表示他们内部的结构与特点。假设该系统使用的是Delphi+Access开发的。(1)客户端:需要使用Windows操作系统,安装客户端软件(假设名为KaoQin.exe)。(2)服务器:包
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论