1、第2章 UML概述,2.1 为什么要学习UML 2.2 UML的历史 2.3 UML的特点 2.4 UML的构成 2.5 UML中的视图 2.6 UML的应用领域 2.7 支持UML的工具 2.8 一个UML的例子,UML(Unified Modeling Language)是软件界第一个统一的建模语言,结合了Booch, OMT, 和OOSE方法的优点,统一了符号体系,并从其它的方法和工程实践中吸收了许多经过实际检验的概念和技术。它是一种标准的表示,已成为国际软件界广泛承认的标准。是一种基于面向对象的可视化的通用(General)建模语言。为不同领域的用户提供了统一的交流标准 UML图。UM
2、L可应用于软件开发建模的各个阶段, 也可用于其它类型的系统。,2.1 为什么要学习UML,领域问题,概念模型,分析、抽取,系统需求,解决方案,分析、设计,提取,UML作为一种可视化的建模语言,提供了丰富的基于面向对象概念的模型元素及其图形表示元素。是否所有的问题都需要建模呢?不一定。,什么是模型?为什么要建模?,2.1 为什么要学习UML,Booch对UML的定义: UML是对软件密集型系统中的制品进行可视化、详述、构造和文档化的语言。 制品是指软件开发过程中产生的各种各样的产物,如模型、源代码、测试用例等,2.1 为什么要学习UML,使用UML建模的好处: 使用模型可以更好地理解问题 使用模
3、型可以加强人员之间的沟通 使用模型可以更早地发现错误或疏漏的地方 使用模型可获取设计结果 模型为最后的代码生成提供依据 UML是一种建模语言,是一种标准的表示而不是一种方法或方法学,但允许任何一种过程和方法使用他。方法是易变的。,九十年代中,面向对象方法已经成为软件分析和设计方法的主流。1997年11月7日被正式采纳作为业界标准。,2.2 UML的历史,(1) 统一标准提供标准的面向对象的模型元素的定义和表示。(2) 面向对象吸取面向对象技术领域中其他流派的长处。剔除了他们的缺点。(3) 可视化、表示能力强可表示系统的逻辑模型或实现模型,可用于复杂软件系统的建模。,2.3 UML的特点,2.3
4、 UML的特点,(4) 独立于过程独立于特定的软件开发过程。 (5) 易掌握、易用UML概念明确,建模表示法简洁明了,易于掌握使用。UML与程序设计语言有区别:UML用于对系统建模,语言用于实现,UML的定义包括UML语义和UML表示法两个部分。 (1)UML语义描述基于UML的精确元模型(meta-model)定义。元模型为UML所有元素在语法和语义上提供了定义性说明。UML支持对元模型的扩展定义。,2.4 UML的主要内容,2.4 UML的主要内容,(2) UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。在语义上它是UML元模型的实例
5、。,3类主要元素:基本构造块规则公共机制,UML的主要构成,事物,关系,图,UML的主要构成,事物分为:结构事物:类、接口、协作、用例、构件和结点行为事物:交互和状态机分组事物:包注释事物:注释关系:关联依赖泛化实现,事物,事物,UML的主要构成,关系:关联依赖泛化实现,UML语言定义了五种类型,9种不同的图,把它们有机的结合起来就可以描述系统的所有视图。 用例图(Use case diagram) 从用户角度描述系统功能,并指出各功能的操作者。 静态图(Static diagram),表示系统的静态结构。包括类图、对象图、包图。 行为图(Behavior diagram),描述系统的动态模型
6、和组成对象间的交互关系。包括状态图、活动图。 交互图(Interactive diagram), 描述对象间的交互关系。包括顺序图、协作图。 实现图( Implementation diagram ) 用于描述系统的物理实现。包括构件图、部署图。,2.5 UML中的图和视图,一个系统应从不同的角度进行描述,从一个角度观察到的系统称为一个视图(view)。视图由多个图(Diagrams)构成,它不是一个图表(Graph),而是在某一个抽象层上,对系统的抽象表示。如果要为系统建立一个完整的模型图,需定义一定数量的视图,每个视图表示系统的一个特殊的方面。另外,视图还把建模语言和系统开发时选择的方法或
7、过程连接起来。,5.1.2 UML的主要内容,视图(views),描述系统的外部特性、系统功能等。,描述系统的实现模块以及它们之间的依赖关系,常用构件图表示,描述系统设计特征,包括结构模型视图和行为模型视图,前者描述系统的静态结构(类图、对象图),后者描述系统的动态行为(交互图、状态图、活动图)。,考虑资源的有效利用、代码的并行执行以及系统环境中异步事件的处理。,描述系统的物理配置特征。用配置图表示。,5.1.2 UML的主要内容,UML常用视图,2.6 UML应用领域,软件系统建模 企业信息系统 银行金融服务 电信 交通 国防/航空 零售 科学计算 分布式的基于Web的服务 其他系统建模,2
8、.7 支持UML的工具,Rational Rose Together ArgoUML Visio Visual UML,2.8 一个UML的例子,在Web浏览器中,输出“Hello World” 程序:import java.awt.Graphics;class HelloWorld extends java.applet.Appletpublic void paint(Graphics g)g.drawString(“Hello World!”,10,10);,2.8 一个UML的例子,类图1类图2,2.8 一个UML的例子,类图3,2.8 一个UML的例子,顺序图,2.8 一个UML的例子,构件图,