UML设计模式概述.ppt
UML和设计模式,权 巍,参考教材,UML和设计模式,2,刁成嘉,UML系统建模与分析设计,机械工业出版社Eric Gamma等著,李英军等译,设计模式:可复用面向对象软件的基础,机械工业出版社,1 概述,主要内容,面向对象软件开发与面向过程软件开发软件开发过程与开发模型面向对象的基本概念UML概述设计模式概述,4,UML和设计模式,1.1 面向对象软件开发与 面向过程软件开发,面向过程与面向对象的软件开发思想例:教师告知学生下节课的上课地点面向过程:获得学生的名单;针对名单中的每个学生告知他下节课的上课地点;面向对象:给出通用的指示(如教室位置图),由每个学生自己弄清下节课的上课地点。,5,UML和设计模式,1.1 面向对象软件开发与 面向过程软件开发,面向过程软件开发方法 有一个“主”程序负责控制和协调各子程序的执行,确保一切正常工作。面向对象软件开发方法 主程序仅告知学生要做什么,并不知实现细节;责任被转移到每一个学生自己的手中。,6,UML和设计模式,1.1 面向对象软件开发与 面向过程软件开发,面向过程软件开发方法的问题:不能应对需求的变化,若修改一个函数可能对其他函数产生严重影响。需求总是在变化面向对象软件开发方法能较好的应对需求变化,7,UML和设计模式,1.2 软件开发过程与开发模型,软件开发过程可分为6个阶段:计划、需求分析、设计、编码、测试、维护软件开发模型,又称为软件生存周期模型,是软件开发全部过程、活动和任务的结构框架。,8,UML和设计模式,UML和设计模式,9,1、瀑布模型(waterfall model),UML和设计模式,10,2、渐增模型(incremental model)软件开发活动是由一组有计划的、循环渐增的、不断改进的过程版本组成。,UML和设计模式,11,3.演化模型(evolutionary model)也称为原型(prototype)模型。,UML和设计模式,12,渐增模型和演化模型的区别渐增模型:需求明确,开发满足部分功能的中间版本,而后逐步的向其中增加新的功能。演化模型:需求不明确,开发原型以及中间版本的目的是获得需求,而后根据需求来开发软件。,UML和设计模式,13,4.螺旋模型(spiral model)四类活动:制定计划。风险分析。实施开发。客户评估。,1.3面向对象的基本概念,14,UML和设计模式,什么是椅子?,1.3面向对象的基本概念,1.对象客观世界中的实体抽象为问题空间中的对象。包括具体的事物、抽象的规则、计划、事件等。例如:桌子、计算机、房子、教师、学生、会议、规划等等。每个对象都有属性和操作。属性:描述对象的静态特征,例如:电视机有尺寸、颜色、音量等属性;操作:描述对象的动态特征,例如电视机可以切换频道、调节音量等操作。,15,UML和设计模式,2.对象的抽象类把具有相同特征和行为的对象归在一起就形成了类(Class)。类描述属于该类的全部对象的特征,类的每个对象是该类的一个实例。,16,UML和设计模式,电视机类的实例(对象):黑白电视机、彩色电视机、液晶电视机等等。,UML和设计模式,17,UML和设计模式,18,信息隐蔽和局部化封装封装是把相关的数据(属性)和对这些数据的操作结合在一起,组成一个独立的对象。封装的目的就是实现信息的隐蔽和局部化。外界仅通过有限的接口与对象联系。,UML和设计模式,19,4.继承与派生 继承是指子类可以自动拥有其父类的全部属性和操作。子类是父类的特殊情况。子类是由父类派生出来的,是父类的派生类。,UML和设计模式,20,5.对象之间的联系纽带消息 由于面向对象系统的封装性,各个对象是独立存在的,对象间的联系是通过消息传递来实现的。消息通过调用接收者的操作来告诉接收者要完成什么功能。而操作如何实现是由接收者决定的。,UML和设计模式,21,6.多态性多态性(Polymorphism)是指同一个消息为不同的对象接收时,可产生不同的动作或执行结果。,1.4 UML概述,UML(Unified Modeling Language),统一建模语言,UML和设计模式,22,1.4.1 UML的发展和特点,UML和设计模式,23,1.UML的诞生与发展面向对象方法论与1986年被首次提出,短短几年间,有50多种以上的面向对象方法论;不同的分析设计方法、表示法、过程、CASE工具。Booch、Rumbaugh、Jacobson三位大师提出统一建模语言UML(Unified Modeling Language),UML和设计模式,24,UML和设计模式,25,2.UML的特点统一标准:提供了标准的面向对象建模的表示法、术语等。面向对象可视化、表达能力强独立于过程 易掌握、易用,1.4.2 UML与软件开发统一过程UP,软件开发统一过程UP 即RUP(Rational Unified Process)UP是最佳的软件开发经验的总结,包括:迭代式开发(develop software interatively)、管理需求(manage requirements)、使用基于构件的系统结构(use component-based architectures)、可视化软件建模(visually model software)、验证软件质量(verify software quality)、控制软件变更(control changes to software)。,UML和设计模式,26,UML和设计模式,27,UP的二维软件开发模型,(1)迭代、渐增式的开发过程(横轴),1.开始阶段2.详细规划阶段(1)用例分类 1)将用例的优先级分为三级:2)体系结构方面的风险分为三类。3)进度风险(对实现每个用例所需工作量估算的评价)分为三级.(2)确定每次迭代的开发周期(3)将用例分配到各次迭代中3.系统构造阶段4.移交阶段,UML和设计模式,28,(2)软件开发步骤及核心支持活动(纵轴),1需求分析2系统设计3实现4测试5配置6核心支持工作(1)配置与变化管理(2)项目管理(3)环境设置,UML和设计模式,29,1.4.3 UML模型的构成,UML模型由三个种类的十种图表示:用例模型图:由用例图组成。静态模型图:由类图、对象图、包图、构件图和配置图组成。动态模型图:由顺序图、合作图、状态图和活动图组成。,UML和设计模式,30,UML软件开发过程的基本特征,以用例驱动开发过程,以体系结构为中心,以质量控制和风险管理为目标,采用反复(迭代、循环)、渐增式的螺旋上升式开发过程。,UML和设计模式,31,1.4.4 UML对软件系统体系结构的描述,UML采用5种视图从不同的角度来观察和描述软件系统的体系结构。视图:从某个角度观察到的系统就构成了一个视图。,UML和设计模式,32,UML和设计模式,33,UML的工具有很多,如:IBM的Rational Rose、Microsoft的Visio等。Rose是一种可视化的、功能强大的面向对象系统的分析和设计工具,支持软件开发的全过程。可以用于对系统建模、设计、编码、还可以对已有系统实施逆向工程,实现代码的转换。目前,具有较高的市场占有率。,UML和设计模式,34,1.4.4 支持UML的工具,1.5 设计模式概述,UML和设计模式,35,什么是设计模式?广义上讲,是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述;狭义的讲,是对特定问题的描述或解决方案。设计模式的基本要素:名称、问题、解决方案、模式效果。,本章重点,UML和设计模式,36,理解面向过程与面向对象的软件开发思想;掌握软件开发过程的6个阶段,了解几种开发模型;理解什么是UML;掌握UML软件开发过程的基本特征;掌握UML的5种视图;掌握设计模式的概念;,UML和设计模式,37,The end!,UML和设计模式,38,用例图,UML和设计模式,39,类图,UML和设计模式,40,对象图,UML和设计模式,41,顺序图,ATM机【登录】顺序图,UML和设计模式,42,合作图,UML和设计模式,43,状态图,UML和设计模式,44,活动图,描述“增加课程”的活动图,