UML及其建模工具的使用

上传人:油条 文档编号:1220816 上传时间:2017-06-03 格式:PPT 页数:217 大小:1.56MB
返回 下载 相关 举报
UML及其建模工具的使用_第1页
第1页 / 共217页
UML及其建模工具的使用_第2页
第2页 / 共217页
UML及其建模工具的使用_第3页
第3页 / 共217页
UML及其建模工具的使用_第4页
第4页 / 共217页
UML及其建模工具的使用_第5页
第5页 / 共217页
点击查看更多>>
资源描述

《UML及其建模工具的使用》由会员分享,可在线阅读,更多相关《UML及其建模工具的使用(217页珍藏版)》请在金锄头文库上搜索。

1、UML 及其建模工具的使用,2,内容提要,一、软件工程方法学二、UML的基本概念静态建模动态建模物理架构建模步骤三、Rose的使用四、三个实例五、Java代码生成六、Rational统一过程,1. 瀑布模型 (线形顺序模型),可行性研究与计划,需求分析,设计,编码,运行维护,测试,定义阶段,开发阶段,维护阶段,一.软件工程方法学,按照传统瀑布模型开发软件的特点,1.阶段间具有顺序性和依赖性。2.推迟实现的观点。3.每个阶段必须完成规定的文档; 每个阶段结束前完成文档审查, 及早改正错误。,2. 原型模型(快速原型法),建造/修改 原型,用户测试运行原型,听取用 户意见,原型范型,采用原型模型的

2、软件生存周期,分析定义系统需求,生成原型,系统设计,程序设计,编码,测试,运 行和维护,原型化,含原型化的软件生存期,7,技术发展背景1,面向对象的含义面向对象技术回顾UML的产生,8,技术发展背景2面向对象的含义,面向对象中有几个非常重要的概念:封装(encapsulation)信息/实现的隐藏(information/implementation hiding)状态保持(state retention)对象标识(object identity)消息(message)类(class)继承(inheritance)多态性(polymorphism)一般性(generality),9,技术发展背

3、景3面向对象的含义,封装,将属性和操作包装成一个单元,使得对状态的访问和修改只能通过封装提供的接口进行。信息/实现的隐藏,将某些属性或方法限制在封装内部使用,限制外部的可见性。状态保持,对象能够保持状态,可以用于后续的处理。对象标识,每个对象可以作为软件实体被标识和处理,每个对象都有一个对象标识符(object identifier OID)。消息,对象间发送请求的载体。,10,技术发展背景4面向对象的含义,类,类是对象的类型(模版),对象是类的实例。继承,子类隐式使用超类(或父类)的属性和操作。多态性,子类覆盖(overriding)父类的方法,它和重载(overloading)的区别在于重

4、载是在同一个类中定义,利用参数的不同来进行动态绑定(dynamic binding)。一般性,类的定义是参数化的或模版化的,提高了定义的通用性。,11,技术发展背景5面向对象技术回顾,面向对象技术是许多人历经多年研究积累的产物。类的概念,是面向对象的重要组成部分。Smalltalk,提出许多面向对象技术的核心概念,如:消息和继承。Dijkstra的软件正确性理念,提出了用抽象层构造软件的观点。ADT抽象数据类型,奠定面向对象的基础,支持信息的隐藏。Ada语言,提出了一般性和包两个概念。C+语言,最广泛使用的面向对象的语言。Eiffel语言,融合了许多最佳的计算机科学思想和面向对象思想。,12,

