第1章UML概述_第1页
第1章UML概述_第2页
第1章UML概述_第3页
第1章UML概述_第4页
第1章UML概述_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、前言前言课程名称: 统一建模语言(UML,Unified Modeling Language) 性质:专业选修课 课时:32学时,理论24学时+上机8学时 目标: 能够熟练地 运用 对有进一步的理解考核方式: 平时成绩(30%)+ 期末考试(70%) 先修课程: 软件工程、面向对象程序设计等。 课程简介课程简介通过介绍UML(Unified Modeling Language,统一建模语言)中各个图形表达元素,以期构建标准的软件工程思想交流平台。然后在UML的平台上,引导学生们思考并讨论软件工程中的各个方面,从而重新审视软件工程本身的本质和问题。此外,通过使用UML,让学生们能够深谙面向对象的

2、思想,熟练将OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)和OOT(面向对象测试)等运用到实际的软件项目中。这门课程的不仅是讲授知识或者技术,更重要的是通过思考与练习,提高我们的动脑能力、技术品味,开阔视野: 通过阅读和自学来弥补课堂的不足 在实际的应用中掌握相关的理论为什么学习为什么学习UML? 需要理由吗? 我们从事软件行业 面向对象是最主流的软件开发思想 UML是最主流的建模方法UML+面向对象面向对象OOAD系统定义、分析、设计、实现系统定义、分析、设计、实现UML学习参考书籍学习参考书籍-1UML Distilled Martin Flower UML最佳入门

3、书籍统一建模语言(统一建模语言(UML)的发明者)的发明者Grady Booch本人本人都不一定比都不一定比Martin Fowler更会用更会用UMLUML学习参考书籍学习参考书籍-2UML建模工具建模工具1. 2. 3. 4. -7-学习线路图学习线路图OOOOUMLUML : : OOAOODOOP Case-Study : : : -8-什么是什么是UML The UML is a language for Visualizing Specifying Constructing Documenting the artifacts of a software-intensive syst

4、em的的什么是什么是UML UML(UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化和编制文档的一种标准语言。统一建模语言 (UML)是非专利的第三代建模和规约语言。在开发阶段,UML可以用来可视化(visualize) 、描述(specify)、构造(construct)和文档化(document)软件密集型系统。UML展现了一系列最佳工程实践,这些最佳实践表现在对大规模、复杂系统进行建模方面非常有效。UML可以贯穿软件开发周期中的每一个阶段。被OMG采纳作为业界的标准。UML最适

5、于数据建模,业务建模,对象建模,组件建模。UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构。当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。 UML是一个标准的图形表示法,它不是面向对象的分析和设计,也不是一种方法,它仅仅是一组符号而已。2022-3-310什么是什么是UML UMLUnified Modeling Language Unified 组合了当前最好的面向对象软件建模方法 Grady Booch, James Rumbaugh, and Ivor Jacobson, UML三位主要贡献者 1.OMT(James Rumbaugh) 2.The Booc

6、h method (Grady Booch) 3.OOSE(Ivar Jacobson) Modeling 用于表达现实的简化视图,以便于面向对象软件系统的设计与实现 Language UML主要是遵循精确语法的图形语言-11-UML是标准的符号 1. 用UML画图很容易摆脱符号烦恼全心面对问题2. UML仅仅是一种表达形式用好UML首先需要掌握OOAD的基本原则和方法,并在一定的软件开发过程(如统一过程UP/USDP/RUP、XP等)的指导下进行有取舍的运用但知道要画什么是困难的!2022-3-312建模的意义建模的意义 模型是对现实的简化,建模是为了更好地理解系统。 模型帮助我们按照实际情

7、况或需求对系统可视化; 模型允许我们详细说明系统的结构、行为; 模型给出了一个构造系统的模板; 模型对我们作出的决策进行文档化;2022-3-313建模的原理建模的原理 选择创建什么模型对如何动手解决问题和如何形成解决方案由意义深远的影响。 比较: 狗窝 摩天大厦2022-3-314建模的原理建模的原理 每一种模型可以在不同的经度级别上表示。 最好的模型可以让你根据观察的角色及原因选择它的详细程度。 对每个系统最好用一组几乎独立的模型去处理2022-3-315选择选择UML-1 使用UML建立对象模型来映射现实世界-16-选择选择UML-2Martin Flower: 如果你正在使用其它的旧技

8、术,我强列建议您马上转用UML,因为它明显地将成为符号系统的统一标准。 如果你正在考虑开始使用设计符号来工作,UML是一个好的选择,因为它已经统治业界了 -17-选择选择UML-3 UML不是万能的,很多场合并不适合使用 1)传统的做法已,对OOAD的要求也不高,项目非常成功,无任何改进的必要 2)开发的,直接用源码配上少量的文字就能解决问题,软件开发文档也无需添加图形来辅助说明 3)开发人员更直接阅读源码,用源码交流,这样做不影响工作效率和质量 4)开发的系统本身OO方法、UML适用范围-18-选择选择UML-4 很多情况下,推荐使用UML: 1)是项目决定采用的方法论,是整个项目或产品成功

