oose09物理视图剖析

上传人:今*** 文档编号:107218637 上传时间:2019-10-18 格式:PPT 页数:71 大小:1.16MB
返回 下载 相关 举报
oose09物理视图剖析_第1页
第1页 / 共71页
oose09物理视图剖析_第2页
第2页 / 共71页
oose09物理视图剖析_第3页
第3页 / 共71页
oose09物理视图剖析_第4页
第4页 / 共71页
oose09物理视图剖析_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《oose09物理视图剖析》由会员分享,可在线阅读,更多相关《oose09物理视图剖析(71页珍藏版)》请在金锄头文库上搜索。

1、-物理视图,使用UML进行面向对象的分析,使用UML进行面向对象的分析,董瑞志 Email: hello_u MSN: nature_dong 联系电话:13913688630,引言(1/3),建筑公司的最终产品是存在于现实世界中的物理建筑。可以通过建立逻辑模型来可视化、详述、文档化建筑物的外观的设计决策,如布局、结构、墙壁、供电、管道等,并建立文档保存。当确实建造了该建筑物之后,这些要素都变成了现实中的事物。,引言(2/3),逻辑的、物理的视图都是必要的。如果你正在一个可以任意处理、且拆除和重建代价极低的建筑物,你或许可以不做任何逻辑建模,而直接构造物理建筑。但是如果你正在建造一个改造/失败

2、代价特别高的建筑时候,同时建立逻辑和物理模型就成了一种必需。,设想建造一个狗窝和一个高层大厦的区别!?,引言(3/3),开发一个软件密集型的系统也是如此:需要建立逻辑模型可视化、详述、文档化系统术语、系统的部分的协调/行为等诸多方面的决策。这些逻辑视图存在于概念世界中,而物理事物则存在于Byte世界中。 软件系统的逻辑视图最终转换成存在于物理节点上,可以通过直接间接方式参与到可执行的系统之中。,概述(1/3),系统模型的大部分内容反映了系统的逻辑和设计方面的信息,并且独立于系统最终的实现单元。然而为了重用和可操作性的目的,系统实现方面的信息很重要。 UML使用实现视图和部署视图表示系统的实现单

3、元。,概述(2/3),实现视图将系统中可重用的块包装成具有可替代性的物理单元,这些物理单元被称为构件。实现视图使用构件和构件间的接口和依赖关系表示设计单元的具体实现。构件是系统高层的可重用的组成部分。 实现视图中包含构件图的建模机制。,概述(3/3),部署视图是表示分布式系统中节点、各个节点上的构件以及节点上构件中对象的视图。 它表达了运行时的计算资源的物理布置。这些计算单元被称为节点。在运行时节点包含构件和对象。构件和对象的分配可以静态的,它们也可以在节点间迁移。 如果含有依赖关系的构件实例放置在不同的节点上,部署视图可以展示出执行过程中的瓶颈问题。 部署视图中包含部署图的建模机制。,构件和

4、构件图,构件(1/4),构件是定义了良好接口的物理实现单元,它是系统中可替换的部分。每个构件体现了系统设计中特定类的实现; 一般情况下构件表示将类、接口、协作等逻辑元素打包形成的物理模块; 构件只在实现域中存在,它们是计算机的物理组成部分,可以与其他构件相连,由类似构件替换、移动、获得等。,构件(2/4),良好定义的构件不直接依赖于其他构建而依赖于构建所支持的接口。在这种情系统中的一个构件可以被支持正确的接口的其他构件所替代。,构件(3/4),构件具有它们支持的接口和需要从其他构件得到的接口。接口是被软件/硬件支持的一个操作集。通过使用命名的接口可以避免在系统的各个构件之间直接发生依赖关系,有

5、利于新构件的替换。,构件(4/4),构件视图展示了构件之间相互依赖的网络结构,它有两种表示形式: 表示为一个包含依赖关系的可用构件的集合,它是构造系统物理单元; 表示为一个配置好的系统,用来建造它的构件已被筛选出。在这种形式下,每个构件与为它服务的其他构件连接,这些连接必须与构件的接口要求匹配。,构件的特征,构件具有两个特征: 代码特征 构件包含了实现类或其它元素的代码; 身份特征 一个有身份的构件拥有身份和状态,它带有定位上的物理对象,可以有属性、与其他构件的关系等信息。如果一个构件没有身份,则它的所有实例都是相同的,此时构件实例没有值或没有状态;,当对象要求有身份的构件提供服务时,必须选择

