第12章组件图

上传人:仙*** 文档编号:44162843 上传时间:2021-12-05 格式:PPT 页数:47 大小:801KB
收藏 版权申诉 举报 下载
第12章组件图_第1页
第1页 / 共47页
第12章组件图_第2页
第2页 / 共47页
第12章组件图_第3页
第3页 / 共47页
资源描述:

《第12章组件图》由会员分享,可在线阅读,更多相关《第12章组件图(47页珍藏版)》请在装配图网上搜索。

1、第12章 组件图 在软件建模的过程中,使用用例图可以推断系统希望的行为;使用类图可以描述系统中的词汇;使用时序图、组件图、状态图和活动图可以说明这些词汇中的事物如何相互作用以完成某些行为。在完成系统的逻辑设计之后,下一步要定义设计的物理实现,如可执行文件、库、表、文件和文档等。对面向对象系统的物理方面进行建模时要用到两种图:组件图和配置图。其中,使用组件图能够可视化物理组件以及它们之间的关系,并描述其构造细节。第12章 组件图 12.1 概述12.2 组件12.3 接口12.4 依赖关系12.5 组件图建模技术12.6 实例图书馆管理系统的组件图12.1 概述 组件图(Compohent Di

2、agram)描述了软件的各种组件和它们之间的依赖关系。组件图中通常包含3种元素:组件(Component)、接口(Interface)和依赖关系(Dependency)。每个组件实现一些接口,并使用另一些接口。如果组件间的依赖关系与接口有关,那么可以被具有同样接口的其他组件所替代。下图所示的是汽车租赁系统中的系统组件图。 12.1 概述 组件图示例:12.1 概述 在UML中,组件图是系统实现视图的图形表示,而其中的一个组件图只能表示系统实现视图的一部分,也就是说任何一个组件图都不能描述系统实现的所有方面,只有系统中的组件组合起来才能表示完整的系统实现视图。 与其他图类似,组件图中可以包含注释

3、和约束,也可以包含包或子系统,它们都可以将系统中的模型元素组织成较大的组块。当需要可视化一个基于组件的实例时,需要在组件图中加入一个实例。12.2 组件 组件(Component)是定义了良好接口的物理实现单元,是系统中可替换的物理部件。一般情况下,组件表示将类、接口等逻辑元素打包而形成的物理模块。 组件可以是源代码组件、二进制组件或一个可执行的组件。因为一个组件包含它所实现的一个或多个逻辑类的相关信息,创建了一个从逻辑视图到组件视图的映射。 在UML中,组件用一个左侧带有两个突出小矩形的矩形来表示,如下图所示。 12.2 组件 组件在很多方面与类相同:两者都有名称;都可以实现一组接口;都可以

4、参与依赖关系;都可以被嵌套;都可以有实例;都可以参与交互。但是类和组件之间也存在着差别:类描述了软件设计的逻辑组织和意图,而组件则描述软件设计的物理实现,即每个组件体现了系统设计中特定类的实现。12.2 组件12.2.1 名称 每个组件都必须有一个不同于其他组件的名称。组件的名称是一个字符串,位于组件图标的内部。在实际应用中,组件名称通常是从现实的词汇表中抽取出来的短名词或名词短语,并依据目标操作系统添加相应的扩展名,例如java和dll。组件的名称有两种:简单名(simple name)和路径名(path name)。其中,简单名只有一个简单的名称,上图所示的组件使用的就是简单名;而路径名是

5、在简单名的前面加上组件所在包的名称,如下图上所示。 通常,UML图中的组件只显示其名称,但是也可以用标记值或表示组件细节的附加栏加以修饰,如下图下所示。12.2 组件12.2 组件12.2.2 组件的种类 在对软件系统建模的过程中,存在3种类型的组件:配置组件(Deployment Component)、工作产品组件(Work Product Component)和执行组件(Execution Comjponent)。(1)配置组件(Deployment Component)。配置组件是运行系统需要配置的组件,是形成可执行文件的基础。操作系统、Java虚拟机(JVM)和数据库管理系统(DBMS

6、)都属于配置组件。(2)工作产品组件(Work Product Component)。工作产品组件包括模型、源代码和用于创建配置组件的数据文件,它们是配置组件的来源。工作产品组件包括UML图、Java类和JAR文件、动态链接库(DLL)和数据库表等。12.2 组件(3)执行组件(Execution Component)。执行组件是在运行时创建的组件,是最终可运行的系统产生的允许结果。Enterprise Java Beans、Servlets,HTML和XML文档、COM+和.NET组件以及CORBA组件都是执行组件的例子。12.2.3 Rose中不同类型组件的图标表示 组件的定义非常广泛,如