9、的关键 2)开发人员感觉用源码说明不了真正的问题,希望利用可视化建模语言,提高交流效率,准确抓住问题本质 3)系统的规模和设计都,需要用图形抽象地表达复杂的概念,增强设计的灵活性、可读性和可理解性,以便暴露深层次的设计问题,降低开发风险 4)组织希望已成功项目、产品的公共设计方案,在开发新项目时可以参考、重用过去的设计,以节省投入,提高开发效率和整体成功率 5)有必要采用一套的图形语言和符号体系描述组织的业务流程和软件需求,促进业务人员、软件开发人员之间一致、高效的交流-19-UML发展背景发展背景 60年代后期:Simul67,基本思想 70年代后期:Smalltalk80,实用化 80年代

10、:理论基础,C+等,商业化 90年代:面向对象与设计方法学 B.H. Sellers等提出喷泉模型 G. Booch提出面向对象开发方法等 P. Coad和E.Yourdon提出OOA和OOD Jacobson提出OOSE 1997年:UML-20-UML诞生诞生公公众众反反馈馈OOPSLA95 Unified Method 0.8工业化工业化标准化标准化统一化统一化分散的分散的各部分各部分 Booch93 OMT-21996.6和和1996.10 UML 0.9&0.911997.9公布公布 UML 1.1 1997.1公布公布 UML 1.0合作伙伴合作伙伴意见意见 Booch91

11、 OMT-1 其他方法其他方法 OOSE-21-UML发展现状发展现状 目前通用的是UML 1.x版 主要UML 1.3、UML 1.4 2003年3月正式发布UML 1.5 UML 2.0 2003年6月OMG采纳了UML 2.0的Superstructure的提案 MDA -22-UML的统一的统一-1 统一了什么? 开发生命周期 应用领域 实现语言和平台 开发过程 本身的内部概念-23-UML的统一的统一-2 Grady Booch Dr. Ivar Jacobson Dr. James Rumbaugh2022-3-324选择选择UML 统一的国际标准建模语言 Unified Mode

12、ling Language-25-Inputs to the UMLMeyerBefore and after conditionsHarelStatechartsGamma, et alFrameworks and patterns,HP FusionOperation descriptions and message numberingEmbleySingleton classes andhigh-level viewWirfs-BrockResponsibilitiesOdellClassificationShlaer - MellorObject lifecyclesRumbaughO