6、一个特定的构件实例。因为每个有身份的构件都有状态,因此要求不同的实例产生不同的结果。,构件的表示法,构件用一边有两个小矩形的长方形表示,它可以用实线和代表构件接口的圆圈相连,如下图所示:,构件的名称,每一个构件具有一个有别于其他构件的名称。 构件名称可以是简单名(单独一个字符串),也可以是路径名(在简单名前加上构件所在包的名称信息),也可以使用标记值或表示其细节的分隔栏修饰。,构件与类(1/3),相同点 都可以是实现一组接口; 都可以参与依赖、泛化、关联关系; 都可以嵌套; 都可以具有实例; 都可以参与交互;,构件与类(2/3),不同点 类表示逻辑抽象,而构件表示存在于Byte世界的物理抽象,

7、即构件可以存在于节点之上;这一项差异指明了建模时候是采用构建还是类的决策基础 构件表示的是物理模块而不是逻辑模块,而类处于不同的抽象级别;可以看出类和构件的关系,构件是类等逻辑元素的物理实现,可以采用显式展示类和构件的依赖关系 类可以拥有属性和操作,而构件拥有得只能够是通过其接口访问的操作;特别指出接口是类和构件的桥梁,它连接了系统的逻辑模型和物理模型,构件与类(3/3),构件和接口(1/5),接口是用来描述一个类或构件所提供服务的集合。构件和接口的关系是很重要的,几乎所有流行的构建技术,如CORBA、EJB等都把接口作为构件绑定的粘合剂。 可以通过说明代表系统中主要衔接点的接口来分解系统的物

8、理实现,然后提供实现这些接口的构件以及通过这些接口访问其他服务的构件。基于这种机制,能够产生独立于物理节点的、可替换的物理系统。,构件和接口(2/5),可以使用如下方式显示构件和接口的关系: 用简略的图形符号显示接口,实现接口的构件用一个简略的实现关系联接到接口上; 采用扩展形式显示接口,这种方式可以显示接口拥有的操作。实现接口的构件用完整的实现关系联接到接口上。 无论采用上述那种方式,通过接口访问其他构件的服务的构件都采用依赖关系联接到接口上。,构件和接口(3/5),构件实现的接口称为示出接口export interface,即构件提供给其他构件的服务接口; 构件使用的接口称作引入接口imp

9、ort interface,即应用它的构件必须遵循这个接口并以此为基础构造。 一个构件可以遵从多个引入接口,也可以同时引入接口并示出接口。,构件和接口(4/5),一个给定的接口可以由一个构件示出,由另一个构件引入,此时接口位于两个构件之间而断开了构件间直接的依赖关系。 不管接口采用什么构件实现,使用这个给定接口的构件都能够正常运行。 当然,一个构件iff它所引用的所有接口都能由其他构件的示出接口提供时,才能应用到相应语境之中。,构件和接口(5/5),构件的端口,可以采用多种不同方式通过依附于端口的相关接口使用构件;,构件可以拥有端口与内部结构。,构件的内部结构,也可以显示构件的内部结构,为它的

10、成员、特性及连接符建模。,委托连接符(1/2),构件提供的接口可由其内部成员实现。与此类似,构件的需求接口可被其内部成员请求。在这种情况下使用委托连接符Delegation Connector显示内部成员实现构件接口的细节。,委托连接符(2/2),委托连接符被绘制为箭头,箭头指向“通往的方向”,以内部成员连接接口所依附的端口。 如果该成员实现提供的接口,箭头从端口指向内部成员; 如果成员使用端口,箭头从内部成员指向端口。 端口代表了进入构件的入口,通信由此传递,委托连接符指向通信的方向。因此从端口指向内部成员的委托连接符代表了将要处理它的成员的信息。,组装连接符(1/2),组装连接符显示构件请

11、求另一个构件提供的接口。 组装请求连接符代表提供接口与需求接口的球形与槽状符号直接组装在一起。,组装连接符(2/2),组装请求连接符是一种特殊的连接符,用来显示构件的组合结构。 构建组装连接符也可来表现构件依赖性的另一种选择。,构件的种类,构件可以分为三种类型: 实施构件这类构件是构成一个可执行系统必要和充分的物理单元如DDL、EJB等; 工作产品构件这类构件是开发过程的产物,包括创建实现构件的源代码、数据文件等,他们不直接参与可执行的系统,而是开发过程的中间品; 执行构件作为一个正在执行的系统的结果而被创建。,构件的组织,可以采用包的方式组织构件; 也可以采用依赖关系、实现关系、关联关系、泛

