版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 组件图,在面向对象的系统分析与设计过程中,完成系统的逻辑设计之后,接下来要考虑的就是系统的物理实现。 构造系统的物理实现模型可以描述应该如何根据系统硬件、软件的各个组件间的关系来布置物理组件。 系统的物理实现建模工作在UML建模的早期就可以进行,但直到系统使用类图进行完全建模之后,物理实现模型才能够完全构造出来。 构造物理实现模型,有助于设计系统的整体架构。,在UML中,对面向对象系统的物理实现进行建模需要使用组件图和配置图,这两种模型图又因此统称为实现图。 使用组件图来可视化系统物理组件及它们之间的关系,并描述其构造细节。 使用配置图来描述系统所需的处理器和设备的拓扑结构。,也称“构
2、件图”,构件图描述代码部件的物理结构及各部件之间的依赖关系。 一个构件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。构件图有助于分析和理解部件之间的相互影响程度。,9.1 概述,组件图(Component Diagram)是UML提供的一种表示组件的组织结构和相互关系的图,用于表达在实现时如何将系统元素组织成组件,从而支持以组件为单位进行软件制品的实现和发布。 在UML中,一个组件图只能表示系统实现图的一部分,任何一个组件图都不能描述系统的全部,但当系统中的组件图都组合在一起,就能表示建模系统的完整的实现。,进销存管理系统组件图示例,9.2 组件图的元
3、素,组件图通常包括3种元素: 组件 接口 关系,1.组件,组件(component)又称构件,它是定义了良好接口的物理实现单元,是系统的单个组成部分,它可以是一个文件、产品、可执行文件或脚本等。 一般情况下,组件表示将类、接口等逻辑元素打包而形成的系统中的模块部件,其表现形式在其环境中是可替换的。 作为一种物理实现单元,组件包含类,类通过组件来实现,组件与类之间是依赖关系。组件与类之间存在着很多的相同点和不同之处。,组件与类的比较,在UML中,组件用一个左侧带有两个突出小矩形的矩形图标表示。 每个组件都应有一个名称以表示该组件并区别其他组件,位于组件图标内部。 组件名称是一个标识符字串,只有单
4、独一个名称的称为简单名;在简单名前加上组件所在包的名称叫做路径名。,在对软件系统建模的过程中,存在以下3种类型的组件: 配置组件(Deployment Component) 配置组件是运行系统前需要配置的组件,是形成执行文件的基础。例如,操作系统(OS)、数据库管理管理系统(DBMS)以及Java虚拟机(JVM)都属于配置组件。 工作产品组件(Work Product Component) 工作产品组件包括模型、源代码和用于创建配置组件的数据文件。例如,UML图、Java类和JAR文件、数据库表以及动态链接库文件(DLL)等都是工作产品组件。 执行组件(Execution Component)
5、 执行组件是在运行时创建的组件,时刻运行的系统产生的结果。执行组件包括HTML文档、XML文档、Enterprise Java Beans、COM+组件、.NET组件以及CORBA组件等。,2.接口,在组件图中也可以使用接口。接口用来描述一个组件能提供服务的操作(只提供操作名称而没有具体实现)的集合。 通过使用接口,组件可以使用其他组件中定义的操作。 接口可以使源代码级定义的接口,也可以使运行时使用的二进制接口。 组件之间的依赖通过指向所使用的组件接口来表示。,2.接口,在UML中,接口的表示方法与类图中的接口相同。 组件的接口又可以分为两种类型: 输出接口(export interface)
6、:输出接口由提供操作的组件提供。 输入接口(import interface):访问服务的组件使用输入组件。,3.关系,组件图中的关系分为两种:实现关系(Realization)和依赖关系(Dependency)。 其中,组件之间以依赖关系为主;组件与接口之间包含实现关系和依赖关系两种。 在UML组件图中用一条连接组件与接口的实线表示实现关系;用带箭头的虚线表示依赖关系,箭头从依赖的组件指向被依赖的组件。,业务对象BO组件图,9.1.1 组件图,4补充图标 建模工具里都为不同类型的组件定义了特定的图标,这既便于系统设计师在建模时使用,也便于其他人员理解。 在Rational Rose中: 1)
7、主程序(main program),9.1.1 组件图,2)包(package) 3)子程序规范(subprogram specification)和子程序体(subprogram body),9.1.1 组件图,4)包规范(package specification)和包体(package body) 5)数据库,即C+的.h文件,C+的.cpp文件,9.3 组件图建模及应用,组件图的应用: 源代码组件建模 二进制组件建模 可执行组件建模 数据库组件建模, 源代码组件建模,源代码组件也称为编译时组件,是实现一个或多个类的源代码文件,二进制组件和可执行组件都是由源代码组件经编译后产生的。 使用
8、不同的程序设计语言开发的程序具有不同的源代码组件。 例如,使用C+语言时,程序的源代码存在于.h文件和.cpp文件中;使用Java语言时,程序的源代码位于.java文件中。,源代码组件上可标上相应符号用以表示不同类型文件: 符号用以表示包含源代码或数据的文件; 用以表示Web页; 表示文档(包含文档,而不是可编译代码), 二进制组件建模,二进制组件也称连接时组件,使源代码组件经编译后产生的目标代码。 它可以使编译一个源代码组件而产生的目标代码文件,或者是编译一个或多个源代码组件而产生的静态库文件或动态库文件。 目标代码文件和静态库文件在运行前连接成可执行组件,而动态库文件(也称动态链接库,DL
9、L)在运行时才连接成可执行组件。 二进制组件建模过程中,使用符号来指出组件是静态库文件或动态库文件。, 可执行组件建模,可执行组件又称为运行时组件,是系统执行时使用的组件,即可执行程序组件(.exe)。 可执行组件可以从二进制组件产生,也可以直接从源代码组件产生。 在进行可执行组件建模时,需要首先找出构成系统的所有组件,然后区分不同种类的组件,还需要确定组件间的关系。 可执行组件建模过程中,可以使用、符号来指出组件是可执行文件或可执行程序。, 数据库组件建模,通过组件图可以给出数据库组件的模型,而每个数据库组件又可以包含数据库表组件。 通过数据库组件建模,可以使用特殊符号来代替通常情况下的数据
10、库或数据库表的表示法;还可以描述与每个数据库表组件相关的字段与存储过程。 可以通过组件建模将系统中可能包含的大量库表情况清晰地显示出来。 在数据库组件建模过程中,可以使用、符号来分别指出组件是数据库组件和数据库表组件。,Course.mdb组件代表Access数据库,Student组件、Course组件和Elective组件是组成Course.mdb数据库的3个数据库表。,组件图建模 组件图用于对系统的物理实现进行建模,描述系统组件与组件之间的关系。 组件本身是系统的一个物理模块,它的设计应充分体现软件的模块性和可重用性。,组件设计时,设计一个结构良好的组件应遵循以下原则: 从物理结构上对软件
11、系统进行抽象。 组件应是内聚的。 组件中的类应彼此重用。 提供一组定义完整的接口实现。 组件所包含的类其功能应相关,以便于满足实现接口。 组件之间不应有循环的依赖。 组件、接口之间一般只有依赖和实现关系。,一个结构良好的组件图应具备以下特点: 侧重描述系统静态试图的某一侧面,不应求大、求全。 只包含那些对描述该侧面内容有关的模型元素。 提供于抽象层次一致的描述,只显示必要的修饰。 图形不要过于简化,以防产生误解。,在组件图的建模过程中,可以参考以下步骤: 对系统中的组件建模。 定义相应的组件提供的接口。 对组件与组件、组件与接口之间的关系建模。 将逻辑设计映射为物理实现,完成组件图。 对建模结
12、果进行精化和细化。,9.4 组件图建模实例,对于图书管理系统进行组件图建模,主要从两个方面进行建模: 业务逻辑包组件图建模 GUI包组件图建模,业务逻辑包组件图建模主要包括: 借阅组件(Loan.java) 书目组件(Title.java) 图书组件(Book.java) 借阅者组件(Borrower.java) 管理员组件(Manager.java) 其中,Manager.java组件依赖于系统管理员组件(Administrator.java)和图书管理员组件(Librarian.java)。,业务逻辑包组件图,GUI包包括MainWindow类和Manage Window类 GUI包组件图
13、 主界面组件图 管理员用户界面组件图,主界面组件图包括: 主窗体组件(MainWindow.java) 借书对话框组件(BorrowDialog.java) 还书对话框组件(ReturnDialog.java) 密码修改对话框组件(ModifyDialog.java) 查询对话框组件(QueryDialog.java) 显示对话框组件(DisplayDialog.java),管理员用户界面组件图包括: 书目管理对话框组件(TitleDialog.java) 图书管理对话框组件(BookDialog.java) 借阅者管理对话框组件(BorrowerDialog.java),在管理员用户界面组件
14、图中: TitleDialog.java组件还可以进一步细化出AddTitle.java组件、UpdateTitle.java组件和DeleteTitle.java组件。 BookDialog.java组件可细化出AddBook.java组件、UpdateBook.java组件和DeleteBook.java组件 BorrowerDialog.java组件可细化出AddBorrower.java组件、UpdateBorrower.java组件和DeleteBorrower.java组件。,构件图,实例3,图中依赖关系包括: 顾客需要信息亭接口提供服务 售票员需要职员接口提供服务 信用卡付款需要
15、信用卡代理提供服务 职员接口需要预订销售、个人销售和团体销售提供服务 管理接口需要数据库状态提供服务 售票处需要付款和购买提供服务 等等,图中实现关系包括: 信用卡付款提供付款服务 票数据库提供购买和状态查询服务 售票处提供预订购买、个人购买和团体购买服务,情景一: 购买个人票可以通过公用信息亭订购也可直接向售票员购买,但购买团体票只能通过售票员。 情景二: 买票的人可以根据任意选择预订销售或个人销售或团体销售中的一种方式,售票处为了方便销售,需要信用卡付款服务的支持,同时也必然需要票数据库处在有票可卖的状况中。,情景描述,第10章 配置图,对系统进行物理实现建模时需要用两种图进行描述:组件图
16、和配置图。 组件图用来建模软件组件,而配置图用来对配置系统时涉及到的硬件进行建模。,10.1 概述,配置图(Deployment Diagram,又称部署图)用来描述系统所需的处理器和设备的拓扑结构,显示了运行软件系统的物理硬件,以及如何将软件配置到硬件上。 换言之,配置图描述了执行处理过程的系统资源元素的配置情况以及软件到这些资源元素的映射。,10.1 概述,配置图在UML 1.x系列中与组件图统称为实现图,当时对它的定义是:“一种显示运行时的处理结点以及在其上生存的组件、进程及对象配置的图。”其作用是表示各个结点上需要配置那些组件,以及这些结点是如何通过网络相互连接的。 在UML 2.0出
17、现以后,对配置图部分出现了较大调整,其定义是:“一种描述系统执行结构的图,它把系统制品表示成结点,通过通信路径连接这些结点而构成网络。结点通常以嵌套的方式定义,即表示硬件设备,也表示软件执行环境。”,10.2 配置图元素及表示法,通常情况下,配置图所包含的元素有:结点和关系。 配置图可以显示结点以及它们之间的必要连接,也可以显示这些连接的类型,还可以显示某些结点上所包含的组件之间的关系。,1.结点,结点(node)在配置图中表示一个硬件设备或者执行环境,即被开发的软件制品将要配置于其上的宿主设备或环境。 UML给出的制品定义是:“制品(artifact)是一组信息的物理说明,这些信息是由软件开
18、发过程所使用或者产生的,或者是由系统的开发与操作所使用或者产生的。” 制品的例子包括源文件、执行文件(如.exe文件、位串文件、DLL文件、JAR文件、脚本或汇编语言程序等)、模型文件、数据库表、邮件信息、书面文档、草稿等。,在UML中,结点用一个三维立方体来表示。 其中,又可以把结点分为两种类型:处理器(Processor)和设备(Device)。 处理器是指具有计算能力的结点,它可以执行软件组件。 设备是指没有计算能力的结点,它们通常是通过其接口为外界提供某种服务,如打印机、扫描仪等都是设备。,Processor,Device,配置图与组件图都是描述系统物理实现的模型图,作为两种图的主要元
19、素,结点与组件的比较如下表所示。,与组件相同,每个结点都有自己的名称,用以区别于配置图中其他的结点。 结点的名称是一个有短名词或名词短语构成的字符串,位于结点图标内部。 结点的名称也分为简单名与路径名两种。,配置图中可以包括包和子系统,它们可以将系统中的模型元素组织成更大的组块。 配置图中还可以包含组件,这些组件都必须存在于配置图中的结点上,将结点和组件结合起来,用以处理硬件资源和软件实现之间的关系。 在图形表示中,可以将相应的组件或组件图建模在结点内部;也可以在结点和组件之间添加一条表示依赖关系的带剪头虚线并进行标识。,驻留结点上的组件图,带有依赖关系的配置图,2.关系,在配置图中,使用关联
20、关系(Association)表示结点之间的通信路径。 配置图中的关联关系与类图中的关联关系采用相同的表示方法,都是一条实线。 在连接硬件是通常关心结点之间的连接方式和通信方式,因此结点之间的关联关系一般不使用名称标识,而是使用构造型来描述,如、等。,4图标 处理器(Processor),表示具有运算能力的节点。 设备(Device),表示没有运算能力的节点 。 通讯路径(Connection),表示节点之间的通讯关系。,关联关系示例,10. 3 配置图建模及应用,1.配置图的应用 在应用方面,通常可用配置图建模的系统有: 客户机/服务器(C/S)系统 浏览器/服务器(B/S)系统 分布式系统
21、 嵌入式系统,客户机/服务器(C/S)以及浏览器/服务器(B/S)两类系统的配置图建模比较相似,运用配置图能够可视化的显示在客户终端运行的组件和在服务器端运行的组件,还可以通过将组件与结点嵌套,通过结点间的关联为各种组件建立通信模型。 在客户机/服务器系统配置图建模时需要考虑客户端和服务器端的网络连接情况以及系统软件组件在各个节点上的分布。 系统主要分为“胖”客户机系统和“瘦”客户机系统两种。其中,“胖”客户机系统的客户端具有较强的计算能力,可以执行系统的部分商业逻辑;而“瘦”客户机系统的客户端只有有限的计算能力,一般只能管理用户界面和信息的显示。,以客户机/服务器为例说明,此类系统在进行配置
22、图建模时,应参考以下策略: 为系统的客户端和服务器端处理器进行建模。 为系统中的主要设备建模。 对系统中的处理器和设备进行扩充。 确定配置图中各元素之间的关系。,客户机/服务器系统配置图示例,分布式系统分布在若干个分散的结点上,并且系统是在动态变化的,结点的数量和软件组件的分布也是不断变化的。 对于分布式系统,可以运用配置图进行建模来描述当前的拓扑结构和软件组件的分布情况。 需要注意的是,在分布式系统配置图建模过程中,LAN、Internet等网络也将被表示为一个结点。,分布式系统配置图示例,使用配置图对嵌入式系统进行建模,可参考如下策略: 找出系统的必要结点。 运用扩展机制为系统定义必要的原
23、型。 对系统中的处理器和设备之间的关系进行建模。 精化和细化智能化设备的配置图。,收银台嵌入式系统配置图示例,2.配置图建模 运行环境比较简单的小型软件系统不需要进行配置图建模。 如果要开发的软件系统需要使用出标准设备之外的其他设备(如路由器、打印机、扫描仪等),或者系统中的硬件设备、软件组件分布在多个处理器上,这时就必须进行配置图建模。,配置图建模的重点是确定结点以及定义结点间的关系,具体的建模过程可以参照下列步骤: 对系统中的结点建模。 对结点之间的关联关系建模。 对驻留在结点上的组件建模。 对结点上组件间的依赖关系建模。 对建模的结果进行精化和细化。,在建模的基础上绘制配置图的步骤如下:
24、 添加结点。 完成结点上的配置及内嵌组件图的建模。 添加结点间的关系。 精化、细化、整理配置图。,10.4 配置图建模实例,图书管理系统被设计成基于局域网和数据库的客户端/服务器结构的系统。 该系统配置图中应包括1个Printer(打印机)设备和3个处理器结点:Application Server(图书管理系统应用服务器)、DataBase Server(数据库服务器)、ClientPC(客户端计算机)。 其中,Application Server提供了借书、还书服务以及维护借阅者信息、书目信息、图书信息、管理员信息等功能;DataBase Server保存了系统中所有的持久数据。 Application Server、Dat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 渣油热加工工岗前班组管理考核试卷含答案
- 热硫化硅橡胶生产工创新意识模拟考核试卷含答案
- 电池试制工岗前复试考核试卷含答案
- 钻井柴油机工岗前安全教育考核试卷含答案
- 林草种子工岗前环保竞赛考核试卷含答案
- 丙烯酸树脂装置操作工岗前理论综合考核试卷含答案
- 壁球制作工测试验证测试考核试卷含答案
- 电化学精制装置操作工班组安全评优考核试卷含答案
- 2024年海南东方新丝路职业学院辅导员考试笔试真题汇编附答案
- 炼钢浇铸工岗前基础应用考核试卷含答案
- 化工厂班组安全培训课件
- 2025四川成都农商银行招聘10人笔试备考题库及答案解析
- 营业执照借用协议合同
- 2025年秋苏教版(新教材)初中生物八年级上册期末知识点复习卷及答案(共三套)
- 2025年小升初学校家长面试题库及答案
- 2025年法考客观题真题回忆版(含答案)
- 2025年危化品泄漏应急培训教案
- 2026年铁岭卫生职业学院单招职业技能测试题库附答案详解
- 2025年江南大学招聘真题(行政管理岗)
- 2024-2025学年江苏省南通市海门区高二上学期期末调研地理试题(解析版)
- 汽车焊接知识培训
评论
0/150
提交评论