组件/配置图
浅谈UML中常用的几种图

浅谈UML中常用的几种图1 UML简介2 UML常见图分类3 用况图(用例)4 类图简单类图使用举例5 其他辅助用图●时序图(顺序图)●协作图(Collaboration Diagram/communication Diagram)/通信图●状态图●活动图(Activity Diagram)6 组件图(ComponentDiagram)、配置图(Deployment Diagram)1 UML简介统一建模语言(Unified Modeling Language,UML)又称标准建模语言,是始于1997年的一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
‘UML感兴趣的可以阅读UML 1规范,包含了UML 的所有知识内容。
注:OMG, Object Management Group 对象管理组织2 UML常见图分类UML从考虑系统的不同角度出发,定义了用况图、类图、对象图、包图、状态图、活动图、序列图、通信图、构件图、部署图等10种图。
分类:面向对象动态建模,用于建立行为的实体间行为交互的四种图:状态图(Stage Diagram),序列图(Sequence Diagram),协作图(Communication Diagram),活动图(Activity Diagram) 。
“序列图”与“协作图”表述的是相似的消息,“活动图”是“状态图”的一种。
•静态结构图Static Structure Diagram•类图Class Diagram•对象图Object Diagram•用况图Use Case Diagram•交互图Interaction Diagram•顺序图Sequence Diagram•协作图Collaboration Diagram•状态图State chart Diagrams•活动图Activity Diagrams•实现图Implementation Diagrams•构件图Component Diagram•部署图Deployment Diagram3 用况图(用例)用例图,展现了一组用例、参与者(actor)以及它们之间的关系。
UML各种图例齐全—用例图、类图、状态图、包图、协作图、顺序图详细说明书画法和功能

