Download presentation
Presentation is loading. Please wait.
1
UML语言
2
UML 1.0 UML 的演化 UML 2.0 Booch Unified Method 0.8 OMT - 2 OMT - 1 OOSE
1995 1996 Submission of UML 1.0 to OMG for adoption, Jan 1997 Other methods public feedback UML Partners Expertise
3
UML 1.0 Team Digital Equipment Contributions include * Hewlett-Packard
i-Logix * ICON Computing * Intellicorp * MCI Systemhouse * Microsoft * Oracle * Rational Software * Texas Instruments * Unisys * = co-submitter Contributions include multi-modeling and refinements business modeling, use cases and responsibilities, state machine semantics, types, classes and instances interfaces and components, collaborations and patterns, distribution and concurrency, meta-metamodel, glossary OMG and RM-ODP technology perspectives,
4
UML语言的特征 不是一种可视化的程序设计语言,而是一 种可视化的建模语言。 是一种建模语言规格说明,是面向对象分 析与设计的一种标准表示。
不是过程,也不是方法,但允许任何一种 过程和方法使用它。
5
UML语言的目标 易于使用,表达能力强,进行可视化建模。 与具体的实现无关,可应用于任何语言平台和工具平台;
与具体的过程无关,可应用于任何软件开发过程; 简单并且可扩展,具有扩展和专有化机制,便于扩展,无需对核心概念进行修改; 为面向对象的设计与开发中涌现出的高级概念(如协作、框架、模式和组件)提供支持,强调在软件开发中,对架构、框架、模式和组件的重用; 与最好的软件工程实践经验集成; 可升级,具有广阔的适用性和可用性; 有利于面向对象工具的市场增长。
6
UML语言概述 由视图view,图diagram,模型元素model element和通用机制general mechanism等几个部分组成 视图是表达系统的某一方面特征的UML建模元素的子集,由多个图构成,是在某一个抽象层上,对系统的抽象表示。 图是模型元素集的图形表示,通常为弧(关系)和顶点(其他模型元素)相互连接构成的。 模型元素代表面向对象中的类、对象、消息和关系等概念,是构成图的最基本的常用概念。 公共机制用于表示其它信息,比如注释、模型元素的语义等。另外,它还提供扩展机制,使UML语言能够适应一个特殊的方法(或过程),或扩充至一个组织或用户。
7
UML的模型、视图、图与系统架构建模 UML是用来描述模型的,用模型来描述系统的结构或静态特征,以及行 为或动态特征。从不同的视角为系统的构架建模,形成系统的不同视 图(VIEW) 用例视图(use case view),强调从用户的角度看到的或需要的系统功能, 是被称为参与者的外部用户所能观察到的系统功能的模型图; 逻辑视图(logical view),展现系统的静态或结构组成及特征,也称为结 构模型视图(structural model view)或静态视图(static view); 动态视图(dynamic view),体现了系统的动态或行为特征,也称为行为 模型视图(behavioral model view); 组件视图(component view),体现了系统实现的结构和行为特征,也称 为实现模型视图(implementation model view) ; 配置视图(deployment view),体现了系统实现环境的结构和行为特征, 也称为环境模型视图(environment model view)或物理视图(physical view)。
8
Architecture Class diagrams State machine diagrams
Interaction diagrams Component diagrams Component View Logical View Use case diagrams Activity diagrams Use Case View Process View Deployment View Class diagrams Interaction diagrams Deployment diagrams
9
UML视图和图(参考手册) 主要的域 视 图 图 主要概念 结构 动态 模型管理 可扩展性 静态视图 类图 用例视图 用例图 实现视图
视 图 图 主要概念 结构 静态视图 类图 类、关联、泛化、依赖关系、实现、接口 用例视图 用例图 用例、参与者、关联、扩展、包括、用例泛化 实现视图 构件图 构件、接口、依赖关系、实现 部署视图 部署图 节点、构件、依赖关系、位置 动态 状态机视图 状态图 状态、事件、转换、动作 活动视图 活动图 状态、活动、完成转换、分叉、结合 交互视图 顺序图 交互、对象、消息、激活 协作图 协作、交互、协作角色、消息 模型管理 模型管理视图 包、子系统、模型 可扩展性 所有 约束、构造型、标记值
10
九种图 用例图use case diagram,描述系统功能 类图class diagram,描述系统的静态结构
对象图object diagram,描述系统在某个时刻的静态结构 序列图sequence diagram,按时间顺序描述系统元素间的交互 协作图Collaboration diagram,按照时间和空间顺序描述系统元 素间的交互和它们之间的关系 状态图state diagram,描述了系统元素的状态条件和响应 活动图activity diagram,描述了系统元素的活动 组件图component diagram,描述了实现系统的元素的组织 部署图deployment diagram,描述了环境元素的配置,并把实现 系统的元素映射到配置上
11
根据它们在不同架构视图的应用,可以把9种图分成:
用户模型视图:用例图 结构模型视图:类图、对象图 行为模型视图:序列图、协作图、状态图、 活动图(动态图) 实现模型视图:组件图 环境模型视图:配置图
12
1. USE CASE图 保险商务系统 签定保险单 客户 保险销售员 销售统计资料 客户数据资料
14
元素之间的关系 角色之间的关系:拥有与类相同的关系描 述,用通用化关系描述若干个角色之间的 行为。 用例之间的关系:
1. 扩展关系:插入基用例所未知的附加行为,只有基用例能实例化。 2. 概括关系:一般化关系,特殊用例继承和增加了基用例的特征。 3. 包含关系:用例可以简单的合并其他的用例,将其作为自身行为 的片段。
19
实现 用例实现为协作:序列图、协作图、活动图 功能分配 边界对象、控制对象、实体对象
20
理解Use Case和Actor 1)Use Case绝不是锦上添花的东西,一方面它可以促进与用户沟通, 理解正确的需求,另一方面它可以划分系统与外部实体的界限, 是系统设计的起点,而最终应该落实到类和实现代码上。 2)Use Case View与Logical View应该有明确的相关性。UML中从 Use Case到类包的关联可以用依赖(或实现)关系描述。 3)Actor不是指人,而是指代表某一种特定功能的角色,因此同一个 人可能对应很多个Actor。Actor是虚拟的概念,可以指外部系统 和设备。 4)Use Case是对系统行为的动态描述,它是OO设计的起点,是类、 对象、操作的来源,而通过逻辑视图的设计,可以获得软件的静 态结构。
21
2. 类图Class Diagram 包(Package) 名字、属性、操作、可见性 关系
关联关系:普通、递归、限定、或关联、有序关联, 关联类 聚合:复合聚合-实心菱形 通用化:普通、受限 依赖:两个模型元素(类、组合、用例)之间的语义 上的连接关系。 包(Package)
28
Parameterized Instantiated Class C++ Template
30
四种UML依赖关系异同 绑定关系位于模板(如C++模板)和用其生成的模型元素之间,该元素 完全是模板的实例化,为添加任何新的东西。
可溯关系是两个元素或元素集合之间的概念连接,用于描述位于不同 语义层或多种视点下的同一个概念。这些元素间并没有任何特定的映 射关系,关系的方向可被忽略。通常用于跟踪需求,或帮助建模者跟 踪多个模型的变化。 使用关系表示一个元素为了实现或完成其全部的功能需要其它元素或 元素集合的配合,例如类与类之间的多种方法调用关系。 细化关系是不同语义层(如分析和设计)之间模型元素的依赖关系, 表示客户可由供应者导出。这一导出关系不一定非要用算法来描述, 可以完全人为决定,因此细化关系可描述的语义范围较广,包括:模 型的逐步细化、优化、变换、模板、模型合成、框架组成等等。 绑定和使用关系只能用于同一模型中元素的连接,而可溯和细化关系 可用于连接多个模型的元素。
32
3. 对象图 是类图的变体,表示类的对象实例,是类 图的一个范例
34
4. 状态图 显示类的所有对象可能具有的状态,以及 引起状态变化的事件,可以为系统描述整 体状态图
39
5. 序列图 反映随时间对象之间的动态协作关系 反映对象之间已发送消息的先后顺序 说明对象之间的交互过程 以及在某一具体位置有何事件发生
44
6. 协作图 动态协作,显示对象和它们之间的关系 (上下文相关),强调收发消息的对象的 结构组织。
48
7. 活动图 用于对系统的动态方面(计算流程和工作流)建模,这些动态方面可 涉及一个系统体系结构的任意视图中任何类型抽象的活动,包括类 (含主动类)、接口、构件和节点。 可以在整个系统、一个子系统、一个操作或一个类的语境中使用活动 图。还可以把活动图用在用例(对脚本建模)和协作(对对象群体的 动态方面建模)上。 当对系统的动态方面建模时,通常有两种方式: (1)对工作流建模 关注与系统进行协作的参与者所观察到的活动。工作流常常位于软件 系统的边缘,用于可视化、详述、构造和文档化开发系统所涉及的业 务过程。这时,对对象流的建模特别重要。 (2)对操作建模 流程图,对分支、分叉和汇合状态的建模特别重要。 活动状态、动作状态、转换、泳道、对象、信号
54
8. 组件图 组件包含逻辑类及逻辑类的实现信息 用来反映代码的物理结构 源组件、二进制组件、可执行组件 链接时的组件、运行时的组件
Main programs,主程序 Packages,构件包 Subprograms,子程序 Tasks,独立线程 EXE,可执行文件 DLL,动态连接库
58
9.部署图 显示系统中软件和硬件的物理架构 节点、连接、组件、对象
59
Deployment diagram
62
模型元素(事物、关系、图)
63
公有机制 规格说明 修饰 通用划分 扩展机制 构造型、标记值、约束
64
标记值
65
Rose Stereotype Class:Interface Component:EXE Component:DLL
Component:ActiveX Component:Application Component:Applet Use Case:business use case Use Case:business use-case realization Use Case:use-case realization Class:control Class:boundary Class:entity Class:business actor Class:business worker Class:business entity Use Case Package:organization unit Logical Package:organization unit Use Case Package:subsystem Logical Package:subsystem Use Case Package:layer Logical Package:layer DependencyRel:refine DependencyRel:extend DependencyRel:include
66
Association:extend Association:include Association:communicate Association:subscribe Association:realize Class:Table Component:Database
67
UML的图与模型的对应关系 用例模型——用用例图、顺序图、协作图、状态图和活 分析、设计模型——用类图和对象图、顺序图、协作
动图描述。 分析、设计模型——用类图和对象图、顺序图、协作 图、状态图和活动图描述。 实现模型——可用组件图、顺序图和协作图描述。 实施模型——配置图 测试模型——测试模型引用了所有其他模型,所以它使 用他们对应的所有图。
68
详细说明为 具体体现为 分布为 Analysis model 实施模型 实现为 测试时采用 Use-Case Model
Design Model 实施模型 实现为 Implementation Model 测试时采用 Test Model
Similar presentations