1、UML建模与实践,李华玲 Hualing_,模型是对现实的简化,0.1为什么需要建模?,为什么需要建模?,1、建模的目的更好的理解正在开发的系统 注意:模型是用来沟通的,因此仅当需要时才构建它。切忌:“为了建模而建模” 2、正确认识建模方法论,正确认识建模方法论,参考书目,UML统一建模实用教程王先国 清华大学出版社 2009.4 UML面向对象技术教程王少锋 清华大学出版社 2004.2 UML基础与ROSE建模教程蔡敏等 人民邮电出版社 2006.1 UML和模式应用(原书第三版)Craig Larman著 李洋等译 机械工业出版社 2006.5,课程介绍,本课程主要介绍三个部分的知识:1
2、、UML语言的特点、UML语言体系结构、UML组成元素、UML包含的图形种类及图的表示方法、UML图的作用、UML的应用领域和建模方法;2、介绍了RUP统一过程及UML工具-Rational Rose的使用;3、最后以图书管理系统为例子,介绍了系统开发的每个阶段,如何采用UML对系统进行建模。,课程目标及基本要求,1、掌握UML的元素的语义、语法及其作用; 2、掌握UML的表示法和建模方法; 3、理解静态建模和动态建模方法及其作用; 4、掌握绘制各种类型的图,例如类图,用例图,协作图,顺序图等等; 5、理解RUP开发模型及其裁剪方法;,第一章 UML概述,1.1 为什么要学习UML 1.2 U
3、ML的历史 1.3 UML的特点 1.4 UML2.0中的图 1.5 UML中的视图 1.6 UML的应用领域 1.7 UML工具,1.1 为什么要学习UML,1、软件建模的工具,1.1 为什么要学习UML,2、模型的实质模型是对现实的简化。 3、建模的目标 (1)模型帮助我们按照实际情况或需求对系统可视化; (2)模型允许我们详细说明系统的结构、行为; (3)模型给出了一个构造系统的模板; (4)模型对我们作出的决策进行文档化。,1.1 为什么要学习UML,4、建模的原则选择建立什么样的模型对如何解决问题和如何形成解决方案有意义深远的影响; (1)每种模型可以在不同的精度级别上表示; (2)
4、最好的模型可以根据观察者的角度及原因选择它的详细程度; (3)对每个系统最好用一组几乎独立的模型去处理。,1.1 为什么要学习UML,5、选择UML (1)使用UML建立对象模型来映射现实世界,1.1 为什么要学习UML,5、选择UML (2)UMLUnified Modeling Language (3)Unified 组合了当前最好的面向对象软件建模方法 Grady Booch,James Rumbaugh,Ivor Jacobson,UML三位主要贡献者 Booch 1993 适合于系统的设计和构造 OMT-2 适合于分析和描述以数据为中心的信息系统 OOSE 用例,适合于商业工程和需求
5、分析,1.1 为什么要学习UML,5、选择UML (4)Modeling用于表达现实的简化视图,以便于面向对象软件系统的设计与实现。 (5)LanguageUML主要是遵循精确语法的图形语言,1.1 为什么要学习UML,6、UML的目标提供全面的建模语言(为所有事情所有人),便于开发组所有成员通信交流。,1.1 为什么要学习UML,统一建模语言Unified Modeling Language,1.2 UML的历史,UML是由世界著名的面向对象技术专家G. Booch,J. Rumbaugh 和 I. Jacobson发起,在Booch方法,OMT方法和OOSE方法的基础上,广泛征求意见,集众
6、家之长,几经修改而完成的。 Three amigos,Booch Rumbaugh Jacobson,2004,1.3 UML的特点,统一的标准 面向对象 可视化,表示能力强大 独立于过程 概念明确,建模表示法简洁,图形结构清晰,容易掌握和使用。,理解UML,UML是一种语言遵循特定的规则允许创建各种模型并不告诉设计者需要创建哪些模型并不提供开发过程 UML是可视化的语言UML是图形化语言图形便于交流,理解UML,UML是用于构造系统或理解系统的语言UML既支持正向工程,又支持反向工程UML是文档化的语言将所建造的系统记录下来便于新程序员跟进,UML和程序设计语言的关系,用Java,C+ 等
7、programming language是用编码实现一个系统。 用UML是对一个系统建立模型。 一些CASE工具可以根据 UML所建立的系统模型来产生Java,C+ 或其它程序设计语言代码框架。,关于UML的一些认识,UML不是一个独立的软件工程方法,而是面向对象软件工程方法中的一个部分。 一个比喻:UML中所提供标准的图符,相当于音乐五线谱里的乐符,学会看乐符才能看得懂乐谱,才能进一步创造音乐。同样,懂得UML中的图符才能进行系统分析和设计。 OOA/OOD教您活用UML的图符,以及活用时所必须遵循的原则及步骤。,贝多芬作曲时使用五线谱,您设计软件时使用UML,一个比喻,1.4 UML2.0
8、中的图,定时图,顺序图,交互概观图,1、类图,2、构件图,3、对象图,4、部署图,6、包图,7、用例图,8、活动图,9、状态图,10、合作图(协作图),11 、 顺 序 图,通过进水管向洗衣缸中注水; 洗衣缸保持五分钟静止状态; 水注满,停止注水; 洗衣缸往返旋转15分钟; 通过排水管排掉洗涤后的脏水; 重新开始注水; 洗衣缸继续往返旋转洗涤; 停止向洗衣缸中注水; 通过排水管排掉漂洗衣物的水; 洗衣缸加快速度单方向旋转分钟; 洗衣缸停止旋转,洗衣过程结束。,需求获取阶段,分析阶段,设计阶段,UML中常用图之间的关系,UML2.0中的新图,组合结构图 时间图 交互概观图,组合结构图,时间图,交
9、互概观图,活动图,1.5 UML中的视图,在RUP中,从5个角度对系统进行建模,5个视图分别为: 1.用例视图:描述了系统的功能和参与者,由多个用例图组成,是主要的需求模型。 2.设计视图:又称逻辑视图,描述了软件系统的组成、结构、行为,是软件系统的蓝图,该种视图常由类图、交互图、状态图和活动图组成。 3.组件视图:描述了软件系统的组成成分,即,软件发布时,系统包含的软件构件和文件。这种视图常用构件图、交互图、状态图、活动图描述。 4.并发视图:描述系统各部分之间的同步和异步执行情况。常用状态图和协作图来描述。,1.5 UML中的视图,5部署视图:描述了软件系统的各部分,如何部署到各硬件节点上
10、。常用部署图、交互图、状态图、活动图描述。下面是描述软件系统的5种视图,如图所示。,1.6 UML的应用领域,UML的目标是以图的方式描述任何类型的系统 ,具有很宽的应用领域。常用于建立软件系统的模型,同样可以用于描述非软件系统的模型,如机械系统、企业机构、业务过程等。,在分析阶段,用户的需求用UML模型来描述。 在设计阶段,引入定义软件系统中技术细节的类(如处理用户接口、数据库、通信和并行性等问题的类)。 在实现阶段,用面向对象程序设计语言将来自设计阶段的类转换成实际的代码。 UML模型还是测试阶段的依据。 单元测试使用类图和类规格说明 集成测试使用构件图和协作图 系统测试使用用例图来验证系
11、统的行为,UML在系统开发各阶段的应用,一个UML的例子 (HelloWorld),在Web浏览器中,显示“Hello, World!”的 Java applet程序:,import java.awt.Graphics;public class HelloWorld extends java.applet.Applet public void paint (Graphics g) g.drawString(“Hello, World!“, 10,10); ,在UML中,对这个applet的建模如下图所示,类HelloWorld 用一个矩形表示。类HelloWorld 中给出了paint操作,在
12、一个附属的note中说明了该操作的实现。,前面这个类图反映出了“Hello World!”这个applet基本部分,并没考虑别的事物。按照代码,这个applet还涉及另外两个类,即Applet类和Graphics类。 Applet类是HelloWorld类的父类,Graphics类则在HelloWorld类的paint操作的特征标记(signature)和实现中被使用。在UML中,可用下图表示这两个类及与HelloWorld类的关系。,说明:JBuilder 9.0中的所得到的类图:,如果考虑类库及Applet上的继承关系,可以得到另一个类图,如下图所示:,为了管理大规模的类层次图,可以用包来
13、组织类,如下图所示:,对象间的协同工作,HelloWorld的一个Sequence图,HelloWorld的构件图,“HelloWorld!”是一个applet,不能单独运行,通常是嵌入在Web页中。下面是HelloWorld的构件图:,1.7 UML工具,Rational Rose 2003 Visio,Rational Rose 2003,美国Rational公司开发,面向对象的可视化建模工具。 Rational Rose包括了统一建模语言(UML),面向对象的软件工程(OOSE)及对象建模技术(OMT)。,Rational Rose 2003的特点,保证模型和代码的高度一致。 支持多种语言。 为团队的开发提供强有力的支持。 支持模型的Internet发布。 生成使用简单且定制灵活的文档。 支持关系型数据库的建模。,