UML各种图例面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language ™),这篇课程的目的是展示出UML的精彩之处.UML中有九种建模的图标,即:∙用例图∙类图∙对象图∙顺序图∙协作图∙状态图∙活动图∙组件图∙配置图本课程中的某些部分包含了这些图的细节信息的页面链接.而且每个部分都有一个小问题,测试一下你对这个部分的理解.为什么UML很重要?为了回答这个问题,我们看看建筑行业.设计师设计出房子.施工人员使用这个设计来建造房子.建筑越复杂,设计师和施工人员之间的交流就越重要.蓝图就成标准文档为了这个行业中的设计师和施工人员的必修课.写软件就好像建造建筑物一样.系统越复杂,参与编写与配置软件的人员之间的交流也就越重要.在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”.现在它已经成为了软件行业的一部分了.UML提供了分析师,设计师和程序员之间在软件设计时的通用语言.UML被应用到面向对象的问题的解决上.想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的.一个模型model就是根本问题的抽象.域domain就是问题所处的真实世界.模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的.记住把一个对象想象成“活着的”.对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations).对象的属性的值决定了它的状态state.类Classes是对象的“蓝图”.一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数).对象是类的实例instances.用例图用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象.强调这个系统是什么而不是这个系统怎么工作.用例图与情节紧紧相关的.情节scenario是指当某个人与系统进行互动时发生的情况.下面是一个医院门诊部的情节.“一个病人打电话给门诊部预约一年一次的身体检查.接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录.”用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和.角色actor是发动与这个工作有关的事件的人或者事情.角色简单的扮演着人或者对象的作用.下面的图是一个门诊部Make Appointment用例.角色是病人.角色与用例的联系是通讯联系communication association(或简称通讯communication)标准文档角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线.一个用例图是角色,用例,和它们之间的联系的集合.我们已经把Make Appointment作为一个含有四个角色和四个用例的图的一部分.注意一个单独的用例可以有多个角色.用例图在三个领域很有作用.决定特征(需求).当系统已经分析好并且设计成型时,新的用例产生新的需求标准文档∙客户通讯.使用用例图很容易表示开发者与客户之间的联系.∙产生测试用例.一个用例的情节可能产生这些情节的一批测试用例.类图类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统.类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响.下面是一个顾客从零售商处预定商品的模型的类图.中心的类是Order.连接它的是购买货物的Customer和Payment.Payment有三种形式:Cash,Check,或者Credit.订单包括OrderDetails(line item),每个这种类都连着Item.标准文档UML类的符号是一个被划分成三块的方框:类名,属性,和操作.抽象类的名字,像Payment是斜体的.类之间的关系是连接线.类图有三种关系.关联association-表示两种类的实例间的关系.如果一个类的实例必须要用另一个类的实例才能完成工作时就要用关联.在图中,关联用两个类之间的连线表示.标准文档标准文档为了简单地表示出复杂的类图,可以把类组合成包packages.一个包是UML上有逻辑关系的元件的集合.下面这个图是是一个把类组合成包的一个商业模型.dependencies关系.如果另一个的包B改变可能会导致一个包A改变,则包A依赖包B.包是用一个在上方带有小标签的矩形表示的.包名写在标签上或者在矩形里面.点化线箭头表示依赖对象图Object diagrams用来表示类的实例.他们在解释复杂关系的细小问题时(特别是递归关系时)很有用.这个类图示一个大学的Department可以包括其他很多的Departments.标准文档这个对象图示上面类图的实例.用了很多具体的例子.UML中实例名带有下划线.只要意思清楚,类或实例名可以在对象图中被省略.标准文档每个类图的矩形对应了一个单独的实例.实例名称中所强调的UML图表.类或实例的名称可能是省略对象图表只要图的意义仍然是明确的.顺序图类图和对象图是静态模型的视图.交互图是动态的.他们描述了对象间的交互作用.顺序图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线.消息用从一个对象的生命线到另一个对象生命线的箭头表示.箭头以时间顺序在图中从上到下排列.标准文档协作图协作图也是互动的图表.他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色.在序列图中,对象的角色放在上面而消息则是连接线.标准文档对象角色矩形上标有类或对象名(或者都有).类名前面有个冒号(:).协作图的每个消息都有一个序列号.顶层消息的数字是1.同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等.状态图对象拥有行为和状态.对象的状态是由对象当前的行动和条件决定的.状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移.标准文档我们的模型例图建立了一个银行的在线登录系统.登录过程包括输入合法的密码和个人账号,再提交给系统验证信息.登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及 Rejecting.每个状态都有一套完整的转移transitions来决定状态的顺序.标准文档状态是用圆角矩形来表示的.转移则是使用带箭头的连线表示.触发转移的事件或者条件写在箭头的旁边.我们的图上有两个自转移.一个是在Getting SSN,另一个则在上Getting PIN.初始状态(黑色圆圈)是开始动作的虚拟开始.结束状态也是动作的虚拟结束.事件或条件触发动作时用(/动作)表示.当进入Validating状态时,对象并不等外部事件触发转移.取而代之,它产生一个动作.动作的结果决定了下一步的状态.活动图活动图activity diagram是一个很特别的流程图.活动图和状态图之间是有关系的.状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程.活动图告诉了我们活动之间的依赖关系.对我们的例子来说,我们使用如下的过程.“通过ATM来取钱.”这个活动有三个类Customer, ATM和 Bank.整个过程从黑色圆圈开始到黑白的同心圆结束.活动用圆角矩形表示.标准文档标准文档标准文档。
组件配置图

节点中的配置
驻留在节点上的组件
节点中的配置
可以在节点和组件之 间添加一条表示依赖 关系的虚线箭头,并 使用版型来表示节点 对组件的包容。
3 关联关系
配置图用关联关系表示各节点之间通信 路径,表示为一条实线。 在连接硬件时通常关心节点之间是如何 连接的,因此关联关系一般不使用名称, 而是使用版型。
组件分类
配置组件:dll文件,exe文件,EJB, 数据表文件等;构成可执行系统 工作产品组件:源代码文件、数据文 件。产生配置文件。产生可执行系统 执行组件:系统执行后得到的组件。 结果
组件与类的比较
相同点: 两者都有名称;都可以实现一组接口;都可以参与依赖 关系;都可以被嵌套;都可以有实例;都可以参与交互。 不同点: 类描述了软件设计的逻辑组织和意图,而组件则描述软件 设计的物理实现,即每个组件体现了系统设计中特定类 的实现。 类可以有属性和操作,组件只有操作 关系: 组件是对类的物理实现
组件规范
2 Detail标签
Declarations(声明):声明文本框包含一个 声明列表,如类名、变量以及其它一些语言 专有特性(#includes或类似的结构)。
组件规范
3 Realizes标签
Show all Classes:显示所有的类 Classes Name:类名 Logical Package Name:逻辑包名 Language:语言
节点是在运行时代表计算资源的物理元素。 节点通常拥有一些内存,并具有处理能力。 在UML中,节点用一个立方体来表示。
节点
节点是各种计算资源的通用名称
处理器 设备
两者的区别:处理器是能够执行程序的 两者的区别: 硬件构件(如计算机主机), ),而设备是 硬件构件(如计算机主机),而设备是 一种不具备计算能力的硬件组件( 一种不具备计算能力的硬件组件(如打 Modem PC 印机)。 印机)。
组件图和配置图