5、为什么对面向对象方法感兴趣?,面向对象方法的主要优点:自然性 追求软件系统对现实系统的直接模拟,尽量实现将现实世界中的事物直接映射到软件系统的解空间中。软件复用 可复用性(可重用性) reusebility可扩展性可管理性,13,可复用性(可重用性) 面向对象技术允许复用的不仅仅是代码, 通过面向对象技术, 我们可以复用需求、分析、设计、测试计划、用户界面以及体系结构等等, 事实上, 软件工程生存期中的每个部分都可以复用。,14,传统系统分析:面向功能 ,把系统看成 一组功能OOA: 把问题当作一组相互作用 的实体,并确定实体间关系,15,面向对象技术是一个有全新概念的开发模式,其特点是: (

6、1)方法是对软件开发过程所有阶段进 行综合考虑而得到的;(2)从生存期的一个阶段到下一个阶段 所使用的方法与技术具有高度的连 续性;(3)将OOA(分析)、OOD(设计)、OOP(实现)集成到生存期的相应阶段.,16,开发方法的组合,17,OO方法的开发过程,OO方法改进了在生存期各个阶段间的界面,因为生存期各个阶段开发出来的“部件”都是类,在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设计和实现的基本单元。,18,对象模型 对象模型表示静态的、结构的系统数据的性质。 对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构。 OO方法强调围绕对象而不是功能来

7、构造系统。,19,对象(object),现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。 对象具有的含义: 在现实世界中:是客观世界中的一个实体 在面向对象程序中: 表达成计算机可理解、可操纵、具有一定属性和行为的对象 在计算机世界中: 是一个可标识的存储区域,20,面向对象方法是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。,面向对象=对象 + 类 + 继承 + 消息通信,面向对象的主要特征:封装性 (Encapsulation) 继承性 (Inheritance) 多态性 (Polymorphism),21,类(class),具有共同属性

8、和行为的对象的抽象类与对象的关系类是对象的抽象对象是类的实例,类,对象,22,对象、实体与类,对象,实体,类,抽象数据类,计算机世界,现实世界,计算机逻辑的实现,影射,抽象,实例化,抽象,概念世界,23,封装,封装是软件开发方法的重要原则,有两个涵义:把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(对象)。尽可能隐蔽对象的内部细节(信息隐蔽),24,传统方法数据与过程是分离的,过程1,输入,输出,过程2,过程3,数据实体,属于该对象的数据,对象,处理数据的方法,消息,消息,对象把数据和处理数据的方法封状成一个单元,25,传统方法和面向对象方法的比较,传统方法系统是过程的集合过

9、程与数据实体交互过程接受输入并产生输出,面向对象方法系统是交互对象的集合对象与人或其它对象交互对象发送与响应消息,26,继承 (继承性inheritance),继承性是父类和子类之间共享数据和方法的机制继承性具有传递性继承性包括单继承和多重继承,子类,继承部分,增加部分,父类,共性部分,27,继承性作用,使软件系统具有开放性 更好地进行抽象与分类 增强代码的重用率,28,多态(多态性),不同的对象收到同一消息可产生完全 不同的结果,这一现象叫做多态多态的效果 用户发送一个通用的消息,而实现的细节则由接收对象自行决定实现机制:重载(override),29,多态性的作用,增强了操作的透明性,可理

10、解性和可扩展性 增强了软件的灵活性和重用性,30,消息(message),消息 对象之间相互请求或相互协作的途径,是要求某个对象执行某个功能操作的规格说明消息内容 通常包含接收方及请求接收方完成的功能信息发送方 发出消息,请求接收方响应接收方 收到消息后,经过解释,激活方法,予以响应,31,面向对象的软件工程对传统软件工程的改进:1、快速原型法(试用反馈修改,多次反复)2、面向对象的软件工程:面向对象的方法(基本概念:对象、类、消息、继承、多态性、封装)优点:思维一致、稳定性好、可重用性好、可维护性好,32,两种技术的比较1、这两种途径并不是相互排斥的,相反,它们是相互促进相互补充的。工作要素

11、:确定“做什么”、确定“怎样做”,“实现”,“测试”2、传统的生命周期方法学强调:需求分析的重要性、强调软件文档的重要性,适用于需求模糊或者需求不稳定的系统。3、面向对象方法学:工作重点在分析和设计阶段,阶段的划分是十分模糊的,通常在分析、设计和实现等阶段多次迭代。既适用于线性的瀑布开发模型,也适用于快速原型法。,33,软件系统的建模及建模原则,计算机软件是“产品”,因为它具有产品特征:1)软件产品为用户提供功能;2)开发者和使用者是脱离的;3)软件产品具有质量的概念;4)软件产品具备完备的用户手册技术文档;5)软件产品的生产过程具有工业化生产的特点;6)开发团队协同工作,软件产品需要使用工具