12、化关系等组织构件。,构件的特点,构件是系统中的一个物理实现片断,它是实现域中的元素; 一个构件基本独立于其他构件,但很少独立存在。通常为了完成某项功能,构件需要一个结构化的语境; 构件是系统中可以替换的部分,是系统设计和组建的基石; 构件完成明确的功能,在逻辑和物理上具有粘聚性,它代表了一个更大系统中的一段有意义的结构/行为块; 构件符合一系列的接口。符合一个接口的构件满足接口的约定,且在接口适用的所有语境中可以被替换。,构件实例,构件实例是节点实例上的构件的实例。,黑箱和白箱的构件视图,构件有两种视图黑箱视图和白箱视图。 黑箱视图显示构件的外观,包括它的需求接口、提供接口、如何与其他构件关联

13、。黑箱视图不指定构件的内部实现; 白箱视图显示那些类、接口、其他构件协作完成了该构件的功能,即白箱视图显示构件的成员元素及其关系。,构件图(1/2),构件图表明了构件之间的依赖关系,表示了构件类元以及其中定义的类和构件间的关系。 构建类元还可以嵌套在其他构件类元中,从而表示定义关系。,构件图(2/2),构件图中,每个构件实现一些接口,并使用另一些接口。如果构件间的依赖与接口有关,那么构件可以被具有同样接口的其他构件替代。,构件图的应用,建模可执行体 建模表、文件和文档 建模API 建模源代码,建模可执行体(1/3),使用构件图最普遍的目的是对构成系统的实现构建建模。如果要实施的系统由多个可执行

14、体和几个相互关联的库组成,使用构件图可视化、详述、文档化对物理系统的决策就成为一种必需。,建模可执行体(2/3),建模可执行体(3/3),建模可执行体的原则: 确定如何划分物理系统,考虑技术、软件配置管理、软件复用等因素; 使用合适的元素表述可执行体和库,必要时候使用构造型标示新的构件类型; 使用接口表示构件间的衔接; 按照上下文和语境要求建模,可视化系统变化的影响范围。,建模表、文件和文档,建模API (1/2),API表示了系统中可编程接缝,可以用接口和构件对它建模。其本质是一个或多个构件实现的接口。 从系统配置管理角度看,这些API的实现很重要当你发布一个API时需要确保存在这些构件能够

15、完成API的职责。 UML允许采用构件图可视化API细节,如图所示:,建模API (2/2),建模API的原则: 识别系统中可编程的接缝,将每一个接缝建模为一个接口,并收集形成起边界的属性和操作; 只显露那些对于给定语境中对可视化来说比较重要的接口特性,隐藏那些不重要的接口特征,必要时候可以将这些特征保持在接口的规范说明中; 仅仅对那些有助于展示特定实现的配置信息进行建模。,建模源代码(1/2),源代码的可视化有助于表示源代码之间的依赖关系,并在划分/汇合开发路径时管理文件组的分割和合并。采用这种工具构件图可以作为软件配置管理、版本控制工具的图形接口。,建模源代码(2/2),源代码建模的准则:

16、 根据开发工具施加的约束,对存储所有逻辑元素以及它们之间的编译依赖关系细节的文件建模; 尽可能使用开发工具管理这些文件的关系,并使用构件图可视化文档化这些关系。,部署图,简介,在这种简单的情况下,软件将以位于计算机上的唯一可执行文件的形式交付。 此时,使用为在硬件上运行的软件生成结构建模,如下图所示:,节点(1/3),节点是表示计算资源的运行时的物理对象,它们通常具有内存和处理能力。 节点可能具有用来辨别各种资源的构造型,如CPU、设备、内存等。 节点可以包含对象和构件实例。,节点(2/3),节点使用带有节点名称的立方体表示; 每个节点都必须拥有一个有别于其他节点的名称简单名或路径名,也可以采用标记值、附加栏修饰节点名称; 节点之间的关联代表通信路径,关联用来辨别不同的构造型。,节点(3/3),节点可以有泛化关系,将节点的一般描述与具体特例联系起来; 对象在节点内的存在用嵌套在节点符号内的对象符号表示。如果这样表示不方面,对象符号可以包含他所在节点名称

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号