7、程序源代码、子系统、动态链接库、ActiveX控件、Java Beans等都可以认为是组件。在实际建模过程中,如果仅仅使用一种图标表示组件会造成不便,因此Rose为不同类型的组件提供了特别的图标,以便于系统设计人员建模和其他人员理解模型。12.2 组件1组件 Rose中的组件(Component)即一般意义上的组件,见上图。也可以用构造型来指定组件类型(如ActiveX、Applet、Application、DLL和Executable等),如下图上所示。2子程序规范 子程序规范(Subprogram Specification)通常是一组子程序集合名,子程序中不包括类定义。下图中所示给出了两

8、种表示子程序规范的图标。3子程序体 下图下所示给出了两种表示子程序体(Subprogram Body)的图标。12.2 组件4主程序 主程序(Main Program)是包含程序根的文件。下图上所示给出了两种表示主程序的图标。 5包规范 包是类的实现方法。包规范(Package Specification)是类的头文件,包含类中函数的原型信息。在C+中,包规范就是.h文件。下图中所示给出了两种表示包规范的图标。6包体 包体(Package Body)包含类操作代码。在C+中,包体就是.cpp文件。下图下所示给出了两种表示包体的图标。12.2 组件7任务规范 任务表示具有独立控制线程的包。可执行

9、文件通常表示为扩展名为.exe的任务规范(Task Specification)。下图上所示给出了两种表示任务规范的图标。8任务体 下图中所示给出了两种表示任务体(Task Body)的图标。9数据库 数据库(Database)可能含有一个或几个结构。下图下所示给出了两种表示数据库的图标。12.2 组件10虚包 下图上所示给出了两种表示虚包(Genetic Package)的图标。11虚子程序 下图下所示给出了两种表示虚子程序(Genetic Subprogram)的图标。12.3 接口 在类图和对象图一章中,已经对接口做了介绍,本节将主要介绍接口在组件图中的使用。在组件图中,组件可以通过其他

10、组件的接口来使用其他组件中定义的操作。通过使用命名的接口,可以避免在系统中各个组件之间直接发生依赖关系,有利于组件的替换。与类图中的接口一样,组件图中的接El也使用一个小圆圈来表示。 接口和组件之间的关系分为两种:实现关系(Realization)和依赖关系(Dependency)。接口和组件之间用实线连接表示实现关系,如下图上所示;接口和组件之间用虚线箭头连接表示依赖关系,如下图下所示。 12.3 接口 组件的接口分为两种:导入接口(import interface)和导出接口(export interface)。其中,导入接口供访问操作的组件使用,导出接口由提供操作的组件提供。如上图下所示

11、,接口(Interface)对于组件Component来说是导出接口,对于组件Component2来说是导入接口。 12.4 依赖关系 组件图用依赖关系(Dependency)表示各组件之间存在的关系类型。在UML中,组件图中依赖关系的表示方法与类图中依赖关系相同,都是一个由客户指向提供者的虚线箭头,如下图所示。其中,客户组件依赖于提供者组件;提供者组件只在开发时存在,运行时则不存在。 注意:为了便于组件之间的替换,建议使用上图下所表示的依赖关系。12.5 组件图建模技术 组件图一般用于对面向对象系统的物理方面建模,建模的时候要找出系统中存在的组件、接口以及组件之间的依赖关系。具体的建模步骤如

12、下。(1) 对系统中的组件建模。(2) 对相应组件提供的接口建模。(3) 对组件之间的依赖关系建模。(4) 将逻辑设计映射成物理实现。(5) 对建模的结果进行精化和细化。12.6 实例图书馆管理系统的组件图 本节通过图书管理系统的组件图的创建来说明如何绘制系统的组件图。12.6.1 使用Rational Rose绘制组件图的步骤12.6.2 图书馆管理系统的组件图12.6.1 使用Rose绘制组件图的步骤1创建组件图 要创建组件图,可以在“Component View”的图标上单击鼠标右键,在弹出的菜单中选择【New-Collaboration Diagram】,如下图所示。12.6.1 使用

13、Rose绘制组件图的步骤12.6.1 使用Rose绘制组件图的步骤 Rose会在“Component View”目录下创建组件图“New Diagram”,右键单击组件图的图标,在弹出菜单中选择【Rename】,可以更改创建的组件图的名字,如下图所示。12.6.1 使用Rose绘制组件图的步骤 建立组件图以后,双击组件图的图标,出现组件图的绘制区域,如下图所示。12.6.1 使用Rose绘制组件图的步骤2组件图工具栏按钮简介 下表所示列出了组件图工具栏中各个按钮的图标、按钮名字及其作用。按钮名称作用按钮名称作用Selection Tool选择一项Subprogram Body添加子程序体Tex