显示对话框组件(DisplayDialog.java)
BorrowDialog.java
ReturnDialog.java
MainWindow.java
QueryDialog.java
ModifyDialog.java
DisplayDialog.java
管理员用户界面组件图包括:
书目管理对话框组件(TitleDialog.java) 图书管理对话框组件(BookDialog.java)
驻留结点上的组件图
带有依赖关系的配置图
2.关系
在配置图中,使用关联关系(Association)表示结 点之间的通信路径。 配置图中的关联关系与类图中的关联关系采用相同 的表示方法,都是一条实线。
在连接硬件要考虑结点之间的连接方式和通信方式, 因此结点之间的关联关系一般不使用名称标识,而 是使用构造型来描述,如:<<TCP/IP>>、 <<HTTP>>、<<USB>>等。
Keyboard Database Server Mouse
<<LAN>>
Application Server
Web Server
<<Internet>>
ClientPC Monitor
<<USB>>
Printer
关联关系示例
10. 3
配置图建模及应用
1. 配置图的应用 通常可用配置图建模的系统有:
客户机/服务器(C/S)系统 浏览器/服务器(B/S)系统
分布式系统
嵌入式系统
第12章组件图(构件图)-郭

① ② ③
12.1 概述
ATM机系统的组件图。
12.2 组件
组件是软件系统中定义了良好接口的物理实现单元。 组件代表了将系统中的类、接口等逻辑元素打包后 形成的物理模块。 组件可以是源代码组件、二进制组件或一个可执行 的组件。 组件是作为一个或多个类的软件实现,驻留在计算 机中。 组件提供和其他组件之间的接口。 组件是系统中可替换的物理部件。
包规范:是类的头文件,包含类中函数的原型信 息。例如,在c++文件中,包规范就是.h文件。
包体:包含类操作代码。在C++中,包体就 是.cpp文件。
任务规范(Task Specification):任务表示具有 独立控制线程的包。可执行文件通常表示为扩展 名为.exe的任务规范。
Task Spec
12.2 组件
12.2.1 名称 12.2.2 组件的种类 12.2.3 Rational Rose中不同类型组件的图标 表示
12.2.1 名称
每个组件都必须有一个不同于其他组件的名称。 组件的名称是一个字符串,位于组件图标的内部。 组件名称通常是从现实的词汇表中抽取出来的短 名词或名词短语,并依据目标操作系统添加相应 的扩展名,例如java和dll。
BorrowerIn foWi ndow.j ava
UpdateT i tl eFram e.j ava
T i tl eFram e.j ava
AboutDi al og.j ava
M es sageBox.j ava
Qui tDi al og.j ava
Resul tOfFi ndBorrower.j ava esul tOfFi ndT i tl e.j ava R
包图组件图部署图

包(Package)
引入与输出:引入(import)允许一个包中的元素单向访问另一包中的元素 允许一个包中的元素单向访问另一包中的元素. 引入与输出 引入 允许一个包中的元素单向访问另一包中的元素
在UML中,用一个由构造型import修饰的依赖为 引入关系建模.通过把抽象包装秤有含义的组块, 然后用引入关系控制对它们的访问,就能控制 大量抽象的复杂性. 输出(export)就是包的公共部分 就是包的公共部分. 输出 就是包的公共部分 一个包输出的部分仅对显示地引入这个包 的其他包中的元素是可见的 注:引入和访问依赖是不可传递的.
虚包(Generic Package): 虚包
虚子程序(Generic Subprogram): 虚子程序
接口(Interface)
概述: 概述 在组件图中,组件可以通过其他组件的接口来使用其他组件中定义
的操作.通过使用命名的接口,可以避免在系统中各个组件之间直接发生依 赖关系,有利于组件的替换 接口和组件之间的关系: 实现关系(Realization): 依赖关系(Dependency): 组件接口的分类: 导入接口(import interface):供访问操作的组件使用 导出接口(export interface):由提供操作的组件提供
组件图(Component Diagram)
背景: 背景:在软件建模的过程中,使用用例图可以推断系统希望的行为;使用类图
可以描述系统中的词汇;使用时序图、组件图、状态图和活动图可以说明这些词 汇中的事物如何相互作用以完成某些行为。在完成系统的逻辑设计之后,下一步 要定义设计的物理实现,如可执行文件、库、表、文件和文档等。对面向对象系 统的物理方面进行建模时要用到两种图:组件图和配置图。 概述: 概述:使用组件图能够可视化物理组件以及它们之间的关系,并描述其构造细节. 组件图描述了软件的各种组件和它们之间的依赖关系.在UML中,组件图是系统实 现视图的图形表示,而其中的一个组件图只能表示系统实现视图的一部分,也即任 何一个组件图都不能描述系统实现的所 有方面,只有系统中的组件组合起来 才能表示完整的系统实现视图
UML构件图常用符号及含义图文详解

