UML课件(精华版)

上传人:jiups****uk12 文档编号:46004580 上传时间:2018-06-20 格式:PPT 页数:434 大小:7.79MB
返回 下载 相关 举报
UML课件(精华版)_第1页
第1页 / 共434页
UML课件(精华版)_第2页
第2页 / 共434页
UML课件(精华版)_第3页
第3页 / 共434页
UML课件(精华版)_第4页
第4页 / 共434页
UML课件(精华版)_第5页
第5页 / 共434页
点击查看更多>>
资源描述

《UML课件(精华版)》由会员分享,可在线阅读,更多相关《UML课件(精华版)(434页珍藏版)》请在金锄头文库上搜索。

1、n面向对象方法发展的产物 (20世纪80年代)n面向对象的建模语言(1994年 50多种)n方法大战 统一n面向对象的分析与设计 软件开发全过程Requirements CaptureSystem Analysis and DesignImplementationTestingMaintenanceUML(Unified Modeling Language,统一建模语言)n教学目的掌握UML语言的基本知识常用建模技术使用UML进行面向对象的分析与设计的能力 n学习方法自主学习重视上机实践课程说明课程说明n按时到课n案例教学n实验课、实验报告n考核: 期末笔试60 (实验+平时) 40教材和参考

2、书nUML系统建模与分析设计,刁成嘉主编,机械工业出版社 ,2007 .7nUML参考手册(第2版),美 :JAMES RUMBAUGH, IVAR JACOBSON,GRADY BOOCH著,UML China译 ,机械工业出版社,2005nUML和模式应用(第3版), 美 : CRAIG LARMAN著 , 李洋等译,机械工业出版社,2006 nUML基础、案例与应用(第3版),美 : JOSEPH SCHMULLER著 ,李虎等译 ,人民邮电出版社,2004第1章 面向对象技术概述重点: 软件工程相关概念 面向对象相关概念1.1 软件危机与软件工程n软件发展的几个时期1946(第一台计算

3、机)1960 “软件”雏形是简单的程序20世纪60年代末到70年代初 “软件”成为产品至今 软件工程时期n软件危机 软件危机指的是在计算机软件的开发和维护过程中所遇到 的一系列严重问题。 如何开发软件,以满足不断增长的、日趋复杂的要求如何维护规模不断庞大的软件产品n软件工程,由北大西洋公约组织NATO于 1968年提出o软件工程是指导计算机软件开发和维护的一门工程学科 。o采用工程的概念、原理、技术和方法来开发与维护软件 ,把经过时间考验而证明正确的管理技术和当前能够得 到的最好的技术方法结合起来,以经济地开发出高质量 的软件并有效地维护它,这就是软件工程。1.1 软件危机与软件工程n软件开发

4、的现状软件工程学科不断发展软件危机仍然存在中小型软件开发较为成熟,大型软件存在问题n常见软件开发方法瀑布模型增量模型原型模型 螺旋模型 (风险驱动)1.1 软件危机与软件工程1.2 软件开发的基本认识n大型软件系统的特点开发代价高、时间长,参与人员多,软件生命周期长。n软件系统开发的两个方面软件开发过程软件开发中资源的协调和管理1.2 软件开发的基本认识n软件是逻辑部件,而不是物理部件,软件 产品与硬件产品的区别表现形式不同 (看不见 ,摸不着,长期运行看效果)生产方式不同 (人与人的沟通,容易有疏忽与失误)产品需求不同 (软件不允许有误差)维护方式不同 (出现bug要调整,进而引发新bug)