12、,技术可重用,质量必须稳定,不应在不同版本的软件之间产生质量不稳定。,34,在解决问题之前必须首先理解所要解决的问题。对问题理解得越透彻,就越容易解决它。为了更好地理解问题,人们常常采用建立问题模型的方法。所谓模型,就是为了理解事物而对事物作出的一种抽象。,35,软件建模基本目的有四点:规范(specifying)、可视化(visualizing) 、建造(constructing)和建档(documentation)。(1)规范。在分析和设计阶段为软件系统的各个组成部分规定其功能、结构和对外接口。(2)可视化。有助于软件规范的表达和交流。,36,(3)建造(生成源代码)。完整定义的软件规范可

13、以实现通过模型向源代码的映射,支持软件系统的建造。(4) 建档。完整定义的软件模型是反映软件系统的结构和实现的重要技术资料,可以作为技术档案保存,以便后续产品或相关产品能有效地重用其中的成熟技术。,37,2.建模的原则(1)准确的原则模型必须准确地反映软件系统的真实情况。模型必须准确,意味着在软件开发的整个周期内模型必须和产品始终保持一致。(2)分层的原则在建模的过程中,必须有不同的模型,以不同的抽象程度,反映系统的不同侧面。在软件构筑的不同阶段,不同的开发人员如:投资者、管理者、设计者、程序员、测试者和使用者看待软件的侧重面有所不同。因此,软件系统的建模需要不同的模型以反映系统的不同侧面。如

14、,一类模型描绘系统的外部边界和行为,另一类模型描绘系统的内部逻辑关系。,38,(3)分治的原则不可能单独用一个模型来反映整个系统的任何侧面。软件系统是复杂的,对于软件模型的任意一个侧面不可能用一个模型来反映所有内容,需要把问题分解为不同的子模型,分别处理这些模型,相对独立但又互相联系,综合起来构成了此侧面的一个完整的模型。(4)标准的原则模型必须在某种程度上是通用的。建模的基本目的是交流,一个开发队伍内部的交流,同一软件的不同时期的版本的开发队伍的交流,不同软件的开发队伍之间的交流,以实现最大程度的软件复用。交流需要语言,语言是通用的、标准的。,39,二、统一的建模语言方法 由Rumbaugh

15、 、 Booch 、 Jacobson 提出的统一建模语言 (Unify Modeing Language简称UML),UML是一种定义良好,易于表达,功能强大且普遍实用的建模语言。,40,UML的产生,1988年到1992年是面向对象方法学蓬勃发展的时期,人们从各自的经历和软件开发的经验提出了各种面向对象的开发方法,代表的有:Sally Shlaer 和 Steve Mellor以信息模型化方法作为基础,并为目标系统增设了状态模型和过程模型; Peter Coad 和 Ed Yourdon则在信息模型化、面向对象的程序设计语言和基于知识的系统的基础上,建立了他们的OOA和OOD,主要工具是类

16、与对象图、对象状态图和服务图;HP公司的Fusion开发方法。,41,UML的产生,Wirfs-Brock的职责驱动设计(Responsibility-Driven Design),也称类-职责-协作Class-Responsibility-Collaboration (CRC) cards,用类所承担的责任来描述系统,利用责任把封装的概念带到分析与设计活动中去;Grady Booch在Rational软件公司开发Ada系统作了许多构件(Component),并以此由底向上构筑大型软件系统,即OOD方法;Jim Rumbaugh在通用电子(General Electric)领导一个研究小组,提出了对象建模技术(OMT)方法,通过面向对象的三种模型:对象模型、动态模型和功能模型,从不同角度对系统进行描述;,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号