UML构件图常用符号及含义图文详解UML组件图(又叫构件图),是用来描述在软件系统中遵从并实现一组接口的物力的、可替换的软件模块。
它所表现的是一种系统静态实现的结构,能够帮助开发人员对系统组成达成一致的认识。
组件图的构成:1、组件:是用来表示系统中可替换的物理部件,是定义良好接口的物理实现单元。
2、接口:组件的接口分为两种,即导入接口和导出接口。
其中导入接口供访问操作的组件使用,导出接口供提供操作的组件使用。
3、实现:组件与接口元之间的连线,代表谁实现了这个接口。
4、依赖:是表示组件使用了另一个组件的接口,依赖于另一个接口而存在。
组件的类型:1、配置组件:该组件是构成一个可执行系统必要和充分的构件。
例如操作系统、Java虚拟机或者数据库管理系统等。
2、工作产品组件:模是指包括模型、源代码和用于创建配置组件的数据库文件,是配置组件的来源。
比如说UML图、Java类、数据库表以及动态链接库等。
3、执行组件:该组件是运行时创建的组件,是最终可运行的系统产生的允许结果。
比如说Servlet、HTML和XML文档等等。
组件的要素:1、规格说明:一个组件所提供服务的抽象描述。
(每个组件都必须提供特定的服务)2、一个或多个实现:组件是一种物理概念,它必须被一个或多个实现所支持。
3、受约束的构造标准:每一个组件在实现时必须遵从某种构造标准。
4、封装方法:组件遵从的封装方法。
5、部署方法:组件要运行,必须先部署,一个组件可以有多个部署。
组件和类图之间的差别:1、组件表示物理上的模块;2、组件可以是一个或几个类在文件中的存在;3、类是逻辑上的抽象,组件是客观上存在的物理抽象。
其表现为组件是可以部署的,而类是不可以被部署的,因此组件可以存在于节点上而类不能;4、一般组件只有操作,外界只能通过接口接触它们,但是类可以直接有属性和操作。
5、类图侧重于系统的逻辑设计,而组件图侧重于系统的物理设计及实现。
面向对象分析及其包括的图建模步骤

