一、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新增
附:开发过程与图的对应关系
UML是面向对象开发中一种通用的图形化建模语言
它本身成为现代软件工程环境中对象分析和设计的重要工具,被视为面向对象技术的重要成果之一
UML建模,就是用模型元素来组建整个系统的模型,模型元素包括系统中的类、类和类之间的关联、类的实例相互配合实现系统的动态行为等、
UML建模主要分为结构建模、动态建模和模型管理建模3个方面
模型是什么?简单地说:模型是对现实的简化,模型提供了系统的蓝图。
为什么要建模?一个基本理由是:
建模是为了能够更好地理解正在开发的系统。
通过建模,要达到4个目的:
(1)模型有助于按照实际情况或按照所需要的样式对系统进行可视化。
(2)模型能够规约系统的结构或行为。
(3)模型给出了指导构造系统的模板。
(4)模型对做出的决策进行文档化。
因为不能完整地理解一个复杂的系统,所以要对它建模。
人对复杂问题的理解能力是有限的。通过建模,缩小所研究问题的范围,一次只着重研究它的一个方面,这就是Edsger Dijkstra几年前讲的“分而治之”的基本方法,即把一个困难问题划分成一系列能够解决的小问题;解决了这些小问题也就解决了这个难题。此外,通过建模可以增强人的智力。一个适当选择的模型可以使建模人员在较高的抽象层次上工作。
相关推荐
### UML建模实验报告知识点总结 #### 一、UML与软件建模基础 - **UML(Unified Modeling Language)概述**: - UML是一种面向对象的建模语言,用于软件系统的可视化建模。 - 它提供了一套标准化的符号体系,帮助...
【UML软件建模技术实验报告】 本实验报告主要针对新仁医院的住出院流程,通过UML(统一建模语言)技术进行软件建模,旨在优化和自动化医院的业务流程,以符合政府推行的e化医院项目要求。报告分为六个部分:概述、...
包括全套的UML建模图,用例图(3级),类图,顺序图,协作图,状态图,活动图,协作图,部署图。 附有完整的实验报告,报告包括实验内容,需求分析设计方法,思路和主要技术,软件系统建模(包括完整建模图),和三...
《全面解析:人事管理系统UML建模》 在IT行业中,设计和开发高效的人事管理系统是企业信息化建设的重要环节。本文将围绕“人事管理系统UML...对于任何规模的企业,掌握UML建模技术都能在信息化建设中发挥重要作用。
5.4.5关系小结 5.4.6WebShop电子商城用例图(含关系) 习题 第6章静态建模 6.1静态建模概述 6.2类图概述 6.3类图的基本组成 6.3.1类的概述 6.3.2绘制带属性的实体类 6.3.3绘制带操作的实体类 6.3.4绘制边界...
《UML建模——图书管理系统需求分析报告》 图书管理系统是一种使用计算机技术高效处理大量图书信息的电子档案管理系统。该系统旨在满足三个主要用户群体的需求:借书者、图书管理员和系统管理员。对于借书者,系统...
总结来说,UML建模技术是软件工程中不可或缺的一部分,它通过一系列图形化工具,有效地支持需求分析、设计、实现和维护等软件生命周期的各个阶段,从而确保软件项目的顺利进行。在实践中,开发者可以根据项目需求...
#### 三、UML建模的核心概念与技术 - **用例图**: - 描述系统的功能需求,展示系统的参与者及其交互。 - **类图**: - 展示系统中的类、接口及其相互关系。 - **序列图**: - 描述对象之间消息交互的顺序,展现...
总结,UML建模是一种强大的技术,它为软件开发提供了可视化、标准化的语言。通过深入学习UML,程序爱好者可以提高自己的专业技能,理解系统设计的本质,从而在实践中创造更加高效、可靠的软件产品。
总结来说,UML建模实例展示了如何使用UML工具和技术来理解和设计复杂系统。通过保险、图书馆和医院的案例,我们可以看到UML如何帮助我们清晰地表达系统需求,提高软件开发的效率和质量。这些模型不仅可以作为设计...
总结,OOAD、RUP和UML建模共同构成了现代软件开发的强有力工具箱,帮助开发者理解和解决问题,构建出高质量、可维护的软件系统。在实际工作中,熟练掌握这些方法和技术,能够显著提升软件项目的成功率。
综上所述,UML建模课程设计的大学生社团管理系统是一个全面、功能强大的工具,它结合了现代信息技术,旨在提升高校社团管理的效率,降低管理成本,同时培养学生的软件工程实践能力。通过深入学习和应用UML,不仅可以...
#### 四、UML建模实践 根据需求分析结果,我们将建立以下几种UML图: 1. **用例图**:展示系统与参与者之间的交互。 - **用例示例**:“登录系统”用例 - **前置条件**:系统正常运行。 - **触发器**:用户访问...
总结来说,汽车租赁系统的分析与设计利用UML建模方法,能够系统化、规范化地理解和表达业务流程,促进开发过程的标准化和效率提升。通过不同类型的UML图,我们可以深入理解系统的功能需求、业务逻辑和数据结构,为...
《UML建模在汽车租赁系统中的应用》 在信息技术领域,统一建模语言(Unified Modeling Language,简称UML)是一种被广泛使用的建模工具,它为软件开发提供了图形化的表示方式,帮助开发者清晰地表达系统的设计思想...
### UML全程建模知识点详解 #### UML简介与适用范围 UML(Unified Modeling Language,统一建模语言)是一种标准化的图形化语言,用于软件系统的设计与文档编写。它支持面向对象的全周期开发过程中的分析、设计、...
此实验报告通过具体案例展示了UML建模技术在实际软件开发中的应用,帮助学生理解如何使用UML工具(如Start UML)来清晰地表达系统的需求和行为,为后续的系统设计和实现奠定了基础。通过这样的实践,学生不仅学会了...
《UML建模语言统一建模语言》 统一建模语言(Unified Modeling Language,简称UML)是一种标准的图形化建模工具,用于软件开发过程中的系统分析、设计和可视化。它为软件开发团队提供了一种通用的语言,使得不同...