资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,#,Click to edit Master title style,Click to edit Master text styles,Second Level,Third Level,Fourth Level,Fifth Level,*,*,第十八章 部件图(Component Diagrams),引言,部件为存在于物理世界中的软件对象建模,部件是系统的一个物理的和可替代的组成部分,该组成部分遵循并实现了一组给定的接口。,部件表达的内容:,.,11/12/2024,1,第1页,共30页。,第十八章 部件图,引言,部件表达的内容:,真实的物理存在,开发用部件(.cpp,.h,.rc,.),发布部件(.exe,.dll,.ini),运行用部件(.tmp,.),部件实现了特定的动态行为,.,11/12/2024,2,第2页,共30页。,第十八章 部件图,引言,部件表达的内容:,真实的物理存在,.,特定的动态行为,接口/实现关系,通过接口规定部件对外提供的服务,实现部件的运行时刻可替换,类/依赖关系,类实现了部件的动态行为,部件/依赖关系,部件之间的依赖关系描述了一个部件对另一个部件提供的服务的使用,实际是对提供服务的部件的接口的依赖,部件的各方面的内容是通过部件图表现的,.,11/12/2024,3,第3页,共30页。,第十八章 部件图,引言,.,部件的各方面的内容是通过部件图表现的,部件图视化了软件系统的物理构成的静态特性,包括了上述的各方面的内容(图29.1),部件,类(接口),关系(实现关系、依赖关系),部件图为软件系统的静态实现视图建模,它是软件的实现视图的一部分,不但用于对基于部件的软件系统进行视化、说明和建档,还可通过正向工程和逆向工程实现可执行的软件系统的建造,11/12/2024,4,第4页,共30页。,第十八章 部件图,部件图的概念,部件图的定义,定义:,一个部件图表示了一组部件及其之间的关系,部件图的图形表示:,部件图是一组结点及其之间的连线的集合(图.),部件图的构成,.,11/12/2024,5,第5页,共30页。,分别为每一个类定义一个数据表2.,将数据库模式映射到物理数据库,简单的可执行系统的建模是不必要的,用部件图进行建模的一般规则,用于描述stored procedure,用部件图为软件系统的静态实现视图建模的四种方式,用部件图进行建模的一般规则,用不同的部件变体代表不同部件,为待发布的可执行版本建模,一个部件图表示了一组部件及其之间的关系,为源代码建模-类与源代码文件的对应由开发环境决定-部件图为源代码文件的配置管理建模,将双亲字段和后继字段分别存放在不同的数据表内,用于描述stored procedure,第十八章 部件图,部件图的概念,部件图的构成,部件图的名字,部件图的图形内容,部件,接口,关系,依赖关系,实现关系,泛化关系,关联关系,其他,.,11/12/2024,6,第6页,共30页。,第十八章 部件图,部件图的概念,部件图的构成,部件图的图形内容,.,其他,约束,标注,模型包,子系统,部件的实例,(部件图可以认为是一种特殊的类图),(它关注于系统的部件),部件图的用途,11/12/2024,7,第7页,共30页。,第十八章 部件图,部件图的概念,部件图的构成,.,部件图的用途,部件图为软件系统的静态实现视图建模,本质上是支持系统部件的配置管理 关注部件以各种方式组装起来以构成一个系统的各种方式,用部件图为软件系统的静态实现视图建模的四种方式,为源代码建模.,为可发布的可执行系统建模.,为物理数据库建模.,为自适应系统建模.,11/12/2024,8,第8页,共30页。,第十八章 部件图,部件图的概念,部件图的构成,部件图的用途,用部件图为软件系统的静态实现视图建模的四种方式,为源代码建模-类与源代码文件的对应由开发环境决定-部件图为源代码文件的配置管理建模,为可发布的可执行系统建模-可发布的可执行系统是一个供内部或外部用户使用的相对完整和一致的软件制成品(artifact)的集合-它关注的是为一个可运行的系统所必须的各软件部件-这时,部件图为该系统的物理构成建模,为物理数据库建模.,11/12/2024,9,第9页,共30页。,第十八章 部件图,部件图的概念,部件图的构成,部件图的用途,用部件图为软件系统的静态实现视图建模的四种方式,.,为物理数据库建模-数据库模式(database schema),定义了数据库的逻辑结构,相当于是一类常驻信息的应用程序接口(API)-数据库模式(database schema)是概念空间的事物-常驻信息则是物理空间的事物-常驻信息用物理数据库存储(关系数据库的数据表、面向对象数据库的页(page))-部件图可以用来为物理数据库建模,为自适应系统建模-.,11/12/2024,10,第10页,共30页。,第十八章 部件图,部件图的概念,部件图的构成,部件图的用途,用部件图为软件系统的静态实现视图建模的四种方式,.,为自适应系统建模-大多数系统是静态的-它们存在于固定的结点上运行-有些系统是动态的-例如:mobile agent-例如:一些部件-在结点之间迁移-目的:负载平衡或系统恢复-可以用部件图建模,用其他模型图描述它们的动态行为,11/12/2024,11,第11页,共30页。,第十八章 部件图,用部件图进行建模的一般规则,为源代码建模,主要包括两件事情,为源代码文件的编译依赖建模,不同文件之间的依赖关系,大多数情况下由开发环境管理,有时也可以作为生成MAKE文件的依据,为源代码文件的配置管理建模,同一文件在开发过程中不同版本之间的联系,e.g.:可以通过部件图发现当前开发进程的“热点”文件,一般规则,11/12/2024,12,第12页,共30页。,第十八章 部件图,用部件图进行建模的一般规则,为源代码建模,一般规则,辨识出你所感兴趣的源代码文件,将它们用部件的变体建模,可以借助于逆向工程提取你感兴趣的源代码文件,对于大的系统,可以使用模型包对源代码部件进行组织,如果要为配置管理建模,使用标记值标记相应的信息,如-版本号-作者-作者-最近修改信息,如有可能,和配置管理工具配合使用,11/12/2024,13,第13页,共30页。,第十八章 部件图,用部件图进行建模的一般规则,为源代码建模,.,例子:(图29.2),配置管理,其他部件,编译依赖,11/12/2024,14,第14页,共30页。,第十八章 部件图,用部件图进行建模的一般规则,为待发布的可执行版本建模,简单的可执行系统的建模是不必要的,对于复杂的可执行系统,由各种部件构成,可执行部件:-exe,dll,支持部件:-数据库文件,help文件,初始化文件,可能分布于不同结点,建模时做的事情.,11/12/2024,15,第15页,共30页。,第十八章 部件图,用部件图进行建模的一般规则,为待发布的可执行版本建模,.,建模时做的事情,为当前版本的配置建模,构成当前版本的各部件及其关系,为配置管理建模,版本发展过程中版本配置的控制-一个部件的改变将影响其他的部件,11/12/2024,16,第16页,共30页。,第十八章 部件图,用部件图进行建模的一般规则,为待发布的可执行版本建模,一般规则,辨识你将要建模的部件,运行于同一个结点,分布于不同结点,用不同的部件变体代表不同部件,考虑不同部件之间的关系,强调部件之间的接缝-接口-实现关系(输出接口)-依赖关系(输入接口),否则-省略接口-只使用依赖关系,例子.,11/12/2024,17,第17页,共30页。,第十八章 部件图,用部件图进行建模的一般规则,为待发布的可执行版本建模,例子:(fig.:29.3),强调接缝:,隐藏接口:,11/12/2024,18,第18页,共30页。,第十八章 部件图,用部件图进行建模的一般规则,为物理数据库建模,数据库模式是常驻型数据的抽象,物理数据库用来存储数据库模式定义的常驻型数据,关系型数据库,面向对象数据库,混合型对象/关系数据库,部件图可以为这些数据库建模,将数据库模式映射到物理数据库.,11/12/2024,19,第19页,共30页。,第十八章 部件图,用部件图进行建模的一般规则,为物理数据库建模,.,将数据库模式映射到物理数据库,面向对象数据库,十分直接,关系数据库,如果数据库模式中包含继承关系,考虑如下策略1.分别为每一个类定义一个数据表2.将双亲字段和后继字段分别存放在不同的数据表内,如果数据库模式中包含操作,考虑如下选择1.对于CRUD(create,read,update,delete)操作,使用标准的SQL调用或ODBC调用2.对于复杂的操作,映射到trigger或stored procedure,一般规则.,11/12/2024,20,第20页,共30页。,第十八章 部件图,用部件图进行建模的一般规则,为物理数据库建模,将数据库模式映射到物理数据库,.,一般规则,从逻辑模型中辨识出你要建模的数据库模式,确定将它们映射到数据库表的策略-可能还需要考虑物理数据库在不同结点上的分布,用部件图将这种映射视化-使用部件的,变体,尽量使用工具实现向物理数据库的转换,例子:.,11/12/2024,21,第21页,共30页。,第十八章 部件图,用部件图进行建模的一般规则,为物理数据库建模,例子:(fig29.4),一个数据库包含五个数据表,school.db:数据库,是部件的变体,变体名,其他部件:,变体,对应的逻辑视图中不存在继承关系,部件可以有属性,用于描述数据表的列,部件也可以有操作,用于描述stored procedure,11/12/2024,22,第22页,共30页。,第十八章 部件图,用部件图进行建模的一般规则,为自适应部件建模,自适应部件是动态的,在其生存期内将存在于不同的结点上,e.g.:,数据库备份-将同一个数据库备份到不同结点,其中只有一个是被使用的,其他作为备份-当被使用的数据库所在结点故障时,自动切换到备份数据库,活动代理(mobile agent)-,可执行部件-在网络结点上迁移-随时进行某种交易,为自适应部件建模使用的模型图.,11/12/2024,23,第23页,共30页。,第十八章 部件图,用部件图进行建模的一般规则,为自适应部件建模,为自适应部件建模使用的模型图,部件图、对象图、交互图,建模的一般规则,考虑将在结点间迁移的物理部件,使用位置值标记部件的位置,这个部件是部件的实例,将它绘制在部件图上-(包含部件实例的部件图也是一种对象图),使用交互图描述部件实例在结点之间的迁移,可以在交互图上将一个部件实例绘制多次,每个部件实例图标使用不同的位置标记值,例子:(fig29.5).,11/12/2024,24,第24页,共30页。,第十八章 部件图,用部件图进行建模的一般规则,为自适应部件建模,例子:(fig29.5),包含部件实例的交互图,使用了位置标记值,使用了NOTE,11/12/2024,25,第25页,共30页。,第十八章 部件图,正向工程和逆向工程,当正向工程一个类或协同时,类被映射到部件所对应的源代码文件,逆向工程时,源代码、可执行文件、二进制库先被映射到部件,然后再进一步追溯到类或协同,正向工程,正向工程包含两类映射,从类向源代码的映射,用于源代码的配置管理,从类直接向可执行部件的映射,关注于运行系统的配置管理,正向工程的一般规则.,11/12/2024,26,第26页,共30页。,第十八章 部件图,正向工程和逆向工程,正向工程,正向工程的一般规则,辨识出部件将要实现的类,选择部件所对应的文件,源代码文件,可执行文件(.exe,.dll,.),使用工具进行正向工程,ROSE,逆向工程.,-
展开阅读全文