UML第三讲面向对象技术概述

上传人:xuey****n398 文档编号:245101284 上传时间:2024-10-07 格式:PPT 页数:83 大小:593KB
返回 下载 相关 举报
UML第三讲面向对象技术概述_第1页
第1页 / 共83页
UML第三讲面向对象技术概述_第2页
第2页 / 共83页
UML第三讲面向对象技术概述_第3页
第3页 / 共83页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,北航工程系统工程系UML与嵌入式系统分析设计,第三讲面向对象技术概述(OOA、OOD&OOP),1,主要参考书,面向对象分析设计与编程 吴炜煜 编著,清华大学出版社 2000.4,面向对象的系统设计 邵维忠 杨芙清著,清华大学出版社 2003.2,软件工程教程,张敬、宋广军、赵硕、王睿编著,北京航空航天大学出版社 2003.7,2,作业,试述面向对象技术发展的动因,试述面向对象技术的优势,试述面向对象系统的要素,试述软件开发原理的变革趋势,UML与面向对象技术,以上任选一题,也可以自选题目。,内容不少于1000字,2周内交。,3,作业要求,格式:,题目,作者,摘要,内容,引言、问题、方法、结论,参考文献,提交地址:,文件名:姓名+第几次作业,4,主要内容,面向对象的基本概念,2,面向对象的特点,3,面向对象的分析(OOA),4,引言,1,面向对象的设计(OOD),5,6,面向对象的编程(OOP),一些著名的OO方法简介,5,60年代 70年代 80年代 90年代 21世纪,编程技巧,软件危机,程序设计方法,软件工程,面向对象技术,过程工程,ISO9000/CMM,PSP/TSP,?,硬件发展,引言,6,软件工程努力的方向,一是从管理角度,希望实现软件开发过程的工程化。,二是侧重与对软件开发过程中分析、设计的方法的研究。这方面的第一个重要成果就是在70年代风靡一时的结构化开发方法,即PO(面向过程的开发或结构化方法),软件开发的过程就是人们使用各种计算机语言将人们关心的现实世界映射到计算机世界的过程。,PO是人们在用计算机世界来表达现实世界时,追求过程化、模块化、封装以及更高的抽象的结果。,7,控制软件复杂性的基本方法,分解,抽象,模块化,信息隐蔽,8,客观事物(问题域),自然语言描述(建立模型),计算机语言描述,?,机器语言描述,汇编语言描述,非OO高级编程语言描述,OO高级编程语言描述,计算机执行求解,XO(X?-Oriented) 更高的抽象层次,OO(对象、类),PO(过程、函数、变量),变量、运算、表达式、语句,字节(4位、8位、16位、32位、64位),二进制串 最低的抽象层次,软件工程的发展历史就是人们不断追求更高的抽象、封装和模块化的历史,语言的鸿沟,9,结构化方法,结构化方法包括结构化分析、结构化系统设计、结构化程序设计、结构化编程方法、结构化测试等等。,结构化方法的本质是功能分解,即从目标系统整体功能着手,自顶向下不断把复杂功能分解为子功能,直到每个子功能都容易实现为止。,与结构化方法相对应的模型有:改进的瀑布模型、增量式模型、快速原形等等。,结构化方法常用工具:数据流图( DFD )、数据字典、结构化语言、决策表、决策树、系统结构图(system structured diagram)等。,10,结构化方法的实例,1971年IBM公司在“纽约时报信息库管理系统”的设计中成功地使用了结构化程序设计技术,该系统有8.3万行高级语言源程序。,美国宇航局“空间实验室飞行模拟系统”成功地使用了结构化程序设计技术,该系统有40万行高级语言源程序。,以上两个系统的开发工作都按时并且高质量地完成了,软件的生产率比以前提高了一倍,结构化程序设计技术成功地经受了实践的检验。,11,结构化方法存在的问题,功能与数据分离的软件设计结构与人类的现实世界环境很不一样,和人的自然思维不一致。因此对现实世界的认识与编程之间存在着一道很深的理解上的鸿沟。,系统是围绕着如何实现一定的功能来进行的。当系统功能易变,需要常常修改时,修改极为困难。,12,结构化方法存在的问题(续1),在以控制关系为重要特性的系统,当实际的控制信息来源于分散的各个模块时,由于在“好的模块结构”中的模块间的控制作用只能通过上下之间的调用关系来进行,造成信息传递路径过长,效率低,易受干扰,甚至出错。如果允许模块间为进行控制而直接通信,结果是系统总体结构混乱,也将难于维护,难于控制,出错概率高。,13,结构化方法存在的问题(续2),用这种方法开发出来的系统往往难以维护,主要因为所有的函数都必须知道数据结构。虽然许多数据类型的数据结构差别细致,但函数也必须分别处理,以满足数据结构的要求。结果使程序变得非常难读。,自顶向下功能分解的分析方法极大地限制了软件的可重用性,导致对同样对象的大量重复性工作,大大降低了开发人员的生产率,减少了他们用于创造性劳动的时间。,14,用户界面层,业务逻辑层,数据层,数据库,XX飞机可靠性监控系统软件,系,统,管,理,可,靠,性,信,息,收,集,系,统,可,靠,性,信,息,统,计,分,析,系,统,可,靠,性,趋,势,分,析,及,警,戒,系,统,报,表,系,统,帮,助,系,统,示例,15,飞机,基本信息表,飞机,飞行信息表,飞机,月报信息表,飞机,非日常检查,信息表,发动机,基本信息表,发动机,工作信息表,发动机,状态参数信息表,发动机,拆换信息表,部件,基本信息表,部件,拆换,信息表,重大,故障,信息表,发动机,空中停车信息表,ATA代码表,示例,16,示例,17,软件开发原理的变革,20世纪60年代开始的规范化设计;,20世纪70年代末开始的结构化系统分析和程序设计;,20世纪80年代开始的面向对象的技术。,18,维特跟斯坦(Wittgenstein)与OO,维特跟斯坦在逻辑哲学论一书中提出了如下思想:,世界可以分解为事实,事实是由原子事实组成的,一个原子事实是多个对象的组合,对象是简单的(基本的),对象形成了世界的基础,19,图书馆信息系统,面向对象的分析/设计,结构化的分析/设计,按照对象或概念分解,按照功能或过程分解,Catalog,Librarian,Book,Library,System,Record Loans,Add Resources,Report Fines,面向对象的与面向功能的问题分解,20,面向对象技术产生,尽管传统的生命周期方法学曾经给软件产业带来了巨大的进步,部分地缓解了“软件危机”,但是,这种方法学仍然存在比较明显的缺点,不能胜任所有的软件开发任务。,当代软件工程的发展正面临着从传统的结构化范型到面向对象范型的转移,这需要有新的语言、新的系统和新的方法学的支持,面向对象技术就是这种新范型的核心技术。,21,面向对象语言的贡献,面向对象语言对程序设计的主要影响并不在于它的语法特征,而在于它所提供的自然问题求解的机制和结构。,面向对象的编程(OOP)将计算过程看作是分类过程加状态变换过程,即将系统逐步划分为相互联系的多个对象并建立这些对象的联系,以引发状态转换,实现系统计算任务。,要理解面向对象语言,应首先理解面向对象技术的基本原理和基本思想,然后再学习此类语言。实际上,如果我们能够深刻理解面向对象技术的原理和方法,即使不用面向对象的语言或系统,也能实现OOP。,面向对象语言所起的作用就是给用户提供一些支持面向对象程序设计的环境和管理工具,特别重要的是提供了对象概念和特性。,22,面向对象语言的三个里程碑,创始20世纪60年代末,挪威奥斯陆大学和挪威计算中心共同研制的的Simula67语言。,发展1980年美国Xerox Palo Alto研究中心推出了Smalltalk语言,有人将Smalltalk称为第一个面向对象语言。,普及C+、Java,23,面向对象技术的应用前景,面向对象技术出现于70年代末期,它具有强大的生命力。在美国其应用前景预测如下:,1991年夏3% 4%,1993年末9% 12%,1995年夏15% 20%,到1996年为止 40%,到1998年为止 60%,到2000年为止 80%,据统计,从1989年到1994面向对象建模语言的数量从不到10种增加到50多种。,24,面向对象技术的优势,面向对象程序设计是一种围绕真实世界的概念来组织模型的程序设计方法,它采用对象来描述问题空间的实体,符合人类认识客观世界的规律。,25,人类认识现实世界的特点,人类在认识和理解现实世界的过程中普遍运用着三个构造法则:,(1)区分对象及其属性。例如,区分一棵数和树的大小或空间位置关系。,(2)区分整体对象及其组成部分。例如,区分一棵树和树枝。,(3)不同对象类的形成及区分。例如,所有树的类和所有石头的类的形成和区分。, 摘自大英百科全书“分类学理论”,26,面向对象技术的优势,(2)面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务(功能)为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。,(3),27,什么是面向对象?,Coad和Yourdon为此下了一个定义:,面向对象 = 对象 + 类 + 继承 + 通信,如果一个软件系统使用这4个概念设计和实现,则认为这个软件系统是面向对象的。,28,面向对象的基本概念对象(Object),什么是“对象” ?,对象是行动或思考时作为目标的人或事物, 现代汉语词典,Something mental or physical toward which thought,beeling or action is directed., Merrian Websters Collegiate Dictionary,在思维科学中,“对象”是客观世界中具有可区分性的、能够唯一标识的逻辑单元。对象所代表的本体可能是一个物理存在,也可能是一个概念存在。,29,对象(Object),从面向对象的观点来看,现实世界是由各式各样独立的、异步的、并发的实体对象所组成,每个对象都有各自的内部状态和运动规律,不同对象之间或某类对象之间的相互联系和作用,就构成了各式不同的系统。,Everything is an object !,30,对象(Object),作为计算机模拟真实世界的抽象,一个对象就是一个实际问题域、一个物理的实体或逻辑的实体。,在计算机程序中,“对象”可视为一个“基本程序模块”,它包含了数据结构和所提供的相关操作功能。,31,对象的要素,属性:描述对象的数据,可以是系统或用户定义的数据类型,也可以是一个抽象的数据类型。对象属性值的集合称为对象的状态(state)。,行为:定义在对象属性上的一组操作方法的集合。方法是响应消息而完成的算法,表示对象内部实现的细节,对象的方法集合体现了对象的行为能力。,32,对象的特征,无论对象是有形的或是抽象的、简单的或是复杂的,一般具有以下特征:,1. 具有一个状态,由与其相关联的属性值集合所表征。,2. 具有唯一标识名,可以区别与其它对象。,3. 有一组操作方法,每个操作决定对象的一种行为。,4. 对象的状态只能被自身的行为所改变。,5. 对象的操作包括自操作和他操作。,6. 对象之间以消息传递的方式进行通信。,7. 一个对象的成员仍可以是一个对象。,33,面向对象的基本概念类(Class),类是对象的抽象及描述,是具有共同属性和操作的多个对象的相似特性的统一描述体。,类也是对象,是一种集合对象,称之为对象类(object class),简称为类,以有别于基本的实例对象(object instance)。,在类的描述中,每个类要有一个名字,要表示一组对象的共同特性,还必须给出一个生成对象实例的具体方法。,34,类名,属性,操作,类的图符:,类的特点,类的属性赋予了类状态保持的能力,这就使类能够“生存”下去。,类的操作使类能够主动变化,实现状态变迁,这样类就又获得了“发展”的能力。,类具有“继承”能力。,有了“生存”、“发展”和“继承”的能力,类才能够胜任描述客观世界中的有机实体。,35,面向对象的基本概念继承(Inheritance),继承是一种使得一个较具体元素遵从一个较广泛元素定义的结构和行为的机制。,继承是面向对象描述类之间相似性的一个重要机制。,继承刻画了类的一般性和特殊性。,继承机制使类具有继承和被继承的能力,也就是具有了重用和被重用的能力。,36,运输工具,名称、厂家、型号、价格,按名称检索,陆路,越野性能,机动,马力,按厂家检索,空中,最大滑翔时间,自行车,保修期限,卡车,吨位耗油,轮船,排水量,飞机,续航能力,滑翔机,最大滑翔时间,继承(Inheritance),37,继承的作用,继承性允许程序设计人员在设计新类时,只须考虑与已有的父类所不同的特性部分,而继承父类的内容为自己的组成部分。,如果父类中某些行为不适用于子类,则程序设计人员可在子类中重写方法的实现。,继承机制不仅除去基于层次联系的类的共性的重复说明,提高代码复用率,而且能使开发者的大部分精力用于系统中新的或特殊的部分设计,便于软件的演进和增量式扩充。,38,继承的类型,单继承,多继承,替代继承,包含继承,限制继承,特化继承,39,面向对象的基本概念消息(Message),消息是面向对象系统中实现对象间的通信和请求任务的操作。,消息传递是系统构成的基本元素,是程序运行的基本处理活动。,一个对象所能接受的消息及其所带的参数构成该对象的外部接口。,40,消息(Message),对象接受它能识别的消息,并按照自己的方式来解释和执行。一个对象可以同时向多个对象发送消息,也可以接受多个对象发来的消息。,消息只反映发送者的请求,由于消息的识别、解释取决于接受者,因而同样的消息在不同对象中可解释成相应的行为。,41,消息的组成,消息一般由三部分组成:,1. 接受对象名,2. 调用操作名,3. 必要的参数,例如:MyCircle . Show ( Black ), 每个消息在类描述中由一个相应的方法给出,即使用函数定义操作。向对象发送一个消息,就是引用一个方法的过程。,42,消息协议,消息协议:是一个对象对外提供服务的规定格式说明,外界对象能够并且只能向该对象发送协议中所提供的消息,请求该对象服务。,请求对象操作的唯一途径是通过协议中提供的消息进行。具体实现上,是将消息分为公有消息和私有消息,而协议则是一个对象所能接受的所有公有消息的集合。,43,面向对象的基本特征,抽象 (abstract),继承 (inheritance),封装 (encapsulation),多态性 (polymorphism),44,抽象 (abstract),从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质的特征叫做抽象。抽象是形成概念的必要手段。,抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,忽略暂时不用部分的细节。,45,抽象 (abstract),抽象包括两个方面:,(1)过程抽象,是指任何一个完成确定功能的操作,都可被使用者看作单个的实体看待,尽管这个操作实际上可能是由一系列更低级的操作来完成。,(2)数据抽象,它定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察。,数据抽象是OO方法的核心原则。它强调把数据和操作结合为一个不可分的系统单位,对象的外部只需要知道它做什么,而不必知道它如何做。,46,封装(Encapsulation),定义:,1. 一个清楚的边界,封装的基本单位是对象;,2. 一个接口,这个接口描述该对象与其它对象之间的相互作用;,3. 受保护的内部实现,提供对象的相应的软件功能细节,且实现细节不能在定义该对象的类之外。,目的:有效地实现信息隐藏原则。这是软件设计模块化、软件复用和软件维护的一个基础。,47,封装(Encapsulation),在强调对象的封装性时,也必须允许对象有不同程度的可见性。,可见性是指对象的属性和服务允许对象外部存取和引用的程度。,对象组成成员的可见性分为私有部分、保护部分和公有部分,公有部分为私有部分提供了一个可以控制的接口。,48,多态(Polymorphism),多态是指同一消息为不同的对象所接受时,可导致不同的行为。,行为的多种形态封装在对象内部,外界并不知道。,具体应该执行哪种形态,由对象根据接受到的消息里的相关参数决定,Move(distant),Move(destination),Move(routine),49,多态(Polymorphism),多态性表明消息由消息的接收者进行解释,不由消息的发送者解释。,消息发送者只须知道消息接收者具有某种行为形态即可。,多态性这种特性使得面向对象系统具有了很好的维护性和扩展性。,50,面向对象技术小结,对象(object),类(class),消息(message),继承(inheritance),抽象(abstract),封装(encapsulation),多态(polymorphism),51,面向对象过程模型,52,面向对象的分析(OOA),面向对象分析(object-oriented analysis,OOA)是面向对象软件工程方法的第一个环节,包括一套概念原则、过程步骤、表示方法、提交文档等规范要求。,OOA的任务是采用面向对象的方法,把对问题域和系统的认识理解,正确地抽象为规范的对象(包括类、继承层次)和消息传递联系,形成面向对象模型,为后续的OOD和OOP提供指导。,53,OOA的优点,是在人类思维组织的基本方法框架下定义并表达需求,直观性好。,集中精力于问题空间的理解和分析,有利于超越系统的复杂性困难。,把属性和有关服务方法作为对象整体来看待,比较自然。,使用对象间的最小相关性来分析和说明。这有利于实行封装原则,并使OOA适应开发需求的变化,也有利于制作和提取可复用的部件。,通过对共性的显示表示而提高表达能力。,分析法与设计法的一致性,密切配合建造一个问题域模型。,对系统族的适用性和可扩展性强。,54,OOA步骤,标识对象,标识结构和主题,定义属性,定义服务,优化,55,OOA模型结构,OOA模型采用分层次结构,划分为5个层次,它们分别是,(1)对象-类层,(2)属性层,(3)服务层,(4)结构层,(5)主题层,56,OOA模型,OOA模型的基本要求是明确系统中应设立哪些对象/类,每一类对象的内部构成,各类对象与外部的关系,形成一个完整的模型图。在此基础上,还应按需要提供主题图,以帮助系统使用者能够在不同粒度层次上理解系统,57,OOA提交,(1)书写用于指导设计和实现的分析方案说明;,(2)精选的候选类清单;,(3)提交数据字典;,(4)使用OOA模型符号图示,绘制类图、主题图等;,(5)类定义模板(类的整体说明、属性说明、方法和消息说明);,(6)指定优化规则。,58,面向对象的设计(OOD),设计:定义系统的构造蓝图、约定和规则,以指导系统的实现。,OOA与OOD是自然地紧密结合的。,OOA与OOD的主要区别:,OOA与系统的问题域更加相关,OOD与系统的实现更加密切,59,问题论域部分,(PDC),人机交互部分,(HIC),任务管理部分,(TMC),数据管理部分,(DMC),Class & object layer,(类及对象层),Attribute layer,(属性层),Service layer,(服务层),Structure layer,(结构层),Subject layer,(主题层),主题,类边界,边界实例,属性,实例连接,消息,服务,OOD模型总体结构,60,什么是优良的OOD?,(1)类和类的继承必须具有高度凝集性;,(2)类与类之间的耦合应该很松散;,(3)某个类的数据实现细节对于别的类来说应该是隐藏的;,(4)设计应该具有最优的可重用性;,(5)尽力使类、对象和方法的定义具有简单性;,(6)对所设计的类和类族,应注意保持其协议或接口的稳定性;,(7)类的层次结构设计规模适度,不要太深或太浅;,(8)系统整体规模要最小化。,61,面向对象的编程(OOP),面向对象编程语言,工具,测试,调试,62,分析,(OOA),设计,(OOD),编程,(OOP),测试,维护,瀑布模型,演化,集成,测试,编程,(OOP),设计,(OOD),分析,(OOA),喷泉模型,OOA、OOD&OOP的关系,63,OOA、OOD的关系,下列说法是否正确?,OOA解决系统“做什么”,OOD解决“怎么做”的问题,64,OOA、OOD的关系,一致的概念与表示法,不同的目标,OOA的目标是建立一个直接映射问题域,符合用户需求的OOA模型。,OOD的目标是产生一个满足用户需求,并且完全可实现的OOD模型。,65,OOA、OOD的关系,不同的抽象层次,OOA抽象层次高,OOD抽象层次低,不同的工作内容,OOA的主要工作内容:研究问题域和用户需求,运用面向对象的观点和原则发现问题域中与系统责任有关的对象,以及对象的特征和相互关系。,OOD的主要工作内容:以OOA模型为基础,按照实现的要求进行设计决策,包括全局性的决策和局部细节的设计。,66,OOA、OOD的关系,OOD所考虑的具体实现条件包括:,硬件、操作系统及网络设施;,数据管理系统(数据库管理系统或文件系统);,图形用户界面系统;,编程语言;,能够得到的可复用构件。,67,OOA、OOD的关系,OOD所考虑的全局性设计决策包括:,体系结构;,分布方案;,并发控制;,人机交互;,数据管理等。,68,一些著名的OO方法简介,Booch面向对象方法,对象建模技术(OMT),面向对象软件工程(OOSE),69,Booch面向对象方法,Grady Booch,Booch是美国Rational软件工程公司的首席科学家和Booch方法的主创人。与Rational公司的Ivar Jacobson、Jim Rumbauth共同创建了一种可视化地说明、建造软件系统的工业标准语言-统一建模语言UML。UML1997年被对象管理组织OMG正式确定为国际标准。Booch于1977年毕业于美国空军军官学校,并于1979年在加州大学圣.巴巴拉分校获得计算机工程硕士学位。Rational公司成立不久,Booch就加盟这个公司。在过去的十几年里他孜孜不倦地在面向对象领域里研究,取得了开拓性的研究成果。他开发了面向对象的分析设计方法Booch Method和可重用的、灵活的Booch组件。他还是Rational公司一些产品的开发者,包括该公司最初的软件工程环境Rational Enviroment及业界领先的可视化建模工具Ration Rose。,70,Booch面向对象方法,71,Booch面向对象方法,Booch方法最大的特点是将几类不同的图表有机结合起来,以反映系统的各个方面是如何相互联系又相互影响的。,Booch方法的力量在于其丰富的符号体系,包括:,类图(类结构静态视图),对象图(对象结构静态视图),状态转移图(类结构动态视图),时态图(对象结构动态视图),模块图(模块体系结构),进程图(进程体系结构),72,Booch面向对象方法,Booch方法的过程包括以下步骤:,在给定的抽象层次上识别类和对象,识别这些对象和类的语义,识别这些类和对象之间的关系,实现类和对象,这四种活动不仅仅是一个简单的步骤序列,而是对系统的逻辑和物理视图不断细化的迭代和渐增的开发过程 。,73,识别类和对象,识别类和对象,的语意,识别类和对象,的关系,说明类和对象,的接口和实现,Booch建议采用的OO开发过程分为:,微过程(micro process),宏过程(macro process),微过程,Booch面向对象方法,74,开发期望行为,模型(分析),建立体系结构,(设计),逐渐演化成实现,(演化),管理交付后的,演化(维护),建立核心需求,(概念化),宏过程,Booch面向对象方法,75,Booch面向对象方法,在面向对象的设计方法中,Booch强调基于类和对象的系统逻辑视图与基于模块和进程的系统物理视图之间的区别。他还区别了系统的静态和动态模型。然而,他的方法偏向于系统的静态描述,对动态描述支持较少。,符号体系有大量的图符定义,但是,其语法和语义并没有严格地定义。,76,对象建模技术(OMT),OMTObject modeling technique,由James Rumbaugh提出,OMT采用三种模型描述分析与设计:,(1)对象模型:描述对象的静态结构和它们之间的关系 。,(2)动态模型:描述系统中与时间和操作序列有关的方面,包括表明变化的事件、事件的顺序、定义事件上下文的状态以及事件和状态的组织等。,(3)功能模型:描述系统内部数据值的转换 ,从静态的层面刻画系统的功能。,77,对象建模技术(OMT),OMT三个步骤:,(1)对象建模:对象图数据词典,(2)动态建模:状态图全局事件流图,(3)功能模型:数据流图约束,OMT的功能模型纯粹是结构化方法的产物,在面向对象的开发中塞入结构化方法的概念、过程和文档不是一个好主意。,78,面向对象软件工程(OOSE),OOSEObject-oriented software engineering由Ivar Jacobson提出,OOSE将面向对象的思想贯穿到软件工程中,目的是为了得到一个能适应变化、健壮性好和维护性强的系统。它涉及到整个软件生命周期,包括需求分析、设计、实现和测试等四个阶段。,79,面向对象软件工程(OOSE),OOSE采用五个模型来完成其实现目标系统的过程:,(1)需求模型(RM):捕捉用户需求 。,(2)分析模型(AM):定义一个健壮的、可扩展的系统的基本结构。,(3)设计模型(DM):将AM的对象定义为块,这是考虑具体实现的表现。DM最终表现为一个个类(对象)模块,并且这些类(对象)有了详细定义,且有伪码实现。,(4)实现模型(IM):用某种语言(最好是支持面向对象)来实现DM。,(5)测试模型(TM):关于类(对象)的底层测试。在测试中,依据的重要文档是RM和AM。,80,面向对象软件工程(OOSE),OOSE对面向对象方法的发展和进步有两个最重要的贡献:,1. 用use case定义用户需求。Use case是系统的用户对系统的使用情况。,2 .交互图。交互图对一组相互协作的对象,在完成一个use case时所执行的操作,以及在它们之间所传递的消息做了更精确的描述,能够表现出这些操作和消息之间的时间顺序。这对于动态信息的建模具有很好的作用。,81,面向对象软件工程(OOSE),OOSE在表示方法方面,对分析和设计中的对象分别采用不同的表示符号不是一种好策略。同一个事物处于不同的开发或演化阶段就变成另一种表示符号,这只能增加转换的麻烦,也不利于阅读。另一方面,对关系的表示区分太少。对多种不同的关系使用相同的连接符号(带箭头的实线或虚线),只是通过线条标注文字加以区别,这使得模型的清晰度和可读性较差。,82,小结,对象(object),类(class),消息(message),继承(inheritance),抽象(abstract),封装(encapsulation),多态(polymorphism),83,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!