软件工程构件模型-古建构件3d模型
《软件工程ch13构件模型与部署模型.ppt》由会员分享,可在线阅读,更多相关《软件工程ch13构件模型与部署模型.ppt(28页珍藏版)》请在点石文库上搜索。
1、1,第13章 构件模型与部署模型,2,构件模型,构件视图用构件及构件间的接口和依赖关系来表示设计元素(例如类)的具体实现。构件是系统高层的可重用的组成部件。 。 构件视图将系统中可重用的代码块包装成具有可替代性的物理单元,这些单元被称为构件。构件视图也叫做实现视图。,3,构件,构件代表一个具有良好定义接口的软件模块,包括源代码、二进制代码、可执行代码、动态链接库等。 构件的接口由其所提供的一个或多个接口元素表示。构件之间的关系用来表示软件模块之间的编译、运行、调用、接口的依赖关系,也可以表达构件和类之间的实现关系,4,构件图,构件图表示了构件之间的依赖关系。每个构件实现(支持)一些接口,并使用
2、另一些接口。 构件:可执行文件(exe)、动态链接库文件(dll)、图片文件、网页文件、文本文件等,5,什么是组件图?,定义 A component diagram shows a set of components and their relationships. 组件图描述了软件的各种组件以及它们之间的依赖关系 组件图可以用来显示编译、链接或执行时组件之间的依赖关系,以及组件的接口和调用关系 组件图是对 OO 系统的物理方面建模的两个图之一 组件图中通常包含 3 个元素 组件(Component) 接口(Interface) 依赖关系(Dependency),6,组件图的例子,7,什么是组
3、件?,定义 A component is a physical and replaceable part of a system that conforms to and provides the realization of a set of interfaces. 组件是系统中遵从一组接口且提供其实现的物理的、可替换的部分,8,组件的分类,一般说来,组件就是一个实际文件,可以有以下几种类型 deployment component,如 dll 文件、exe 文件、 COM+ 对象、CORBA 对象、EJB、动态 Web 页、数据库表等 work product component,如源代码
4、文件,数据文件等,这些构件可以用来产生 deployment component execution component软件工程构件模型,系统执行后得到的构件,9,组件和类之间的不同点,类是逻辑抽象,构件是物理抽象,即构件可以位于节点(node)上 构件是对其它逻辑元素,如类的物理实现 类可以有属性和操作;构件通常只有操作,而且这些操作只能通过构件的接口才能使用,10,组件和接口之间的关系,组件和接口之间的两种关系 Dependency Realization 例:,使用接口的是依赖关系,实现接口的是实现关系,11,大学的一个 UML 组件图的示例,12,部署模型,部署图表示了构件和处理器物理结点之间的这种对
5、应关系。,13,什么是部署图?,定义 A deployment diagram is a diagram that shows the configuration of run-time processing nodes and the component instances and objects that live on them 部署图也称配置图软件工程构件模型,实施图 部署图用来描述系统硬件的物理拓扑结构以及在此结构上执行的软构件,14,部署图的例子,15,部署图的特点,部署图是对 OO 系统的物理方面建模的两个图之一 一个系统模型只有一个部署图 部署图可以显示计算节点的拓扑结构和通信路径、节点上运行
6、的软构件等 部署图常常用于帮助理解分布式系统 部署图由体系结构设计师,网络工程师,系统工程师等描述,16,部署图中的基本概念,Node(节点) 处理器 设备 Connection(连接),17,什么是节点?,定义 A node is a physical element that exists at run time and represents a computational resources, generally having at least some memory and, often, processing capability. 节点是存在于运行时并代表一项计算资源的物理元素,一
7、般至少拥有一些内存,而且通常具有处理能力 节点包括两种类型 处理器 设备,18,什么是处理器?,定义 A processor is a hardware component capable of executing programs. 处理器具有处理能力的节点,即它可以执行构件 处理机的图标:,19,什么是设备?,设备的定义 A device is a hardware component with no computing power. 设备是无计算能力的外部设备,如modem、终端 设备的图标:,20,处理器和设备,21,什么是连接?,连接的定义 A connection represen
8、ts some type of hardware coupling between two entities. 连接是代表一种交流的机制: 物理媒介 软件协议 连接的图标:,22,部署图的一些例子,在下图中,构造型指出了浏览器和应用服务器之间的连接使用 HTTP 协议,而应用服务器与数据服务器之间的连接使用 Java 的远程方法调用(RMI)协议,23,如何开发部署模型?,部署模型通常与组件模型并行开发。为了开发部署模型,可以迭代使用以下步骤 确定模型范围 确定分布结构 确定节点和它们的连接 把组件分布到节点 为不同组件之间的依赖建模,24,Rose 的双向工程,双向工程包括正向工程和逆向工程
9、 双向工程提供了一种在描述系统的架构或设计和代码的模型之间进行双向交换的机制 正向工程指从模型直接产生一个代码框架 逆向工程是指将代码转换成模型 CASE 工具能够自动进行转换,可以在设计模型和实现模型之间保持一致,25,Java 代码生成,代码生成(正向工程)是指从 Rose 模型中的一个或多个类图生成 Java 源代码的过程 Rational Rose 正向工程是以组件为中心的 当对一个 Java 模型元素进行正向工程时,它的特征会映射到对应的 Java 语言的结构 Rose 提供了一个工具,它能够使代码与 UML 模型保持一致,26,“Code Generation” 详解,IDE:指定
10、与Rose相关联的Java开发环境 Default Data Types:设置缺省数据类型 Prefixes:设定缺省前缀(如果有的话) Generate Rose ID:在代码中为每个方法都加一个唯一的标识符 Generate Default Return Line:在每个类声明后面都生成一个返回行 Stop on Error:在遇到第一个错误就停止 Create Missing Directories:生成没有定义的目录 Automatic Synchronization Mode:自动保持代码与模型同步 Show Progress Indicator:在遇到复杂的同步操作时显示进度栏 S
11、ource Code Control:对哪些文件进行源码控制 Put source code of the project under Source Control:使用Rose J/CM Integration对Java源代码进行版本控制 Input Checkin/Checkout comment:需要对检入/检出代码的活动进行说明 Select Source Root Path for Source Control:选择存放生成的代码文件的地方,27,代码生成的步骤,将 Java 类加入模型中的 Java 组件 语法检查 设置 “Classpath” 设置 “Code Generation” 参数 备份文件 生成 Java 代码,28,逆向工程,逆向工程是分析 Java 代码,然后将其转换到Rose 模型的类和组件的过程 Rational Rose 允许从 Java 源文件(.java 文件)、Java 字节码(.class 文件)以及一些打包文件(.zip、.cab、.jar 文件)中进行逆向工程 逆向工程的过程 设置或检查 CLASSPATH 环境变量 启动逆向工程 创建和修改类图和组件图 浏览和扩展源文件,