14、t Box添加文本框Main Program添加主程序Note添加注释Package Specification添加包规范Anclaor Note to Item将图中的元素与注释相连Package Body添加包体Component添加组件Task Specification添加任务规范Package添加包Task Body添加任务体Dependency添加依赖关系Database添加数据库Subprogram Specification添加子程序规范Generic Subprogram添加虚子程序12.6.1 使用Rose绘制组件图的步骤3添加组件 组件图创建以后,下一步就是向图中增加组件

15、。通常对每个逻辑视图包创建一个组件视图包。例如,如果逻辑视图包括Item、Title和Reservation类,则对应的组件视图也应该包含Item、Title和Reservation类的组件。 要将组件添加进组件图,首先点击工具栏中的图标组件按钮(几种组件按钮详见上表),然后在绘制区域要放置组件的位置单击鼠标左键,输入组件名即可。新添加的组件如下图所示。 提示:也可以选择菜单栏的Tools-Create-Component菜单项,然后在绘制组件的位置单击鼠标左键。12.6.1 使用Rose绘制组件图的步骤12.6.1 使用Rose绘制组件图的步骤 还可以为组件添加说明文档:右键单击要添加说明文

16、档的组件,从弹出菜单中选择Open Specification菜单项以打开组件规范对话框。选择“General”选项卡,在“Documentation”字段中输入组件的文档说明,如下图所示。12.6.1 使用Rose绘制组件图的步骤12.6.1 使用Rose绘制组件图的步骤4增加组件的细节 和其他模型元素一样,每个组件可以增加属性细节,如组件类型、组件语言以及组件声明等。(1)指定组件的类型。组件类型表明用哪个图标表示组件。从图标按钮中可以看出,组件有很多类型:标准组件类型、子程序规范、子程序体、主程序、包规范、包体、任务规范和任务体等。 要为组件指定类型,可以在组件的规范窗口中选择“Gene

17、ral”选项卡,在“Stereotype”字段中选择或输入所需要的组件类型,如下图所示。12.6.1 使用Rose绘制组件图的步骤12.6.1 使用Rose绘制组件图的步骤(2)指定组件语言。在Rose中,可以对各个组件分别指定语言,如模型的一部分可以指定C+语言,另一部分可以指定Java语言。 Rose支持的语言包括ANSI C+、Ada83、Ada95、CORBA、C+、COM、Java、Visual Basic、Visual C+、Web Modeler、XML DTD和Oracle 8等。 要为组件指定语言,可以打开相应组件的规范窗口,选中“General”选项卡,然后在“Langua

18、ge”字段中选择语言,如下图所示。12.6.1 使用Rose绘制组件图的步骤12.6.1 使用Rose绘制组件图的步骤(3)为组件添加声明。对于组件来说,还可以为每个组件生成代码期间要添加的补充声明。要添加声明,可以打开相应组件的规范窗口,选中“Detail”选项卡,然后在“Declarations”字段中添加,如下图所示。12.6.1 使用Rose绘制组件图的步骤12.6.1 使用Rose绘制组件图的步骤5增加组件之间的依赖 组件之间惟一存在的关系就是组件依赖性,添加一个组件对另外一个组件的依赖,步骤如下:选择工具栏中的图标按钮,从源组件向目标组件拖动一条线。源组件是指依赖于其他组件的组件,

19、目标组件是某一组件所依赖的组件,如下图所示。12.6.1 使用Rose绘制组件图的步骤12.6.2 图书馆管理系统的组件图 图书馆管理系统中主要有两个组件图:业务对象组件图和用户界面组件图。1. 业务对象组件图2. 用户界面组件图1. 业务对象组件图UpdateBorrowerFrame.javaBorrowerFrame.javaCancelReservationFrame.javaBrowseWindow.javaMainWindow.javaReservationFrame.javaFindBorrowerDialog.javaReturnItemFrame.javaTitleInfoWindow.javaLendItemFrame.javaFindTitleDialog.javaBorrowerInfoWindow.javaUpdateTitleFrame.javaTitleFrame.javaAboutDialog.javaMessageBox.javaQuitDialog.javaResultOfFindBorrower.java ResultOfFindTitle.java12.7 习 题1组件图的种类主要有哪些。2Rational Rose中可以表示哪些组件类型。3什么是接口。接口的种类有哪些。4简述创建组件图的步骤。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!