一、叙述基于UML的面向对象分析设计过程1)识别系统的用例和角色首先对项目进行需求调研,依据项目的业务流程图和数据流程图以及项目中涉及的各级操作人员,通过分析,识别出系统中的所有用例和角色;接着分析系统中各角色和用例间的联系,再使用UML建模工具画出系统的用例图,同时,勾画系统的概念层模型,借助UML 建模工具描述概念层类图和活动图。
2)进行系统分析,并抽象出类系统分析的任务是找出系统中所有需求并加以描述,同时建立特定领域模型。
建立域模型有助于开发人员考察用例,从中抽取出类,并描述类之间的关系。
3)设计系统和系统中的类及其行为设计阶段由结构设计和详细设计组成。
①结构设计是高层设计,其任务是定义包(子系统),包括包间的依赖关系和主要通信机制。
包有利于描述系统的逻辑组成部分以及各部分之间的依赖关系。
②详细设计就是要细化包的内容,清晰描述所有的类,同时使用UML 的动态模型描述在特定环境下这些类的实例的行为。
二、UML中包括哪些图及每件图的作用UML中包括九种图:用例图、类图、对象图、状态图、时序图、协作图、活动图、组件图、配置图。
1)用例图(Use Case Diagram)它是UML中最简单也是最复杂的一种图。
说它简单是因为它采用了面向对象的思想,又是基于用户视角的,绘制非常容易,简单的图形表示让人一看就懂。
说它复杂是因为用例图往往不容易控制,要么过于复杂,要么过于简单。
用例图表示了角色和用例以及它们之间的关系。
2)类图(Class Diagram)是最常用的一种图,类图可以帮助我们更直观的了解一个系统的体系结构。
通过关系和类表示的类图,可以图形化的方式描述一个系统的设计部分。
3)对象图()对象图是类图的实例,几乎使用与类图完全相同的标识。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
组件图用依赖关系表示各组件之间存在的关系类型。 在UML中,组件图中依赖关系的表示方法与类图中 依赖关系相同,都是一个由客户指向提供者的虚线 箭头。
颜色滑块示例:
查看代码
支持程序实现的包图
概述 13.2 节点 13.3 关联关系 13.4 配置图建模技术 13.5 实例——图书馆管理系统的配置 图
①
②
接口和组件之间的关系分为两种: 实现关系(Realization) 依赖关系(Dependency) 在图中,接口和组件之间用实线连接表示实现关系; 而接口和组件之间用虚线箭头连接则表示依赖关系。
①
②
组件的接口分为两种: 导入接口(import interface)供访问操作的组件 使用 导出接口(export interface)由提供操作的组件 提供
处理器是能够执行软件、具有计算能力的节点。
设备是没有计算能力的节点,通常情况下都是通过 其接口为外部提供某种服务。
配置图可以将节点和组件结合起来,以建模处理资 源和软件实现之间的关系。 当组件驻留在某个节点时,可以将它建模在图上该 节点的内部。 为显示组件之间的逻辑通信,需要添加一条表示依 赖关系的虚线箭头。
13.1
①
②
配置图描述了运行软件的系统中硬件和软件的物 理结构。 配置图中通常包含2个元素: 节点(Node) 关联关系(Association) 配置图可以显示节点以及它们之间的必要连接, 也可以显示这些连接的类型,还可以显示组件和 组件之间的依赖关系,但是每个组件必须存在于 某些节点上。
驻留在节点上的组件
Байду номын сангаас
可以在节点和组件之间 添加一条表示依赖关系 的虚线箭头,并使用构 造型来表示节点对组件 的包容。
配置图用关联关系表示各节点之间通信路径,表示 为一条实线。 在连接硬件时通常关心节点之间是如何连接的,因 此关联关系一般不使用名称,而是使用构造型。
关联关系示例:
组件图示例:
组件是定义了良好接口的物理实现单元,是系统中可 替换的物理部件。 组件可以是源代码组件、二进制组件或一个可执行的 组件。 在UML中,组件用一个左侧带有突出两个小矩形的矩 形来表示。
组件与类的比较:
相同点
不同点
两者都有名称;都可以 类描述了软件设计的逻 实现一组接口;都可以 辑组织和意图,而组件 参与依赖关系;都可以 则描述软件设计的物理 被嵌套;都可以有实例; 实现,即每个组件体现 都可以参与交互。 了系统设计中特定类的 实现。
13.2.1 名称 13.2.2 节点的种类 13.2.3 节点中的配置
每一个节点都必须有一个区别于其他节点的名称。 节点的名称是一个字符串,位于节点图标的内部。 节点名称通常是从现实的词汇表中抽取出来的短名 词或名词短语。 节点的名称有两种:简单名和路径名。
① ②
在实际的建模过程中,可以把节点分为两种类型: 处理器(Processor) 设备(Device)
配置图示例:
节点是在运行时代表计算资源的的物理元素。 节点通常拥有一些内存,并具有处理能力。 节点通过查看对实现系统有用的硬件资源来确定,这 需要从能力和物理位置两方面来考虑。 在UML中,节点用一个立方体来表示。
节点与组件的比较: 相同点 二者都有名称和关系; 都可以有实例;都可以 被嵌套;都可以参与交 互。 不同点 组件是参与系统执行的 事物,而节点是执行组 件的事物;组件表示逻 辑元素的物理包装,而 节点表示组件的物理配 置。
每个组件都必须有一个不同于其他组件的名称。组件 的名称是一个字符串,位于组件图标的内部。 组件名称通常是从现实的词汇表中抽取出来的短名词 或名词短语,并依据目标操作系统添加相应的扩展名, 例如java和dll。 组件的名称有两种:简单名和路径名。
① ② ③
在对软件系统建模的过程中,存在3种类型的组件: 配置组件(Deployment Component) 工作产品组件(Work Product Component) 执行组件(Execution Component)
12.1 概述 12.2 组件 12.3 接口 12.4 依赖关系 12.5 组件图建模技术 12.6 实例——图书馆管理系统的组件图
组件图描述了软件的各种组件和它们之间的依赖关 系。 组件图中通常包含3个元素: 组件(Component)
①
②
③
接口(Interface)
依赖关系(Dependency)