第十二章构件图和部署图学习内容构件图和部署图的基本概念使用Rose创建构件图和部署图用Rose部署一个实际的项目构件图和部署图的基本概念1.构件在构件图中,我们将系统中可重用的模块封装成为具有可替代性的物理单元,我们称之称为构件,它是独立的,在一个系统或子系统中的封装单位,提供一个或多个接口,是系统高层的可重用的部件。构件作为系统定义良好接口的物理实现单元,它能够不直接依赖于其他构件而仅仅依赖于构件所支持的接口。通过使用被软件或硬件所支持的一个操作集——接口,构件可以避免在系统中与其它构件之间直接发生依赖关系。构件图和部署图的基本概念•有一些构件的图标表示形式和标准构件图形表示形式相同,它们包括ActiveX、Applet、Application、DLL、EXE以及自定义构造型的构件,它们的表示形式是在构件上添加相关的构造型,是一个构造型为Applet的构件。构件图和部署图的基本概念在RationalRose2003中,数据库也被认为是一种构件。虚包是一种只包含对其它包所具有的元素进行的引用的构件。它被用来提供一个包的某些内容的公共视图。虚包不包含任何它自己的模型元素。构件图和部署图的基本概念系统是指组织起来以完成一定目的的连接单元的集合,在系统中,肯定有一个文件用来指定系统的入口,也就是系统程序的根文件,这个文件被成为主程序。子程序规范和子程序体是用来显示子程序的规范和实现体。子程序是一个单独处理的元素的包,我们通常用它代指一组子程序集。构件图和部署图的基本概念2.构件图的基本概念•构件图是用来表示系统中构件与构件之间,以及定义的类或接口与构件之间的关系的图。在构件图中,构件和构件之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。构件图和部署图的基本概念3.部署图的基本概念部署图(DeploymentDiagram)描述了一个系统运行时的硬件结点,以及在这些结点上运行的软件构件将在何处物理地运行,以及它们将如何彼此通信的静态视图。在一个部署图中,包含了两种基本的模型元素:节点(Node)和节点之间的连接(Connection)。在每一个模型中仅包含一个部署图。构件图和部署图的基本概念在RationalRose2003中可以表示的节点类型包括两种,分别是处理器(Processor)和设备(Device)。使用Rose创建构件图和部署图1.创建构件图创建一个新的构件图,可以通过以下方式进行。(1)右键单击浏览器中的ComponentView(构件视图)或者位于构件视图下的包。(2)在弹出的菜单中,选中“New”(新建)下的“ComponentDiagram”(构件图)选项。(3)输入新的构件图名称。(4)双击打开浏览器中的构件图。使用Rose创建构件图和部署图通过构件图的图形编辑工具栏添加对象的步骤如下:(1)在构件图的图形编辑工具栏中,选择按钮,此时光标变为“+”号。(2)在构件图图形编辑区内选择任意一个位置然后使用鼠标左键单击,系统在该位置创建一个新的构件。(3)在构件的名称栏中,输入构件的名称。使用Rose创建构件图和部署图•对于构件图中的构件,和其它RationalRose2003中的模型元素一样,我们可以通过构件的标准规范窗口设置增加其细节信息,包括名称、构造型、语言、文本、声明、实现类和关联文件等。使用Rose创建构件图和部署图2.创建部署图在每一个系统模型中,只存在一个部署图。在使用RationalRose2003创建系统模型时,就已经创建完毕,即为DeploymentView(部署视图)。如果要访问部署图,在浏览器中双击该部署视图即可。其中包括:(1)创建和删除节点。(2)设置节点。(3)添加和删除节点之间的连接。(4)设置连接规范。用Rose部署一个实际的项目1.确定需求用例我们使用下列的步骤创建构件图:(1)根据用例或场景的确定需求,确定系统的构件。(2)将系统中的类、接口等逻辑元素映射到构件中。(3)确定构件之间的依赖关系,并对构件进行细化。我们将以将以在序列图中介绍的一个学生信息管理系统的简单用例为例,介绍如何去创建系统的构件图。用Rose部署一个实际的项目2.创建构件图•我们可以和确定用例中的类和对象一样,根据用例的流程确定系统的构件。根据上面的用例,我们可以确我们可以确定最明显的二个实体类是学生类(Student)和班级类(Grades)。系统的操作界面(WebInterface)是一个边界类。还有,数据访问操作过程中离不开与数据库交互的数据库管理类(DataManager)。除此以外,我们还需要一个系统的主程序(MainSystem),用来表示整个系统的启动入口。用Rose部署一个实际的项目第二步,将系统中的类和接口等映射到构件中,然后我们按照将系统中的类、接口等逻辑元素映射到构件中。一个构件不仅仅包含一个类或接口,可以包含几个类或接口。第三步,确定构件之间的依赖关系,并对构件进行细化。细化的内容包括指定构件的实现语言、构件的构造型、编程语言的设置以及针对某种编程语言的特殊设置,如Java语言中的导入文件、标准、版权和文档等。用Rose部署一个实际的项目3.创建部署图我们可以使用下列的步骤创建部署图:(1)根据系统的物理需求,确定系统的节点。(2)根据节点之间的物理连接,将节点连接起来。(3)通过添加处理器的进程、描述连接的类型等细化对部署图的表示。建模一个简单的学生信息管理系统系统,该系统的需求如下所示:(1)学生或教师可以在客户的PC机上通过浏览器,如IE6.0等,查看系统页面,与Web服务器通信。(2)Web服务器安装Web服务器软件,如Tomcat等,通过JDBC与数据库服务器连接。(3)数据库服务器中安装SQLServer2000,提供数据服务功能。用Rose部署一个实际的项目1.确定系统节点。2.添加节点连接,我们可以从上面的需求列表中获取下列的连接信息:(1)客户的PC机上通过Http协议与Web服务器通信。(2)Web服务器通过JDBC与数据库服务器连接。用Rose部署一个实际的项目3.细化部署图,接下来需要确定各个处理器中的主程序以及其它的内容,如构造型、说明型文档和特征描述等。练习题(1)在“远程网络教学系统”中,以系统管理员添加教师信息用例为例,我们可以确定“Administrator”、“Teacher”、“AddTeacher”等类,根据这些类创建关于系统管理员添加教师信息的相关构件图。(2)在“远程网络教学系统”中,该系统的需求如下所示:学生或教师可以在客户的PC机上通过浏览器,如IE6.0等,登录到远程网络教学系统中。在Web服务器端,我们安装Web服务器软件,如Tomcat等,部署远程网络教学系统,并通过JDBC与数据库服务器连接。数据库服务器中使用SQLServer2000提供数据服务。根据以上的系统需求,创建系统的部署图。