5、1.3 软件固有的复杂性n软件开发的复杂性与困难性是由于软件的特 点造成的,软件的复杂性是固有的。n软件复杂性的原因跟计算机体系结构相关(冯.诺依曼 硬件简单/软件复杂)软件开发是智力活动,无法形成统一开发模式软件系统的需求经常改变软件元素之间的关系不确定软件依赖硬件环境1.4 软件工程的一般原则n分解,“分而治之”或“各个击破”,降低复杂性n抽象,抽取系统本质特征,忽略非基本特征 (Miller神奇的数字7)过程抽象数据抽象n模块化,基本要求是高内聚、低耦合n信息隐藏,也称封装 (电话)n复用 软件自动化 软件构件组装n结构化的开发方法SA、SD、SP特点:面向数据流 DFD软件结构图SC优

6、化划分模块内部算法和流程初审领料单已审核领料单 复审发货通知 发货nJackson方法(不常用)面向数据结构 (例如,学生信息管理系统,处理各表的输入输出)n面向对象的开发方法OOA、OOD、OOP1.5 几种基本的软件开发方法1.6 面向对象的发展历程n196070年代COBOL(商用语言,银行)、FORTRAN(工程计算)、C(系统开发)结构化分析和设计技术n1980年90年代初期Smalltalk、Ada、C+、Visual Basic早期面向对象生成(代码)方法n90年代中晚期JavaUMLUnified Process1.7 面向对象技术的优点n面向对象技术的优点稳定性较高,需求的较

7、小改变不会影响软件的结构开发的系统更易于理解, 贴近现实世界(功能为基础PK对象为基础 )可靠性高复用结构化方法对问题进行功能分解,强调软件的结构按照功能来组 织,一旦功能改变,软件结构就不稳定OO方法按照问题域分解,能够更直接地描述现实世界各个开发阶段之间过渡平滑 OOA与OOD阶段无鸿沟1.8 面向对象领域的基本概念nOO技术领域存在一些基本术语和概念,需 要掌握和理解。1.8.1 对象和实例n对象(Object) 有意义的一切事物都是对象它是系统用来描述客观事物的一个实体,是构成系统 的一个基本单位。对象包括:属性(静态特征)和方法(动态特征)对象之间对过消息进行通信。n实例(Insta

8、nce)它与对象的概念很类似,但其含义更广泛一些。1.8.2 类n类(Class)它是具有相同属性和方法的一 组对象的集合为某类对象提供统一的描述类是静态概念,对象是动态的对象是类的实例1.8.3 封装n封装(Encapsulation)就是把对象的属性和方法结合成一个独立的系统单位,并 尽可能隐蔽对象的内部细节。封装使对象具有2个部分:接口部分和实现部分 (硬盘)n封装提供2种保护保护对象 防止直接访问对象内部细节保护客户 防止对象实现部分的变化影响客户对象1.8.4 继承n继承(Inheritance)它使子类可以继承父类的属性和方法继承增加了软件复用的机会n单继承与多继承override

9、与overloadn覆盖(override)在子类中增加或重新定义所继承 的属性或方法。public class AString name;public String getValue()return “Value is:” + name; public class B extends A String address;public String getValue () return “Value is:” + address; n重载(overload)同一个类中有多个同名方法, 但它们在操作数或操作数类型上有区别。系统根 据实参引用不同方法。1.8.5 多态n多态(polymorphism

10、)在OO技术中,多态指使一个实体在不同上下文条件下 具有不同意义或用法的能力n与多态有关的概念继承覆盖动态绑定向上转型(指派)圆柱体 锥体 立方体1.8.6 消息n消息(Message)是指向对象发出的服务请求对象直接用消息的方式传递信息,而不是参数包括:提供服务的对象的标识、服务标识、输入信息和 回答信息等n对象间的消息传递是OO方法的基本原则n消息包括同步消息,请求者需要等待响应者返回异步消息,请求者不需要等待响应者返回,发出消息后 可以继续自己的后续工作(和函数调用有本质区别)1.9 面向对象分析与设计n分析模型Analysis models描述应用领域n设计模型Design model

