版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、UML面向对象建模基础UML概述知识图谱Agenda什么是UMLUML认识误区什么是模型本章小结UML概述 UML(Unified Modeling Language)是软件界第一个统一的建模语言,该方法结合了Booch, OMT, 和OOSE方法的优点,统一了符号体系,并从其它的方法和工程实践中吸收了许多经过实际检验的概念和技术。 它是一种标准的表示,已成为国际软件界广泛承认的标准。是一种基于面向对象的可视化的通用(General)建模语言。为不同领域的用户提供了统一的交流标准 UML图。 UML应用领域很广泛,可用于软件开发建模的各个阶段,商业建模(Business Modeling),
2、也可用于其它类型的系统。 UML是一种定义良好,易于表达,功能强大且普遍实用的建模语言,不是一种方法,它独立于过程。利用它建模时,可遵循任何类型的建模过程。UML发展历程UML发展历程九十年代中,面向对象方法已经成为软件分析和设计方法的主流。1994年10月Jim Rumbaugh和Grady Booch共同合作把他们的OMT和Booch方法统一起来,到1995年成为“统一方法”(Unified Method)版本0.8。随后,Ivar Jacobson加入,并采用他的用例(User case)思想,到1996年,成为“统一建模语言”版本0.9。1997年1月,UML版本1.0被提交给OMG(
3、Object Management Group)组织,作为软件建模语言标准的候选。其后的半年多时间里,一些重要的软件开发商和系统集成商都成为“UML伙伴”,如IBM,Mircrosoft,HP等.1997年11月7日被正式采纳作为业界标准。UML的特性UML是一种Language(语言)UML主要是遵循精确语法的图形语言UML是一种Modeling(建模)Language用于表达现实的简化视图,以便于面向对象软件系统的设计与实现UML是Unified(统一)Modeling Language组合了当前最好的面向对象软件建模方法Grady Booch, James Rumbaugh, and I
4、vor Jacobson,UML三位主要贡献者 1. OMT (James Rumbaugh) 2. The Booch method (Grady Booch) 3. OOSE (Ivar Jacobson)UML的发展现状已进入全面应用阶段的事实标准应用领域正在逐渐扩展,包括嵌入式系统建模、业务建模、流程建模等多个领域成为“产生式编程”的重要支持技术:MDA、可执行UML等UML的理解:UML是一种语言遵循特定的规则允许创建各种模型并不告诉设计者需要创建哪些模型并不提供开发过程UML是可视化语言UML是图形化语言图形便于交流(一幅图抵上千文字)UML的理解:UML是用于构造系统或理解系统的
5、语言UML既支持正向工程,又支持反向工程UML是文档化语言将所建造的系统记录下来便于新程序员跟进开发产品新版本时很有用处UML的认识误区:UML是一种方法论? 只是规范、标准,没有方法指南,只有方法的概念UML是一堆图形? 图形只是建模的表现形式,还有文字UML只能应用与面向对象开发? 还可以建模业务、数据库、工作流等。不管采用的是过程化开发,还是面向对象开发,都可以从中得到好处。UML是Rational Rose里的建模符号? Rational Rose只是其中一种建模工具? UML的主要内容 UML的定义包括UML语义和UML表示法两个部分。(1) UML语义 描述基于UML的精确元模型(
6、meta-model)定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的表达方法所造成的影响。此外UML还支持对元模型的扩展定义。 UML支持各种类型的语义。如布尔、表达式、列表、阶、名字、坐标、字符串和时间等,还允许用户自定义类型。(2) UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。 这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。 模型是对现实的简化模型是现实的简化模型提供了系统的设计图。模型可以包含详细的规划,也可以包含概括性的规划
7、,这种规划高度概括了正在考虑的系统。好的模型包括那些具有高度抽象性的元素。模型有助于按原样或根据需要使系统可视化通过模型可以详细说明系统的结构或行为模型可以提供一个指导我们构建系统的模板模型可以记录已经做出的决策模型是对现实的简化常见的模型生活相关:气象图、道路交通图、交通标志展示相关:建筑物模型、沙盘、公司总部的3D复制品数据分析相关:条形图、饼状图业务分析相关:组织结构图、跨职能流程图设计相关:建筑平面图、管线图、电路板设计图 建模的目的与原则帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文
8、档化 仅当需要模型时,才构建它 选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响每一种模型可以在不同的精度级别上表示。最好的模型可以让你根据观察的角色及原因选择它的详细程度。对每个系统最好用一组几乎独立的模型去处理建模的目的与原则为什么要对软件建模?领域问题概念模型分析、抽取系统需求解决方案分析、设计提取 UML作为一种可视化的建模语言,提供了丰富的基于面向对象概念的模型元素及其图形表示元素。鉴于软件系统的复杂性和规模的不断增大,需要建立不同的模型对系统的各个层次进行描述。软件模型包括:数学模型、描述模型和图形模型。便于开发人员与用户的交流。模型为以后的系统维护和升级提
9、供了文档。建模过程:为什么使用UML建模,可以建立什么模型UML是一种统一的、标准化的建模语言 UML是一种应用面很广泛的建模语言 模型的种类模型的用途业务模型对业务过程、工作流、组织的建模需求模型对捕获的需求进行整理和分析的工具,辅助开发人员与用户进行沟通设计模型包含高层设计(架构模型)和详细设计模型,用于统一开发人员、沟通设计信息数据库模型设计数据库的结构、表结构以及与应用系统的交互实现模型用来理清软件的组成、部署方案,为安装与维护人员的工作提供指导草图与蓝图蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型 草图则通常是指手工绘制的、规范度较低的在纸张的UML模型 大胆地绘制草
10、图,尽可能基于草图进行讨论。对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中 谁应该建模业务建模:以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与需求模型:以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与设计模型:高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开发人员为主,架构师提供指导。实现模型:以资深开发人员(设计人员)为主,架构师提供总体
11、指导。数据库模型:以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。本章小结首先概要地介绍了什么是UML、UML的发展历程和发展现状,让读者对UML的来龙去脉有个感性的了解 然后,从模型的定义开始,讲述建模的意义、选用UML建模的好处以及模型类别、负责建模的人员等知识,帮助读者理解UML的应用领域以及它的意义,以建立对UML及模型的宏观认识 最后,本章还指出了UML初学者容易走入的认识误区,帮助读者更好的认识UML,为UML的学习指出正确的方向 UML面向对象建模基础UML世界的构成知识图谱AgendaUML的组成构造块关系UML规则UML公共机制UML扩展机制UML体系
12、结构与图本章小结UML组成UML构造块规则公共机制建模元素关系图规格描述修饰公共分类扩展机制命名范围可见性完整性执行1.结构元素(类,接口,协作,用例,对象,构件,节点等)2.行为元素(交互,状态机)3.分组元素(包)4.注解元素1.关联2.依赖3.泛化4.实现1.静态模型(类图,构件图,部署图)2.动态模型(对象图,用例图,顺序图,协作图,状态图,活动图)基本构造块:也就是建 模元素,是模型的主体UML规则:也就是支 配基本构造块如何放 在一起的规则公共机制:运用于整 个UML模型中的公共机制、扩展机制构造块构造块是对模型中最具有代表性的成分的抽象 建模元素:UML中的名词,它是模型基本物理
13、元素。行为元素:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。分组元素:UML中的容器,用来组织模型,使模型更加的结构化。注释元素:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。建模元素类(class)和对象(object)构件(component)接口(interface)主动类(active class)协作(collaboration)用例(use case)节点(node)类和对象类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的抽象 UML中类是用一个矩形表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法 对象则是类的
14、一个实例 构件在实际的软件系统中,有许多要比“类”更大的实体,例如一个COM组件、一个DLL文件、一个JavaBeans、一个执行文件等等。为了更好地对在UML模型中对它们进行表示,就引入了构件(也译为组件) 构件是系统设计的一个模块化部分,它隐藏了内部的实现,对外提供了一组外部接口。在系统中满足相同接口的组件可以自由地替换 接口接口是描述某个类或构件的一个服务操作集 主动类主动类实际上是一种特殊的类。引用它的原因,实际上是在开发中需要有一些类能够起到启动控制活动的作用 主动类是指其对象至少拥有一个进程或线程,能够启动控制活动的类 。在图形上,主动类的表示方法和普通类相似,也是使用一个矩形,只
15、是最外面的边框使用粗线。协作协作定义了一个交互,它是一组类、接口和其它元素的群体,它们共同工作,提供比各组成部分的功能总和更强的合作行为。与组件不同,协作不能拥有自己的结构事物,而只能引用其它地方定义的类、接口、组件、节点等结构事物,即协作是系统体系结构中的概念组块而不是物理组块。在图形上,协作用一个 包含名称的虚线椭圆表示。对于某个用例的实现就可以表示为一个协作 。用例用例是著名的大师Ivar Jacobson首先提出的,现已经成为了面向对象软件开发中一个需求分析的最常用工具 用例实例是在系统中执行的一系列动作,系统执行这些动作将对用例的参与者(actor ,有些书翻译成“角色”)产生可以观
16、察的结果。在图形上,用例用实线 的椭圆表示,参与者用 一个人形的图案表示。一个用例定义一组用例实例。节点为了能够有效地对部署的结构进行建模,UML引入了节点这一概念,它可以用来描述实际的PC机、打印机、服务器等软件运行的基础硬件 节点是运行时存在的物理元素,它表示了一种可计算的资源,通常至少有存储空间和处理能力 在图形上,节点用一个立方体来表示。行为元素结构事物描述的是模型的静态部分,而行为事物描述的是模型的动态部分。 对象都不是孤立存在的,它们之间通过传递消息进行交互。 交互(interaction):是在特定语境中,共同完成某个任务的一组对象之间交换的信息集合 。 交互的表示法很简单,就是
17、一条 有向直线,并在上面标有操作名 行为元素状态机(state machine):是一个对象或交互在生命周期内响应事件所经历的状态序列 ,它说明对象在它的生命周期中响应时间所经历的状态序列以及它们对那些事件的响应。状态是指在对象的生命周期中满足某些条件、执行某些活动或等待某些事件时的一个条件或状况。一个事件的到来,能够触发一个状态的转换。在UML模型中将状态画为一个圆角矩形,并在矩形内写出状态名称及其子状态 分组元素对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,生成或简或繁、或宏观或微观的模型,就需要对其进行分组。在U
18、ML中,提供了“包(Package)”来完成这一目标 。 包(package)是把元素组织成组的机制。结构事物、行为事物甚至其他的分组事物都可以放进包内。可以把它看作一个一个的盒子,每个盒子里面的对象关系相对复杂,而盒子与盒子之间的关系相对简单。在图形上,包用一个在左上角带有一个 小矩形的大矩形表示。 注释元素结构事物是模型的主要构造块,行为事物则是补充了模型中的动态部分,分组事物而是用来更好地组织模型,似乎已经很完整了。而注释事物则是用来锦上添花的,它是用来在UML模型上添加适当的解释部分,可以用来描述、说明和标注模型的任何元素。在图形上,注解用一个右上角 是折角的矩形表示 。UML模型关系
19、的种类种类变种表示法关键字或符号种类变种表示法关键字或符号抽象派生依赖关系derive导入 私有依赖关系access显现manifest公有import实现实现关系虚线加空心三角信息流flow精化依赖关系refine包含并merge跟踪trace许可permit关联关联关系实线协议符合未指定绑定依赖关系bind(参数表)替换依赖关系substitute部署deploy使用调用call扩展Extendextend(扩展点)创建create扩展extension扩展关系实线加实心三角实例化instantiate泛化泛化关系实线加空间三角职责responsibility包含依赖关系include发送
20、send关联关系关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。在UML中,使用一条实线来表示关联关系 PersonCompanyworksforemployee * 1 employer关联关系在关联关系中,有两种比较特殊的关系:聚合和组合 聚合关系:聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系 如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述 关联关系组合是聚合的变种,加入了一些重要的语义。也就是说,在一个组合关系中一个对象一次就只
21、是一个组合的一部分,“整体”负责“部分”的创建和破坏,当“整体”被破坏时,“部分”也随之消失 聚合就像汽车和车胎,汽车坏了胎还可以用。组合就像公司和下属部门,公司倒闭了部门也就不存在了! 成员* *课题组个人*窗口显示区外框标题泛化关系泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。子类继承父类的属性和操作,除此之外,子类通常还添加新的属性和操作。实现关系实现关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作用于规定类或组件的服务。 依赖关系有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(D
22、ependency)于元素X。 依赖关系是两个元素间的语义关系,其中一个元素(独立事物)发生变化,会影响到另一个元素(依赖事物)的语义。UML规则命名:也就是为事物、关系和图起名字。和任何语言一样,名字都是一个标识符 范围:与类的作用域相似.可见性:可见性规则标准表示法public任一元素,若能访问包容器,就可以访问它+protected只有包容器中的元素或包容器的后代才能够看到它#private只有包容器中的元素才能够看得到它-package只有声明在同一个包中的元素才能够看到该元素规格描述在图形表示法的每个部分后面都有一个规格描述(也称为详述),它用来对构造块的语法和语义进行文字叙述。这种
23、构思,也就使可视化视图和文字视图的分离 :UML修饰与通用划分在为了更好的表示这些细节,UML中还提供了一些修饰符号,例如不同可视性的符号、用斜体字表示抽象类 UML修饰与通用划分UML通用划分:1)类与对象的划分:类是一种抽象,对象是一个具体 的实例 2)接口与实现的分离:接口是一种声明、是一个契 约,也是服务的入口;实现则是负责实施接口提供 的契约 UML扩展机制构造型:在实际的建模过程中,可能会需要定义一些特定于某个领域或某个系统的构造块 标记值则是用来为事物添加新特性的。标记值的表示方法是用形如“标记信息”的字符串 UML扩展机制约束是用来增加新的语义或改变已存在规则的一种机制(自由文本和OCL两种表示法)。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近UML定义的图图名功能备注类图描述类、类的特性以及类之间的关系UML 1原有对象图描述一个时间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年委托高等教育自学考试招生代理服务合同范本3篇
- 2024年某餐饮企业与食品原料供应商合同
- 太阳大道(芙蓉路-皂果北路)方案设计说明
- 显微镜各部分的名称及作用
- 02J331地沟及盖板(标准图集)
- 食品批发商市场营销策略调整试题考核试卷
- 羽绒制品企业生产流程标准化与优化考核试卷
- 跨境电商与国际市场的投资机遇与风险管理考核试卷
- 羽绒产品出口贸易壁垒分析-洞察分析
- 虚拟办公服务创新评价-洞察分析
- 2023初一语文现代文阅读理解及解析:《猫》
- 大四课件感染深部真菌病
- 就这样当班主任读书分享
- 《太上老君说五斗金章受生经》
- 东南大学医学三基考试外科选择题及答案
- TZJASE 005-2021 非道路移动柴油机械(叉车)排气烟度 检验规则及方法
- GB/T 31989-2015高压电力用户用电安全
- CB/T 749-1997固定钢质百叶窗
- 大佛顶首楞严经浅释
- 品牌(商标)授权书(中英文模板)
- 行动销售(最新版)课件
评论
0/150
提交评论