13、MTBoochBooch methodJacobsonOOSE什么是模型什么是模型 模型就是对一个对象或物体的简化表示。 如:地球仪就是一个模型,它是对地球的简化表示。 我们可以用模型来表示现实领域中的业务,也可以用模型表示软件领域中的软件组成和结构。认识世界认识世界改造世界改造世界建模就是认识现实世界建模就是认识现实世界什么是模型什么是模型日常生活中,常见的模型有很多,下面按用途对模型进行命名的有: 交通模型:道路交通图、交通标志 建筑模型:建筑物模型、沙盘、公司总部的3D复制品 数据分析模型:条形图、饼状图 设计模型:建筑平面图、管线图、电路板设计图 什么是模型什么是模型图图1-1 常见的

14、模型常见的模型什么是模型什么是模型在软件开发工程中,模型主要用来描述问题域和软件域。 问题域主要包括业务、业务规则、业务流程、工作流程; 软件域主要包括软件组成、软件结构、软件部署等。E=MC2事物事物,运动运动矛盾矛盾,变化变化,发展发展X+Y=Z1+1=?持不同的世界观就会得到对现实世界的不同认识持不同的世界观就会得到对现实世界的不同认识建立建立不同的世界模型不同的世界模型。模型因人而异模型因人而异科学家科学家数学家数学家哲学家哲学家不同类型的人有不同的世界观模型体现现实世界模型体现现实世界 只存在同一个现实世界软件人员的建模目标现代目标:现代目标:在计算机中模拟现实世界的物和事。在计算机

15、中模拟现实世界的物和事。传统目标传统目标:控制计算机计算和运行。控制计算机计算和运行。 建模的重要性建模的重要性 建模的使用是软件成功的一个基本因素。模型的实质:对现实的简化。 建模的目标 :便于展现系统。允许指定系统的结构或行为。提供构造系统的模板。记录决策。 建模四原则建模四原则选择建立什么样的模型对如何发现和解决问题具有重要的影响。 每个模型可以有多种表达方式。 最好的模型总是能够切合实际。 孤立的模型是不完整的。任何好的系统都是由一些几乎独立的模型拼凑出来的。 面向对象建模面向对象建模 两种最常用的建模方法:基于算法的和面向对象的。 随着需求的变化和系统的增长,运用基于算法的建模方法建

16、立起来的系统很难维护。 在面向对象的建模方法中,主要的模块是对象或者类。 OO、UML与建模与建模 建模是最终目的 OO是一种建模理论 UML是一种体现OO的建模语言,是将OO理论转化为实践的工具本节目标本节目标 通过简单通俗的事例来演绎对象建模的基本概念 开阔视野,轻松树立面向对象的观点 掌握用面向对象方法分析问题的要领 为学习对象建模方法热身38实例实例问题分析问题分析-1 A. 这里面有什么东东? 月老,小伙,姑娘,恋人,玫瑰花 B. 每个东东看上去是什么样的? 月老,看上去有些年纪了,挺热心的 小伙,看上去很强壮,很诚实的 姑娘,看上去好漂亮,还很温柔 恋人,看上去很黏糊,当然就结婚了

17、 玫瑰花,火红火红的,难怪姑娘动情了问题分析问题分析-2 C. 每个东东能做点什么用? 月老:牵线搭桥,介绍认识 小伙:追求献花,表达爱意 姑娘:仰慕倾情,以身相许 恋人:拍拖,结婚 玫瑰花:令姑娘头晕,传情示爱问题分析问题分析-3 D. 这些东东都呆在什么地方? 月老:婚介所,交友网站 小伙:软件园,住高新 姑娘:人民医院,住友谊路 恋人:曲江,电影院, 玫瑰花:花店里,小伙手中,姑娘手中问题分析问题分析-4E. 这些东东之间有什么关系?关系月老小伙姑娘恋人玫瑰月老邻居舅妈撮合者没关系小伙邻居男友/老公男主角买送主姑娘外甥女女友女主角受主恋人作品组合组合使用者玫瑰没关系信物受物心意 信物问题

