1、郑州大学软件学院郑州大学软件学院2022-5-18薛均晓薛均晓郑州大学软件学院郑州大学软件学院2022-5-18重点内容:l系统体系结构概述系统体系结构概述l软件系统体系结构建模软件系统体系结构建模包图包图l软件系统体系结构建模软件系统体系结构建模构件图构件图l硬件系统体系结构建模硬件系统体系结构建模部署图部署图郑州大学软件学院郑州大学软件学院2022-5-18重点内容:l系统体系结构概述系统体系结构概述l软件系统体系结构建模软件系统体系结构建模包图包图l软件系统体系结构建模软件系统体系结构建模构件图构件图l硬件系统体系结构建模硬件系统体系结构建模部署图部署图郑州大学软件学院郑州大学软件学院2
2、022-5-18系统体系结构概述分析 VS. 设计分析模型虽然有效地确定了将要构建的内容,但是却没有包含足够的信息来定义如何构建系统,设计模型用来填补分析和实现之间的差距郑州大学软件学院郑州大学软件学院2022-5-18系统体系结构概述l分析和设计是不同的阶段,但是边界比较模糊l通常情况下,可以这么理解:l软件设计是软件开发的关键步骤,直接影响软件质量。分析 VS. 设计郑州大学软件学院郑州大学软件学院2022-5-18系统体系结构概述l软件设计阶段的任务与目标:设计任务:将需求、分析阶段获得的模型转换为可实现的系统设计阶段的主要任务:系统体系结构设计数据结构设计用户界面设计 算法设计郑州大学
3、软件学院郑州大学软件学院2022-5-18系统体系结构概述l系统体系结构用来描述系统各部分的结构、接口以及它们用于通信的机制。l系统体系结构建模首先要建立基本的模型,并把这些模型映射到系统需要的硬件单元上。郑州大学软件学院郑州大学软件学院2022-5-18系统体系结构概述l体系结构设计过程中的主要活动:系统分解:将系统分解为若干个相互作用的子系统模块分解:将子系统进一步划分为模块控制建模:建立系统各部分间控制关系的一般模型郑州大学软件学院郑州大学软件学院2022-5-18系统体系结构概述l系统体系结构模型:软件系统体系结构模型包图、构件图硬件系统体系结构模型部署图郑州大学软件学院郑州大学软件学
4、院2022-5-18重点内容:l系统体系结构概述系统体系结构概述l软件系统体系结构建模软件系统体系结构建模包图包图l软件系统体系结构建模软件系统体系结构建模构件图构件图l硬件系统体系结构建模硬件系统体系结构建模部署图部署图郑州大学软件学院郑州大学软件学院2022-5-18软件系统体系结构建模包图l为了清晰、简洁地描述一个复杂的软件系统,通常都是把它分解成若干较小的系统(子系统)。如果需要的话,每个较小的系统还可以分解成更小的系统。这样,就形成了一个描述软件系统的结构层次。l在UML中,使用“包”代表子系统,使用包图描述软件的分层结构。郑州大学软件学院郑州大学软件学院2022-5-18软件系统体
5、系结构建模包图 通用三层软件(逻辑)系统体系结构郑州大学软件学院郑州大学软件学院2022-5-18软件系统体系结构建模包图l图中给出了一个由通用接口界面层通用接口界面层、系统系统业务对象层业务对象层和系统数据库层系统数据库层组成的三层结构的通用软件系统体系结构,每层中有其内部的体系结构。郑州大学软件学院郑州大学软件学院2022-5-18软件系统体系结构建模包图l 1、通用接口界面层通用接口界面层 该层的功能是:设置连接该软件系统的运行环境(如计算机设备及使用的操作系统、采用的编程语言等)的接口界面和设置本系统用户窗口使用的接口界面以及支持系统。该层由系统接口界面类包、用户窗口包和备用构件库包组
6、成。郑州大学软件学院郑州大学软件学院2022-5-18软件系统体系结构建模包图l1、通用接口界面层通用接口界面层系统接口界面类包:设置连接该软件系统的运行环境的接口界面类,以便使开发的软件系统与其运行环境进行无缝连接用户窗口包:设置系统用户窗口使用的接口界面,用户可以通过系统用户窗口的引导,选择合适的功能,对本系统进行正确的操作备用构件包:备用构件是指那些通过商业购买或在开发其他软件系统时创建成功的构件,据此组成一个备用构件库郑州大学软件学院郑州大学软件学院2022-5-18软件系统体系结构建模包图l1、通用接口界面层通用接口界面层 用户窗口是系统接口界面类的一个派生类,继承了系统接口界面的特
7、性,但是也有具有自己特征的操作和功能。同时,用户窗口还可以依赖和借助备用构件库中的构件搭建自己的系统。郑州大学软件学院郑州大学软件学院2022-5-18软件系统体系结构建模包图l2、系统业务对象层系统业务对象层 该层的功能是:设置用户窗口与系统各种实现具体功能服务的接口界面的连接。该层由系统服务接口界面包、业务对象管理包、外部业务对象包和实际业务对象包组成。郑州大学软件学院郑州大学软件学院2022-5-18软件系统体系结构建模包图l2、系统业务对象层系统业务对象层系统服务接口界面包:起承上启下的作用,设置用户窗口与系统各种实现具体功能的接口界面的连接业务对象管理包:根据用户窗口接口界面的要求,
8、实施对系统的业务对象的有效管理外部业务对象包:对过去系统遗留下来的有使用价值部分进行包装实际业务对象包:形成能实现系统功能的实际的业务对象集,包括系统新创建的业务和外部业务对象郑州大学软件学院郑州大学软件学院2022-5-18软件系统体系结构建模包图l3、系统数据库层系统数据库层 该层的功能是:将能够实现系统功能的对象集作为持久对象及数据存储在磁盘中,便于系统在需要时再将这些持久对象和数据提出出来进行处理和操作。该层由持久对象及数据包和SQL查询语言包组成。郑州大学软件学院郑州大学软件学院2022-5-18软件系统体系结构建模包图l3、系统业务对象层系统业务对象层持久对象及数据包:将能实现系统
9、功能的实际业务对象集,及这些对象在交互过程中产生的数据和新的对象,作为持久对象和数据存储在磁盘中SQL查询语言包:负责处理和操作存储在磁盘中的持久对象和数据,包括对象的索引、查询、提取、存储、插入和删除等,所有这些操作都依赖于SQL查询语言进行郑州大学软件学院郑州大学软件学院2022-5-18 包图(Package Diagram)是一种描述系统总体结构的模型的重要建模工具,通过对图中各个包以及包之间关系的描述,展现出系统的模块与模块之间的依赖关系。郑州大学软件学院郑州大学软件学院2022-5-18包l含义:将多个元素组织为语义相关组的通用机制。lUML表示郑州大学软件学院郑州大学软件学院20
10、22-5-18包拥有的元素l包拥有的元素:类、接口、组件、节点、协作、用例、图以及其他包。 l一个模型元素不能被一个以上的包所拥有。l如果包被撤销,其中的元素也要被撤销。 l一个包形成了一个命名空间。 郑州大学软件学院郑州大学软件学院2022-5-18包的名称l每个包必须有一个与其他包相区别的名称。l两种形式:简单名和路径名。郑州大学软件学院郑州大学软件学院2022-5-18 包对自身所包含的内部元素的可见性也有定义,使用关键字private、protected或public来表示。private定义的私有元素对包外部元素完全不可见;protected定义的被保护的元素只对那些与包含这些元素的
11、包有泛化关系的包可见;public定义的公共元素对所有引入的包以及它们的后代都可见。可见性l 可见性的类型:l 公有的(public) “”l 受保护的(protected) “”l 私有的(private)“”郑州大学软件学院郑州大学软件学院2022-5-18包之间的关系 l 包之间可以有两种关系: 依赖:在一个包中引入另一个包输出的元素 泛化郑州大学软件学院郑州大学软件学院2022-5-18包之间的关系 郑州大学软件学院郑州大学软件学院2022-5-18 1 通过工具栏或菜单栏添加包的步骤如下: 在类图的图形编辑工具栏中,选择用于创建包的按钮,或者在菜单栏中,选择“Tools”(工具)中“
12、Create”(新建)菜单下的“Package”选项。此时的光标变为“+”符号。 2 单击类图的任意一个空白处,系统在该位置创建一个包图,系统产生的默认名称为“NewPackage”。 3将“NewPackage”重新命名成新的名称即可。 郑州大学软件学院郑州大学软件学院2022-5-18 1 选中“PackageA”包的图标,单击右键,在菜单选项中选择“Select Compartment Items .”选项。 2 在弹出对话框的左侧,显示了在该包目录下的所有的类,选中类,通过中间的按钮将“ClassA”和“ClassB”添加到右侧的框中。 3 添加完毕以后,点击“OK”按钮即可。郑州大学
13、软件学院郑州大学软件学院2022-5-18 包和包之间与类和类之间一样,也可以有依赖关系,并且包的依赖关系也和类的依赖关系的表示形式一样,使用依赖关系的图标进行表示。郑州大学软件学院郑州大学软件学院2022-5-18重点内容:l系统体系结构概述系统体系结构概述l软件系统体系结构建模软件系统体系结构建模包图包图l软件系统体系结构建模软件系统体系结构建模构件图构件图l硬件系统体系结构建模硬件系统体系结构建模部署图部署图郑州大学软件学院郑州大学软件学院2022-5-18软件系统体系结构建模构件图l在构件图中,我们将系统中可重用的模块封装成为具有可替代性的物理单元,我们称之称为构件,它是独立的,在一个
14、系统或子系统中的封装单位,提供一个或多个接口,是系统高层的可重用的部件。l构件是软件复用的基本物理实现单元。在UML中,对象库,可执行体、COM+构件和企业级JavaBeans都可以描述成构件。 郑州大学软件学院郑州大学软件学院2022-5-18软件系统体系结构建模构件图进销存管理系统源代码成为可执行代码过程的构件图郑州大学软件学院郑州大学软件学院2022-5-18软件系统体系结构建模构件图l 该构件图表明,进销存管理系统源代码由C+编写,它们有三个构件组成:销售管理子系统XSGL.CPP构件,采购管理子系统CGGL.CPP构件和仓库管理子系统CKGL.CPP构件.l 这三个构件之间的连接表明
15、它们之间有依赖关系,即仓库管理子系统CKGL.CPP构件依赖采购管理子系统CGGL.CPP提供仓储物资,CPP构件,还要依赖销售管理子系统XSGL构件将这些仓储物资销售出去,它们组成一个完整的进销存管理系统.郑州大学软件学院郑州大学软件学院2022-5-18软件系统体系结构建模构件图l每个源代码构件经过各自独立编译想成中间目标代码OBJ构件,即销售管理子系统XSGL.OBJ构件、采购管理子系统CGGL.OBJ构件和仓库管理子系统CKGL.OBJ构件l这些目标代码构件与对应的源代码构件有依赖关系,它们各自与源代码构件之间的连接关系表明了这点郑州大学软件学院郑州大学软件学院2022-5-18软件系
16、统体系结构建模构件图l 最后形成的进销存管理系统的可执行软件JXCGL.EXE构件,是对销售管理子系统XSGL.OBJ构件、采购管理子系统CGGL.OBJ构件和仓库管理子系统CKGL.OBJ构件这些目标构件以及图形动态链接库GRAPHIC.DLL构件进行统一连接处理后形成的l 因此,进销存管理系统的可执行软件JXCGL.EXE构件,对销售管理子系统XSGL.OBJ构件、采购管理子系统CGGL.OBJ构件、仓库管理子系统CKGL.OBJ构件和图形动态链接库GRAPHIC.DLL构件具有依赖关系郑州大学软件学院郑州大学软件学院2022-5-18软件系统体系结构建模构件图l通过这个简单的构件图,我们
17、可以清晰地从整个体系结构框架的角度了解到一个进销存管理系统源代码形成可执行代码的软件构造过程郑州大学软件学院郑州大学软件学院2022-5-18 构件图描述构件及其之间的相互依赖,构件是逻辑体系结构(类、对象及它们间的关系和协作)中定义的概念和功能在物理体系结构中的实现,它通常是开发环境中的实现性文件。郑州大学软件学院郑州大学软件学院2022-5-18 构件作为系统定义良好接口的物理实现单元,它能够不直接依赖于其他构件而仅仅依赖于构件所支持的接口。通过使用被软件或硬件所支持的一个操作集接口,构件可以避免在系统中与其它构件之间直接发生依赖关系。 郑州大学软件学院郑州大学软件学院2022-5-18
18、有一些构件的图标表示形式和标准构件图形表示形式相同,它们包括ActiveX、Applet、Application、DLL、EXE以及自定义构造型的构件,它们的表示形式是在构件上添加相关的构造型,下图是一个构造型为Applet的构件。构件郑州大学软件学院郑州大学软件学院2022-5-18 在Rational Rose 2003中,数据库也被认为是一种构件。 虚包是一种只包含对其它包所具有的元素进行的引用的构件。它被用来提供一个包的某些内容的公共视图。虚包不包含任何它自己的模型元素。 构件郑州大学软件学院郑州大学软件学院2022-5-18 系统是指组织起来以完成一定目的的连接单元的集合,在系统中,
19、肯定有一个文件用来指定系统的入口,也就是系统程序的根文件,这个文件被成为主程序。 子程序规范和子程序体是用来显示子程序的规范和实现体。子程序是一个单独处理的元素的包,我们通常用它代指一组子程序集。 构件郑州大学软件学院郑州大学软件学院2022-5-18 构件图是用来表示系统中构件与构件之间,以及定义的类或接口与构件之间的关系的图。在构件图中,构件和构件之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。构件图郑州大学软件学院郑州大学软件学院2022-5-18 创建一个新的构件图,可以通过以下方式进行。 右键单击浏览器中的Component View(构件视图)或者位
20、于构件视图下的包。 在弹出的菜单中,选中“New”(新建)下的“Component Diagram”(构件图)选项。 输入新的构件图名称。 双击打开浏览器中的构件图。 郑州大学软件学院郑州大学软件学院2022-5-18 通过构件图的图形编辑工具栏添加对象的步骤如下: 在构件图的图形编辑工具栏中,选择按钮,此时光标变为“”号。 在构件图图形编辑区内选择任意一个位置然后使用鼠标左键单击,系统在该位置创建一个新的构件。 在构件的名称栏中,输入构件的名称。 郑州大学软件学院郑州大学软件学院2022-5-18 对于构件图中的构件,和其它Rational Rose 2003 中的模型元素一样,我们可以通过
21、构件的标准规范窗口设置增加其细节信息,包括名称、构造型、语言、文本、声明、实现类和关联文件等。郑州大学软件学院郑州大学软件学院2022-5-18重点内容:l系统体系结构概述系统体系结构概述l软件系统体系结构建模软件系统体系结构建模包图包图l软件系统体系结构建模软件系统体系结构建模构件图构件图l硬件系统体系结构建模硬件系统体系结构建模部署图部署图郑州大学软件学院郑州大学软件学院2022-5-18硬件系统体系结构建模部署图l开发得到的软件系统,必须部署在某些硬件上予以执行。l在UML中,硬件系统体系结构模型由配置图建模。郑州大学软件学院郑州大学软件学院2022-5-18 部署图(Deploymen
22、t Diagram)描述了一个系统运行时的硬件结点,以及在这些结点上运行的软件构件将在何处物理地运行,以及它们将如何彼此通信的静态视图。郑州大学软件学院郑州大学软件学院2022-5-18 在一个部署图中,包含了两种基本的模型元素:节点(Node)和节点之间的连接(Connection)。在每一个模型中仅包含一个部署图。郑州大学软件学院郑州大学软件学院2022-5-18 节点是在运行时代表计算资源的物理元素。 节点的确定可以通过查看对实现系统有用的硬件资源来完成,需要从能力(如计算能力、内存大小等)和物理位置(要求在所有需要使用该系统的地理位置都可以访问该系统)两方面来考虑。节点郑州大学软件学院
23、郑州大学软件学院2022-5-18 在UML中,节点用一个立方体来表示。 节点必须有名称。节点的名称是一个字符串,有两种:简单名和路径名;位于节点图标内部。 实际应用中,节点名称通常是从现实的词汇表中抽取出来的短名词或名词短语。Node节点郑州大学软件学院郑州大学软件学院2022-5-18 通常,UML图中的节点只显示名称,也可以用标记值或表示节点细节的附加栏加以修饰示。 建模过程中,节点可以分为两种:和节点郑州大学软件学院郑州大学软件学院2022-5-18 处理器是能够执行软件、具有计算能力的节点。 服务器、工作站和具有处理能力的机器都是处理器。 UML中,处理器的符号如下所示。 处理器处理
24、器Processor节点郑州大学软件学院郑州大学软件学院2022-5-18 设备是没有计算能力的节点,通常情况下都是通过其接口为外部提供某种服务。 比如哑终端、打印机和扫描仪等部属于设备。 UML中,设备的符号如下所示。 设备设备Device节点郑州大学软件学院郑州大学软件学院2022-5-18 部署图中用关联关系表示各节点之间通信路径。 UML中,部署图中的关联关系的表示方法与类图中关联关系相同,都是一条实线。 在连接硬件时通常关心节点之间是如何连接的(如以太网、并行、TCP或USB等)。关联关系郑州大学软件学院郑州大学软件学院2022-5-18 关联关系一般不使用名称,使用构造型,如(以太
25、网)、(并联)或(传输控制协议 )等。ServerModemHomePCMouseMonitorKeyboard关联关系郑州大学软件学院郑州大学软件学院2022-5-18 在每一个系统模型中,只存在一个部署图。在使用Rational Rose 2003创建系统模型时,就已经创建完毕,即为Deployment View(部署视图)。如果要访问部署图,在浏览器中双击该部署视图即可。 其中包括: 1 创建和删除节点。 2 设置节点。 3 添加和删除节点之间的连接。 4 设置连接规范。 郑州大学软件学院郑州大学软件学院2022-5-18创建部署图1. 创建和删除节点使用菜单栏或浏览器添加节点的步骤如下
26、:01 选择Tools | Create | Processor命令,此时光标变为“+”号。如果使用浏览器,可右键单击Deployment View(部署视图),在弹出的快捷菜单中选择New | Processor命令,此时光标也变为“+”号。02 以下的步骤与使用工具栏添加节点的步骤类似,按照前面使用工具栏添加处理器节点的步骤添加即可。郑州大学软件学院郑州大学软件学院2022-5-18将节点永久地从模型中移除,可以通过以下步骤进行:01 选中待删除的节点,单击右键。02 在弹出的快捷菜单中选择Edit | Delete from Model命令,或者按Ctrl+D快捷键即可。郑州大学软件学院
27、郑州大学软件学院2022-5-182. 设置节点处理器的标准规范对话框如下。郑州大学软件学院郑州大学软件学院2022-5-18还可以在Detail选项卡中通过Characteristion列表框添加硬件的物理描述信息。 郑州大学软件学院郑州大学软件学院2022-5-183. 添加和删除节点之间的连接在部署图中添加节点之间的连接的步骤如下:01 单击图标,或者选择Tools | Create | Connection命令,此时的光标变为“”符号。02 单击需要连接的两个节点中的任意一个节点。03 将连接的线段拖动到另一个节点中即可。郑州大学软件学院郑州大学软件学院2022-5-18如果要将连接从
28、节点中删除,可以通过以下的步骤进行:01 选中该连接。02 按Delete键或者单击右键,在弹出的快捷菜单中选择Edit | Delete命令即可。郑州大学软件学院郑州大学软件学院2022-5-18l例:学生信息管理系统 一个简单的学生信息管理系统的需求如下: 1、学生或者教师可以再客户PC机上通过浏览器如(IE)查看系统的页面并与Web服务器通信。 2、Web服务器安装Web服务器软件,如Tomcat等,通过JDBC与数据库服务器连接。 3、在数据库服务器中安装SQL Server 2000,从而提供数据服务功能。郑州大学软件学院郑州大学软件学院2022-5-18l1. 确定系统节点 根据上
29、面的需求列表可以获得系统的节点信息。郑州大学软件学院郑州大学软件学院2022-5-182. 添加节点连接将上面的节点连接起来,得到的部署图。从前面的需求可以获取下列的连接信息: 在客户的PC机上通过HTTP协议与Web服务器通信 Web服务器通过JDBC与数据库服务器连接郑州大学软件学院郑州大学软件学院2022-5-183. 细化部署图接下来需要确定各个处理器中的主程序以及其他的内容,如构造型、说明型文档和特征描述等。郑州大学软件学院郑州大学软件学院2022-5-18例例 建模一个网上扫描系统的部署图。其详细的需求如建模一个网上扫描系统的部署图。其详细的需求如下所示:下所示: 扫描仪通过内部的
30、扫描仪通过内部的PCI总线连接到网卡。需要编写总线连接到网卡。需要编写代码来控制扫描仪,代码驻留在扫描仪内部。代码来控制扫描仪,代码驻留在扫描仪内部。 扫描仪通过无线网卡与插入到扫描仪通过无线网卡与插入到Web服务器服务器KONG的的无线无线hub通信,服务器通过通信,服务器通过HTTP协议向客户协议向客户PC机提供机提供Web页。页。 Web服务器安装定制的服务器安装定制的Web服务器软件,通过专用服务器软件,通过专用数据访问组件与产品数据库交互。数据访问组件与产品数据库交互。 在客户的在客户的PC机上将提供专用的浏览器软件,它运机上将提供专用的浏览器软件,它运行产品查询插件,只与定制的行产
31、品查询插件,只与定制的Web服务器通信。服务器通信。练习练习郑州大学软件学院郑州大学软件学院2022-5-181 1添加节点添加节点 第一项任务是确定系统的节点。下图演示了上面第一项任务是确定系统的节点。下图演示了上面需求列表中提及的所有硬件。需求列表中提及的所有硬件。练习练习郑州大学软件学院郑州大学软件学院2022-5-182. 2. 添加通信关联添加通信关联 为确定的节点添加通信关联。从需求列表中可为确定的节点添加通信关联。从需求列表中可以确定如下所示通信关联:以确定如下所示通信关联: 扫描仪通过内部的扫描仪通过内部的PCIPCI总线连接到网卡。总线连接到网卡。 网卡通过无线电波与无线网卡通过无线电波与无线hubhub通信。通信。 无线无线hubhub通过通过USBUSB连接到名为连接到名为KONGKONG的服务器实例。的服务器实例。 KONG WebKONG Web服务器通过服务器通过HTTPHTTP与客户组件通信。与客户组件通信。 练习练习郑州大学软件学院郑州大学软件学院2022-5-18练习练习郑州大学软件学院郑州大学软件学院2022-5-18郑州大学软件学院郑州大学软件学院2022-5-18郑州大学软件学院郑州大学软件学院2022-5-18郑州大学软件学院郑州大学软件学院2022-5-18郑州大学软件学院郑州大学软件学院2022-5-18