第9章构件图
构件可以实现任意多的接口
9.2 接口
接口和构件之间的关系分为两种: ① 实现关系(Realization) ② 依赖关系(Dependency) 在图中,接口和构件之间用实线连接表示
实现关系;而接口和构件之间用虚线箭头 连接则表示依赖关系。
9.4 构件图
构件图实际上描述的是如何把软件的逻辑模型 映射为运行的实体。逻辑上软件系统是由一系 列的类组成,而运行系统是由文件、动态链接 库、配置文件等运行实体组成,那么哪个文件 里放置哪些类或资源,就由构件图负责描述。
图形表示
Order
UML1.4
<<component>> Order
Order
UML2.0
9.1 构件
构件类型
部署构件
DLL文件、exe文件、COM+文件、CORBA对象、 EJB、动态Web页、数据库表
<<DLL>>
Order
<<EXE>>
Order
<<Database>>
Order
第9章 构件图
9.1 构件 9.2 接口 9.3 构件依赖 9.4 构件图 9.5 构件图的作用 9.6 构件图的工具支持 9.7 实例——图书馆管理系统的构件图
9.1 构件
构件是系统中遵从一组接口并提供其实现 的物理的、可替换的部分,是定义了良好 接口的软件模块,如源代码、二进制代码、 可执行文件以及动态连接库等。
3 RTE举例
从模型到代码——正向工程
类SalesRep: 从模型到代码
3 RTE举例
从代码到模型——逆向工程
类SalesRep:从代码到模型
9.8 实例——图书馆管理系统的构件图
1. 业务对象组件图 2. 用户界面组件图
1. 业务对象构件图
2. 用户界面构件图
UpdateBorrowerFram e.j ava
BorrowerFrame.j ava
M ai nWi ndow.j ava
BrowseWi ndow.j ava Cancel Reservati onFrame.j ava
Reservati onFrame.j ava
ReturnItem Fram e.j ava Fi ndBorrowerDi al og.j ava
工作产品构件
源代码文件、数据文件
执行构件
系统执行后得到的构件
<<file>>
Order
9.2 接口
接口用于描述构件所提供的服务的一组操作集合, 指定了构件的外部可见操作。构件和接口之间的 关系叫做实现关系。可以通过接口访问一个构件。
图形表示
Order
DispOrder
通过构件实现的接口实际上是由构件内的类来定 义的,因此该接口已经在类图中定义过
T i tl eInfoWi ndow.j ava
LendItem Fram e.j ava
Fi ndT i tl eDi al og.j ava
BorrowerIn foWi ndow.j ava
UpdateT i tl eFram e.j ava
T i tl eFram e.j ava
AboutDi al og.j ava
M essageBox.j ava
Qui tDi al og.j ava
Resul tOfFi ndBorrower.j avaResul tOfFi ndT i tl e.j ava
构件图中通常包含3个元素: ① 构件(Component) ② 接口(Interface) ③ 依赖关系(Dependency)
9.4 构件图
构件图示例:
9.5 构件图的作用
构件图可以对以下几个方面建模
源代码文件建模
<<file>> <<sifginlael.>h> s{iv{gevnrerasslii.oohnn==33..55}}
<<file>> <s{s{<iБайду номын сангаасivgfgeeninrralasslieli.oh>.on>hn==44..00}}
<<file>> <s{s{<ivivfgegeinrnrlasaselili.o>.ohn>hn==44..11}}
<i<i<nn<fttefieirllrpeep.>c>.>p>cppp
<<file>> <s{s{<ivivgfgeeninrralasslieli.o>.ocnp>cn=pp=4p4..11}}
<<<<ffiille>>>> iirrqq..hh
<<file>> device.cpp
9.5 构件图的作用
可执行程序和库建模
9.5 构件图的作用
表、文件和文档建模
Ada
X
CORBA IDL
X
MIDL
X
XML DTD
X
专业版
C++版本 C++版本 VB版本
J版本 Ada版本
Rose 2003 Modeler
2 Rose的双向工程
Rose支持UML模型与编程语言之间的相互转 换,采用双向工程(RTE,Round Trip Engineering)的解决方案。Rose可以分析代 码的改动,对模型进行修改,构建出与代码相 关的更好的模型。
9.7 Rose的双向工程
1. Rose对编程语言的支持 2. Rose的双向工程 3. RTE举例 4. Rose的正向工程 5. Rose的逆向工程
1 Rose对编程语言的支持
支持的语言 企业版
ANSI C++
X
Visual C++
X
Visual Basic X
Java
X