18、分析问题分析-5 F. 这些东东是怎么成事的? 月老牵线搭桥,介绍小伙和姑娘认识 姑娘和小伙一见钟情,成为一对恋人 一对恋人开始拍拖 小伙追求献花,表达对姑娘的爱意 姑娘收到999火红玫瑰,激动得头晕目眩 小伙真心求婚,姑娘以身相许 一对恋人终于走入婚姻殿堂上升到面向对象上升到面向对象用面向对象观点观看事物用面向对象观点观看事物用对象观点认识事物用对象观点认识事物A.这里面有什么东东?类与对象B.每个东东看上去是什么样的?类的属性C.每个东东能做点什么用?类的方法D.这些东东都呆在什么地方?类的行为、状态、部署E.这些东东之间有什么关系?类间的关联F.这些东东是怎么成事的?类间的交互DACBE

19、F我的一个朋友结婚了我的一个朋友结婚了-A A.这里面有什么东东? Object Class 我 本剧与我无关 我的朋友 小伙 我朋友的妻子姑娘 月老 恋人 玫瑰 DCBEF我的一个朋友结婚了我的一个朋友结婚了-BB.每个东东看上去是什么样的? 每个事物看上去都有自己的属性,在每个属性上都有一个特征值 小伙:长相,特征值:帅气 姑娘:性情,特征值:温柔 月老:年纪,特征值:较大 恋人:关系,特征值:黏糊 玫瑰花:颜色,特征值:火红DACEF我的一个朋友结婚了我的一个朋友结婚了-C C.每个东东能做点什么用? 每个事物都具备某种能力 小伙:追求、送花、娶亲 姑娘:爱慕、相许、出嫁 月老:牵线搭桥

20、 玫瑰:示爱DABEF我的一个朋友结婚了我的一个朋友结婚了-DD.这些东东都呆在什么地方? 每个事物都会有它合理的或者必须的空间位置和逻辑位置。尤其当这些位置对事物的行为造成重要影响的时候,表明他们的位置极其重要 本剧列出的位置对故事主要情节没有太大的影响,系统中不予考虑ACBEF我的一个朋友结婚了我的一个朋友结婚了-EE.这些东东之间有什么关系? 事物之间的关系非常多,面向对象的观点一般分为主要的三类: 整体-部分关系(组成和聚合),甲是乙的一个组成部分。如:恋人和小伙,恋人和姑娘的关系 抽象-具体关系(泛化),甲是乙的一个特例。如:人和小伙,人和月老,人和姑娘的关系 合作关系(关联),甲会

21、对乙做点什么如:月老和小伙、姑娘,小伙和玫瑰,小伙和姑娘的关系DACBF我的一个朋友结婚了我的一个朋友结婚了-FF.这些东东是怎么成事的? 每个事物都会尽量利用伙伴的能力 整体事物的能力依靠部分事物的能力 抽象事物的属性和能力就是具体事物的属性和能力;具体事物除了有抽象事物的属性和能力外,还可以有自己特殊的 事物分工协作,互通信息,共同完成整体的目标 面向对象的分析和设计的核心DACBE俗语和术语间的对应俗语和术语间的对应出了什么事?用例我的一个朋友结了婚。具体事物对象我的一个朋友,他未婚妻事物类型类小伙,姑娘,玫瑰,月老属性属性年龄,体格,性情能力方法牵线,追求,结婚位置部署软件园,情侣路整-部关系聚集关系恋人-小伙,恋人-姑娘抽-具关系继承关系人-小伙,人-姑娘合作关系关联关系小伙-姑娘,小伙-玫瑰成事过程用例实现相识,相恋,结婚利用利用UML描述分析过程描述分析过程搞清过程的活动图搞清过程的活动图相识相识牵线牵线拍拖拍拖一见钟情一见钟情订婚订婚谈婚论嫁谈婚论嫁结婚结婚举行婚礼举行婚礼蜜月蜜月不成不成拍拖过程活动图拍拖过程活动图非初级阶段非初级阶段送收花送收花甜言蜜语甜言蜜语手拉手手拉手亲亲嘴亲

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论