您好,欢迎访问三七文档
面向对象方法发展的产物(20世纪80年代)面向对象的建模语言(1994年50多种)方法大战统一面向对象的分析与设计软件开发全过程①RequirementsCapture②SystemAnalysisandDesign③Implementation④Testing⑤MaintenanceUML(UnifiedModelingLanguage,统一建模语言)教学目的掌握UML语言的基本知识常用建模技术使用UML进行面向对象的分析与设计的能力学习方法自主学习重视上机实践课程说明课程说明按时到课案例教学实验课、实验报告考核:期末笔试60%(实验+平时)40%教材和参考书UML系统建模与分析设计,刁成嘉主编,机械工业出版社,2007.7UML参考手册(第2版),[美]:JAMESRUMBAUGH,IVARJACOBSON,GRADYBOOCH著,UMLChina译,机械工业出版社,2005UML和模式应用(第3版),[美]:CRAIGLARMAN著,李洋等译,机械工业出版社,2006UML基础、案例与应用(第3版),[美]:JOSEPHSCHMULLER著,李虎等译,人民邮电出版社,2004第1章面向对象技术概述重点:软件工程相关概念面向对象相关概念1.1软件危机与软件工程软件发展的几个时期1946(第一台计算机)~1960“软件”雏形是简单的程序20世纪60年代末到70年代初“软件”成为产品至今软件工程时期软件危机软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题。如何开发软件,以满足不断增长的、日趋复杂的要求如何维护规模不断庞大的软件产品软件工程,由北大西洋公约组织NATO于1968年提出软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。1.1软件危机与软件工程软件开发的现状软件工程学科不断发展软件危机仍然存在中小型软件开发较为成熟,大型软件存在问题常见软件开发方法瀑布模型增量模型原型模型螺旋模型(风险驱动)1.1软件危机与软件工程1.2软件开发的基本认识大型软件系统的特点开发代价高、时间长,参与人员多,软件生命周期长。软件系统开发的两个方面软件开发过程软件开发中资源的协调和管理1.2软件开发的基本认识软件是逻辑部件,而不是物理部件,软件产品与硬件产品的区别表现形式不同(看不见,摸不着,长期运行看效果)生产方式不同(人与人的沟通,容易有疏忽与失误)产品需求不同(软件不允许有误差)维护方式不同(出现bug要调整,进而引发新bug)1.3软件固有的复杂性软件开发的复杂性与困难性是由于软件的特点造成的,软件的复杂性是固有的。软件复杂性的原因跟计算机体系结构相关(冯.诺依曼硬件简单/软件复杂)软件开发是智力活动,无法形成统一开发模式软件系统的需求经常改变软件元素之间的关系不确定软件依赖硬件环境1.4软件工程的一般原则分解,“分而治之”或“各个击破”,降低复杂性抽象,抽取系统本质特征,忽略非基本特征(Miller神奇的数字7)过程抽象数据抽象模块化,基本要求是高内聚、低耦合信息隐藏,也称封装(电话)复用软件自动化软件构件组装结构化的开发方法SA、SD、SP特点:面向数据流DFD软件结构图SC优化划分模块内部算法和流程初审领料单已审核领料单复审发货通知发货Jackson方法(不常用)面向数据结构(例如,学生信息管理系统,处理各表的输入输出)面向对象的开发方法OOA、OOD、OOP1.5几种基本的软件开发方法1.6面向对象的发展历程1960-70年代COBOL(商用语言,银行)、FORTRAN(工程计算)、C(系统开发)结构化分析和设计技术1980年-90年代初期Smalltalk、Ada、C++、VisualBasic早期面向对象生成(代码)方法90年代中晚期JavaUMLUnifiedProcess1.7面向对象技术的优点面向对象技术的优点稳定性较高,需求的较小改变不会影响软件的结构开发的系统更易于理解,贴近现实世界(功能为基础PK对象为基础)可靠性高复用结构化方法对问题进行功能分解,强调软件的结构按照功能来组织,一旦功能改变,软件结构就不稳定OO方法按照问题域分解,能够更直接地描述现实世界各个开发阶段之间过渡平滑OOA与OOD阶段无鸿沟1.8面向对象领域的基本概念OO技术领域存在一些基本术语和概念,需要掌握和理解。1.8.1对象和实例对象(Object)有意义的一切事物都是对象它是系统用来描述客观事物的一个实体,是构成系统的一个基本单位。对象包括:属性(静态特征)和方法(动态特征)对象之间对过消息进行通信。实例(Instance)它与对象的概念很类似,但其含义更广泛一些。1.8.2类类(Class)它是具有相同属性和方法的一组对象的集合为某类对象提供统一的描述类是静态概念,对象是动态的对象是类的实例1.8.3封装封装(Encapsulation)就是把对象的属性和方法结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。封装使对象具有2个部分:接口部分和实现部分(硬盘)封装提供2种保护保护对象防止直接访问对象内部细节保护客户防止对象实现部分的变化影响客户对象1.8.4继承继承(Inheritance)它使子类可以继承父类的属性和方法继承增加了软件复用的机会单继承与多继承override与overload覆盖(override)在子类中增加或重新定义所继承的属性或方法。publicclassA{Stringname;publicStringgetValue(){return“Valueis:”+name;}}publicclassBextendsA{Stringaddress;publicStringgetValue(){return“Valueis:”+address;}}重载(overload)同一个类中有多个同名方法,但它们在操作数或操作数类型上有区别。系统根据实参引用不同方法。1.8.5多态多态(polymorphism)在OO技术中,多态指使一个实体在不同上下文条件下具有不同意义或用法的能力与多态有关的概念继承覆盖动态绑定向上转型(指派)圆柱体锥体立方体1.8.6消息消息(Message)是指向对象发出的服务请求对象直接用消息的方式传递信息,而不是参数包括:提供服务的对象的标识、服务标识、输入信息和回答信息等对象间的消息传递是OO方法的基本原则消息包括同步消息,请求者需要等待响应者返回异步消息,请求者不需要等待响应者返回,发出消息后可以继续自己的后续工作(和函数调用有本质区别)1.9面向对象分析与设计分析模型Analysismodels描述应用领域设计模型Designmodels描述软件系统如structurechartOO开发方法中分析模型和设计模型之间使用相同的模型和建模概念,二者之间映射方便,平滑过渡,防止不一致。OOA用面向对象方法分析问题域,建立基于对象、消息的业务模型,形成对客观世界和业务本身的正确认识。生成业务对象的动、静态模型和抽象类UML业务模型、用例图以及初步的交互图。OOD针对OOA给出的问题域模型,用面向对象方法设计出软件的基础架构(概要设计)和完整的类结构(详细设计),以完成业务功能。最后编码。生成对象类的动、静态模型(解决域)UML类图、交互图(顺序图和协作图)、状态图、活动图以及实施阶段的组件图和部署图。1.9面向对象分析与设计小结软件工程学科发展,但软件危机依然存在;软件固有的复杂性决定了这一局面;控制的基本原则有:分解、抽象、模块化、信息隐藏、复用;OO方法充分体现了上述原则;OO方法是解决软件危机的有效途径之一。第2章UML概述2.1为什么需要UML计算机图形学名言:一幅图顶得上一千个字2.1.1建模的意义模型是对现实的简化,建模是为了更好地理解系统。模型帮助我们按照实际情况或需求对系统可视化;(掌握不了文字,画幅画代替)模型允许我们详细说明系统的结构、行为;模型给出了一个构造系统的模板;模型对我们作出的决策进行文档化。(先有文档,再有代码)2.1.2建模的原理选择创建什么模型对如何动手解决问题和如何形成解决方案有意义深远的影响。三只小猪盖房子摩天大厦每一种模型可以在不同的精度级别上表示。最好的模型可以让你根据观察的角色及原因选择它的详细程度。对每个系统最好用一组几乎独立的模型去处理。飞机模型2.1.3选择UML使用UML建立对象模型来映射现实世界UML实现业务域到计算机世界的完整、有序的映射2.1.3选择UMLUML--UnifiedModelingLanguageUnified组合了当前最好的面向对象软件建模方法GradyBooch,JamesRumbaugh,IvarJacobson,UML三位主要贡献者1.OMT(JamesRumbaugh)2.TheBoochmethod(GradyBooch)3.OOSE(IvarJacobson)Modeling用于表达现实的简化视图,以便于面向对象软件系统的设计与实现LanguageUML主要是遵循精确语法的图形语言(还包括规则约束扩展机制)2.1.3选择UML2.1.3选择UMLUML目标:提供全面的建模语言(为所有事情所有人),便于开发组所有成员交流与通信。2.1.3选择UMLUnifiedModelingLanguage其它方法Booch'91OMT-1OOSEBooch'93OMT-2UnifiedMethod0.8UML0.9&0.91UML1.0UML1.1UML1.3UML1.4(使用非常多的一个版本)UML1.5UML2.0UML合作伙伴意见2.2UML的发展历史9596.6和96.1097.197.999.601.903.3最新OMGP67的特点统一的标准,已经被OMG接受为标准建模语言面向对象,支持面向对象开发可视化,表示能力强独立于开发过程,可以适用于不同软件过程概念明确,表示简洁,结构清晰,容易学习掌握理解UML的特点UML是一种语言遵循特定的规则允许创建各种模型并不告诉设计者需要创建哪些模型,自己不断总结探索并不提供开发过程,即:什么时候该创建什么图,这个模型怎么用,UML并不给出指导,由UnifiedProcess给出,UnifiedProcess不是本课程重点。软件工程三要素:方法(UML)、工具(rose)、过程(UnifiedProcess)UML是可视化语言UML是图形化语言图形便于交流(一幅图抵上千文字)理解UML的特点UML是用于构造系统或理解系统的语言UML既支持正向工程,又支持反向工程UML是文档化语言将所构造的系统用图形方式记录下来便于新程序员跟进开发产品新版本时很有用2.4UML的构成基本构造块规则公共机制2.4.1基本构造块事物(元素)thing模型中最具代表性成分的抽象关系relationship事物之间的联系图diagram相关事物的集合事物(Thing)P68结构事物(structuralthing)类(class)接口(interface)协作(collaboration)用例(usecase)主动类(activeclass)构件(component)节点(node)事物(Thing)行为事物(BehavioralThing)交互(interaction)状态机(statemachine)事物(Thing)分组事物(G
本文标题:UML课件(精华)
链接地址:https://www.777doc.com/doc-4253304 .html