第13章 构件模型与部署模型.ppt

第13章 构件模型与部署模型

第13章 构件模型和部署模型 13.1 代码实现与构件模型 13.1.1 概述   系统模型的大部分内容反映了系统的逻辑和物理设计方面的信息,并且独立于系统的最终实现单元。然而,为了可重用性和可操作性的目的,系统实现方面的信息也很重要。 UML使用两种视图来表示实现单元:构件视图和部署视图。   构件视图将系统中可重用的代码块包装成具有可替代性的物理单元,这些单元被称为构件。构件视图也称为实现视图。构件视图用构件及构件间的接口和依赖关系来表示设计元素(例如类)的具体实现。构件是系统高层的可重用的组成部件。图13.1表达了构件和接口之间的实现关系。   构件是定义了良好接口的物理实现单元,它是系统中可替换的部分。每个构件体现了系统设计中特定类的实现。良好定义的构件不直接依赖于其他构件而依赖于构件所支持的接口。在这种情况下,系统中的一个构件可以被支持正确接口的其他构件所替代。   构件具有它们支持的接口和需要从其他构件得到的接口。接口是被软件或硬件所支持的一个操作集。通过使用命名的接口,可以避免在系统中各个构件之间直接发生依赖关系,有利于新构件的替换。构件视图展示了构件间相互依赖的网络结构。构件视图可以表示成两种形式,一种是含有依赖关系的可用构件(构件库)的集合,它是构造系统的物理组织单元。另一种表示为一个配置好的系统,用来建造它的构件已被选出。在这种形式中,每个构件与给它提供服务的其他构件连接,这些连接必须与构件的接口要求相符合。构件用一边有两个小矩形的一个长方形表示,它可以用实线与代表构件接口的圆圈相连,如图13.2所示。 13.1.2 构件(Component)和构件图(Component Diagram)   在UML中,构件代表一个具有良好定义接口的软件模块,包括源代码、二进制代码、可执行代码、动态链接库等。构件的接口由其所提供的一个或多个接口元素表示。构件之间的关系用来表示软件模块之间的编译、运行、调用、接口的依赖关系,也可以表达构件和类之间的实现关系,在Rational Rose中是通过在类和构件之间建立指派(Assigned)关系实现的。 图13.2 带接口的构件   构件图表示了构件之间的依赖关系,如图13.3所示。每个构件实现(支持)一些接口,并使用另一些接口。如果构件间的依赖关系与接口有关,那么构件可以被具有同样接口的其他构件替代。 图13.3 构件图   一个系统可能由多种软件模块组成,如可执行文件(exe)、动态链接库文件(dll)、图片文件、网页文件、文本文件等。每种软件模块由模型中的一个组件代表。为区别不同种类的构件,可以使用版型(Stereotype)机制,如图13.4所示。 图13.4 用版型表示不同种类的构件 13.1.3 构件(Component)图的作用   构件模型在软件开发过程中的实现阶段创建,是最终软件产品的物理模型或者叫做物理构件,直接对应最终的各种程序和数据文件。构件模型是软件系统最终发布和部署的基础。在某些语言中,程序的逻辑构件,例如类和构件之间的对应关系是比较复杂的,有可能是多对多的关系,例如C++中,一个类的完整定义应该放在两个文件中,接口定义(.h)和实现文件(.cpp)中,即一个类可能会对应多个实现文件,而一个源代码文件中也可以定义多个类,这说明类和构件之间是多对多的关系。另一些语言中,这种对应关系比较简单,例如,Java中的一个类只能对应一个类构件(.class)文件,反之亦然,是一对一的关系;类和源程序之间的对应关系是多对一的关系。 在类与构件之间是多对多关系时,从类跟踪到构件或者从构件跟踪到类是比较繁琐的事情,这可以通过构件模型很容易地达到此目的。在某些建模工具,例如Rational Rose中,选择类或者构件,通过建立类和构件的指派关系,可以很方便地显示出其对应的构件或者类列表,为软件开发过程中的产品可跟踪性奠定基础。另外,构件模型也是建立产品基线和发布以及产品生产线的基础。 13.2 部署图(Deploy Diagram) 图13.5 B/S三层模型系统的部署模型   部署是将开发出的软件产品安装在运行环境中,使之正确运行的软件开发活动。目前的运行环境多为基于网络的分布式环境,部署过程较为复杂,因此部署过程也需要建模。将开发出的物理构件和处理器结点对应起来,以利于正确的部署和运行。部署图表示了构件和处理器物理结点之间的这种对应关系。在UML中,部署图表示了处理器、设备及其连接关系,也可以表示软件构件和处理器之间的关系。每个系统模型中只包含一个部署图,表示该系统中处理器、设备之间的连接以及进程对处理器的分配。   部署视图表示运行时的计算资源(如处理器及它们之间的连接)的

文档评论(0)

1亿VIP精品文档

相关文档