预备知识:
一、UML的特性与发展现状
UML是一种Language(语言)
UML是一种Modeling(建模)Language
UML是Unified(统一)Modeling Language
1、已进入全面应用阶段的事实标准
2、应用领域正在逐渐扩展,包括嵌入式系统建模、业务建模、流程建模等多个领域
3、成为“产生式编程”的重要支持技术:MDA、 可执行UML等
二、建模的目的与原则
1、帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化。
2、仅当需要模型时,才构建它。
3、选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型是不充分的。对每个重要的系统最好用一组几乎独立的模型去处理。
三、谁应该建模
1、业务建模:以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与
2、需求模型:以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与
3、设计模型:高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开发人员为主,架构师提供指导。
4、实现模型:以资深开发人员(设计人员)为主,架构师提供总体指导。
5、数据库模型:以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。
正式开始
UML组成,三部分(构造块、规则、公共机制),关系如下图所示:
一、构造块
1、构造块是对模型中最具有代表性的成分的抽象
建模元素:UML中的名词,它是模型基本物理元素。
行为元素:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。
分组元素:UML中的容器,用来组织模型,使模型更加的结构化。
注释元素:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。
1.1、建模元素
类(class)和对象(object)
接口(interface)
主动类(active class)
用例(use case)
协作(collaboration)
构件(component)
节点(node)
类(class)和对象(object)
类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的抽象
UML中类是用一个矩形表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法
对象则是类的一个实例 (object is a Instance of Class)
接口(interface)
接口是描述某个类或构件的一个服务操作集
主动类(active class)
主动类实际上是一种特殊的类。引用它的原因,实际上是在开发中需要有一些类能够起到 启动控制活动的作用
主动类是指其对象至少拥有一个进 程或线程,能够启动控制活动的类
用例(use case)
用例是著名的大师Ivar Jacobson首先提出的,现已经成为了面向对象软件开发中一个需求分析的最常用工具
用例实例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。一个 用例定义一组用例实例。
协作(collaboration)
协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构 成的一个群体。
对于某个用例的实现就可 以表示为一个协作
构件(component)
在实际的软件系统中,有许多要比“类”更大的实体,例如一个COM组件、一个DLL文件、一个JavaBeans、一个执行文件等等。为了更好地对在UML模型中对它们进行表示,就引入了构件(也译为组件)
构件是系统设计的一个模块化部分,它隐藏了内部的实现,对外提供了一组外部接口。在系统中满足相同接口的组件可以自由地替换
节点(node)
为了能够有效地对部署的结构进行建模,UML引入了节点这一概念,它可以用来描述实际的PC机、打印机、服务器等软件运行的基础硬件
节点是运行时存在的物理元素,它表示了一种可计算的资源,通常至少有存储空间和处理能力
1.2、行为元素
交互(interaction): 是在特定语境中,共同完成某个任务的一组对象之间交换的信息集合
交互的表示法很简单,就是一条有向直线,并在上面标有操作名
状态机(state machine):是一个对象或交互在生命周期内响应事件所经历的状态序列
在UML模型中将状态画为一个圆 角矩形,并在矩形内写出状态名 称及其子状态
1.3、分组元素
对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,生成或简或繁、或宏观或微观的模型,就需要对其进行分组。在UML中,提供了“包(Package)”来完成这一目标
1.4、注释元素
结构事物是模型的主要构造块,行为事物则是补充了模型中的动态部分,分组事物而是用来更好地组织模型,似乎已经很完整了。而注释事物则是用来锦上添花的,它是用来在UML模型上添加适当的解释部分
2、关系
UML模型的关系比较多,下图
2.1 关联关系
关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。
在UML中,使用一条实线来表示关联关系
在关联关系中,有两种比较特殊的关系:聚合和组合
聚合关系:聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系
如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述
组合是聚合的变种,加入了一些重要的语义。也就是说,在一个组合关系中一个对象一次就只是一个组合的一部分,“整体”负责“部分”的创建和破坏,当“整体”被破坏时,“部分”也随之消失
聚合就像汽车和车胎,汽车坏了胎还可以用。组合就像公司和下属部门,公司倒闭了部门也就不存在了!
2.2 泛化、实现与依赖
泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。
实现关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作用于规定类或组件的服务。
有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。
二、规则
命名:也就是为事物、关系和图起名字。和任何语言一样,名字都是一个标识符
范围:与类的作用域相似.
可见性:Public,Protected,Private,Package
三、UML公共机制
1、规格描述
在图形表示法的每个部分后面都有一个规格描述(也称为详述),它用来对构造块的语法和语义进行文字叙述。这种构思,也就使可视化视图和文字视图的分离 :
2、UML修饰与通用划分
在为了更好的表示这些细节,UML中还提供了一些修饰符号,例如不同可视性的符号、用斜体字表示抽象类
UML通用划分:
1)类与对象的划分:类是一种抽象,对象是一个具体 的实例
2)接口与实现的分离:接口是一种声明、是一个契 约,也是服务的入口;实现则是负责实施接口提供 的契约
3、UML扩展机制
这部分不容易描述,待改(邀月注 2009.2.18)
构造型:在实际的建模过程中,可能会需要定义一些特定于某个领域或某个系统的构造块
标记值则是用来为事物添加新特性的。标记值的表示方法是用形如“{标记信息}”的字符串
约束是用来增加新的语义或改变已存在规则的一种机制(自由文本和OCL两种表示法)。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近。
4、UML视图和图
图名 功能 备注
类图 描述类、类的特性以及类之间的关系 UML 1原有
对象图 描述一个时间点上系统中各个对象的一个快照 UML 1非正式图
复合结构图 描述类的运行时刻的分解 UML 2.0新增
构件图 描述构件的结构与连接 UML 1原有
部署图 描述在各个节点上的部署 UML 1原有
包图 描述编译时的层次结构 UML中非正式图
用例图 描述用户与系统如何交互 UML 1原有
活动图 描述过程行为与并行行为 UML 1原有
状态机图 描述事件如何改变对象生命周期 UML 1原有
顺序图 描述对象之间的交互,重点在强调顺序 UML 1原有
通信图 描述对象之间的交互,重点在于连接 UML 1中的协作图
定时图 描述对象之间的交互,重点在于定时 UML 2.0 新增
交互概观图 是一种顺序图与活动图的混合 UML 2.0新增
附:开发过程与图的对应关系
<!--Here is the bottom-->
分享到:
相关推荐
本资源摘要信息涵盖了UML软件建模的基础知识和技术要点,包括模型的概念、软件模型的特征、软件建模技术、软件模型的分类、软件建模工具、UML的发展过程、UML的组成部分、元模型理论、模型元素的可见性等。...
**UML(统一建模语言)**是一种标准的图形建模语言,用于软件工程领域,特别是在面向对象设计中。它提供了多种图表类型,用于描述系统的结构、行为和关系,帮助开发人员、分析师和项目管理者更好地理解和沟通软件...
在startUML中,你可以进行以下几种主要的UML建模: 1. 类图(Class Diagram):类图是UML中最基础的图表类型,用于表示系统中的类、接口以及它们之间的关系,如继承、实现和关联等。 2. 用例图(Use Case Diagram...
实验报告的结论部分将总结整个建模过程,评估模型的有效性,以及提出未来改进和实施的建议。 通过上述建模步骤,UML帮助我们构建了一个全面且详细的模型,可以作为开发新系统的基础,提高医院业务流程的效率和准确...
《UML建模课程设计——基于Rational Rose的实践指南》 UML(Unified Modeling Language,统一建模语言)是软件工程领域一种重要的建模工具,它为软件开发提供了图形化表示方法,使得团队成员可以更清晰、直观地理解...
**UML建模实例教程** 本教程主要针对UML(统一建模语言)进行深入讲解,旨在帮助读者理解和掌握这一强大的软件设计工具。UML是一种标准化的通用、可视化的建模语言,它为软件工程提供了统一的建模框架,使得系统...
《UML建模设计在航空订票系统中的应用》 UML(统一建模语言)是一种标准的图形建模工具,广泛应用于软件工程领域,尤其是系统设计阶段。它提供了多种图表,如用例图、类图、包图、顺序图、协作图、状态图、活动图、...
总之,“UML.rar”中的资源对于学习和实践UML建模具有很高的价值,无论是初学者还是经验丰富的开发者,都能从中受益。通过深入研究这些示例,我们可以更好地掌握UML的各种图表和概念,提升软件设计能力。
用UML建模已深入人心,但很多读者苦于没有好的UML建模工具一直裹足不前。本书是作者多年使用Visio的经验总结,相信对初学者有很大的参考价值。 Visio不仅仅是一个功能强大、简单易用的绘图工具,它还是一个绝佳的...
### 软件工程中UML建模的技术与分析 #### 概述 在软件开发过程中,特别是针对大型复杂项目的管理与实施,采用统一建模语言(Unified Modeling Language,简称UML)已成为一种广泛认可的标准。UML不仅能够帮助...
教学重点在于让学生掌握UML的表示法和建模方法,以及如何在实际环境中运用UML进行面向对象的分析和设计。教学难点则在于理解和运用UML的建模方法,以及在具体项目中灵活运用UML工具。 主要参考资料包括《UML软件...
**UML建模**是软件工程中的一个重要环节,它包括需求分析、系统设计、程序结构表示等多个方面。通过UML建模,开发者可以更有效地规划软件架构,捕捉用户需求,减少沟通误解,提高代码质量。在这个教程中,你可能会...
《UML系统建模指导手册》是一本深入探讨UML(统一建模语言)的实用指南,特别适合于初学者和正在进行系统建模的IT专业人员。该手册通过图书馆管理系统和电子商务系统的实例,全面展示了UML在实际项目中的应用,为...
《彩色UML建模》是一本专注于UML(统一建模语言)的书籍,它以其独特的彩色图解方式,为读者提供了一种直观且生动的学习体验。UML是一种广泛使用的建模语言,它用于软件工程中的系统分析和设计,帮助开发者以可视化...
本书全面、详细地介绍了UML的基础知识和Rational Rose的使用... 本书不仅适合初学者学习UML建模的相关知识,也适用于从事软件开发的工程人员学习和参考,或者作为高等院校计算机和软件相关专业的教学用书或参考书。
《UML建模案例之图书管理系统》 在软件开发领域,UML(统一建模语言)是一种用于系统分析和设计的标准化表示法,它能够帮助我们理解和表达复杂系统的结构和行为。本文将以“图书管理系统”为例,深入探讨如何运用...
**标准建模语言UML教程概述** UML(Unified Modeling Language),中文译为统一建模语言,是一种在软件工程领域广泛使用的可视化建模语言。它为软件开发提供了一种标准化的方式来描述系统的结构和行为,帮助开发者...
### UML建模工具对比分析 #### 概述 统一建模语言(Unified Modeling Language,简称UML)是一种用于软件工程领域的标准化建模语言。它为软件开发过程中的各种工件提供了一套标准的图形符号表示方法。UML工具则是...