11、s描述软件系统 如structure chartnOO开发方法中分析模型和设计模型之间使 用相同的模型和建模概念,二者之间映射方 便,平滑过渡,防止不一致。nOOA用面向对象方法分析问题域,建立基于对象、消息的业务模型, 形成对客观世界和业务本身的正确认识。生成业务对象的动、静态模型和抽象类 UML业务模型、用例图 以及初步的交互图。nOOD针对OOA给出的问题域模型,用面向对象方法设计出软件的基础 架构(概要设计)和完整的类结构(详细设计),以完成业务功 能。最后编码。生成对象类的动、静态模型(解决域) UML类图、交互图(顺 序图和协作图)、状态图、活动图以及实施阶段的组件图和部署 图。1

12、.9 面向对象分析与设计小结n软件工程学科发展,但软件危机依然存在;n软件固有的复杂性决定了这一局面;n控制的基本原则有:分解、抽象、模块化、 信息隐藏、复用;nOO方法充分体现了上述原则;nOO方法是解决软件危机的有效途径之一。第2章 UML概述 2.1 为什么需要UML计算机图形学 名言:一幅图顶得上一千个字2.1.1 建模的意义n模型是对现实的简化,建模是为了更好地 理解系统。模型帮助我们按照实际情况或需求对系统可视化;(掌 握不了文字,画幅画代替)模型允许我们详细说明系统的结构、行为;模型给出了一个构造系统的模板;模型对我们作出的决策进行文档化。(先有文档,再 有代码)2.1.2 建模

13、的原理n选择创建什么模型对如何动手解决问题和如何形 成解决方案有意义深远的影响。三只小猪盖房子 摩天大厦n每一种模型可以在不同的精度级别上表示。n最好的模型可以让你根据观察的角色及原因选择 它的详细程度。n对每个系统最好用一组几乎独立的模型去处理。飞机模型2.1.3 选择UMLn使用UML建立对象模型来映射现实世界UML实现业务域到计算机世界的完整、有序的映射2.1.3 选择UMLnUMLUnified Modeling LanguagenUnified组合了当前最好的面向对象软件建模方法Grady Booch,James Rumbaugh,Ivar Jacobson, UML三位主要贡献者n

14、1. OMT(James Rumbaugh)n2. The Booch method(Grady Booch )n3. OOSE(Ivar Jacobson )nModeling用于表达现实的简化视图,以便于面向对象软件系统 的设计与实现nLanguageUML主要是遵循精确语法的图形语言(还包括规则 约 束 扩展机制)2.1.3 选择UML2.1.3 选择UMLnUML目标:提供全面的建模语言(为所有 事情所有人),便于开发组所有成员交流 与通信。2.1.3 选择UMLnUnified Modeling Language其它方法Booch91OMT-1OOSEBooch93OMT-2Unif

15、ied Method 0.8UML 0.9 class HelloWorld extends java.applet.Applet public void paint(Graphics g)g.drawString(“Hello, World!”, 10, 10); HelloWorld类图 1类注释HelloWorld类图 2继承关系依赖关系HelloWorld构件图小结n理解建模的意义,在系统分析和设计时, UML作用非常重要。n了解UML发展历史,最初由三位专家设计, UML的出现结束了OO领域中的方法大战。n理解UML的特点n了解UML的组成n理解UML的体系结构第3章 用例图 3.1

16、 组成n用例(use case)n活动者(角色,actor)n关系(relationship)n还可以有包、注解等3.1.1 用例nUse Case系统、子系统或类与外部参与者(actor)交互的动作 序列的说明,包括各种序列及出错序列。简单理解为用例就是系统的功能。用例分析可以认为是对系统功能的分解。3.1.1 用例n怎样确定用例的粒度?(用例规模的大小)用例的粒度可大可小,一般一个系统控制在20个左右 ,但没有严格规定用例是系统级的、抽象的描述,不是细化的(考虑的 是“做什么what”,而不是“怎样做how”)对复杂的系统可以划分为若干子系统处理3.1.1 用例n怎样识别用例活动者希望系统执行什么任务?活动者

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

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

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