第1章-面向对象方法概论教学课件_第1页
第1章-面向对象方法概论教学课件_第2页
第1章-面向对象方法概论教学课件_第3页
第1章-面向对象方法概论教学课件_第4页
第1章-面向对象方法概论教学课件_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章面向对象方法概论幻灯片第一部分面向对象方法概论2软件课程体系与知识结构(2/2)4、数据库技术A.数据库系统原理B.数据仓库、分布式数据库5、软件工程A.软件工程B.软件项目管理、软件质量管理、软件环境与工具6、软件方法学A.面向对象方法学、结构化方法B.软件复用技术、软件体系结构51.5面向对象方法的发展史及现状简介第一章面向对象方法概论1.1传统开发方法中存在的问题1.2面向对象的基本思想1.3面向对象的主要概念及基本原则1.4面向对象方法的主要优点6

在二十世纪六十年代以前

软件系统都是较小且相对简单的所用的编程语言都是十分简单(Fortran,Cobol等)时兴个人英雄主义,即崇尚程序员的个人技能代码是面条式的,特别是代码中含有GOTO语句

随着软件复杂性的增长,随心所欲的方法就不再是可接受的了,因为这样的代码是很难维护的。

高层次语言的引入有助于解决一些与复杂性有关的问题,但这些语言并不能充分解决问题。

那时,无开发方法而言

1.1传统开发方法中存在的问题71、功能分解法(起于二十世纪七十年代)(1/4)功能分解法(functiondecomposition)

功能分解=功能+子功能+功能接口以系统需要提供的功能为中心来组织系统。首先定义各种功能,然后把功能分解为子功能,同时定义功能之间的接口。对较大的子功能进一步分解,直到可给出明确的定义。根据功能/子功能的需要设计数据结构和算法。功能

功能

功能

系统

子功能子功能子功能子功能分解分解分解……………………工作过程:一层层地进行功能分解8功能模块功能模块功能模块功能模块功能模块功能模块功能模块功能模块功能模块功能模块得到的系统模型:由模块及其接口构成1、功能分解法(起于二十世纪七十年代)(2/4)9优点:当时的计算机应用还不是很普及,只是特定的用户按自己的需要,对软件系统做出了功能性的要求,有据可寻。在相当大的程度上,解决了以前存在的问题。特别是与模块化编程结合使用,效率更高。删除GOTO语句,使得软件能得到有效的维护。与模块化编程相结合,使得软件能得到有效的维护直接地反映用户的需求,所以工作很容易开始。1、功能分解法(起于二十世纪七十年代)(3/4)10缺点:开头容易,结束难。结构化分析和设计注重处理功能,对所处理的数据放于次要的位置。对需求变化的适应能力很差。局部的错误和局部的修改很容易产生全局性的影响。不能直接地映射问题域,很难检验分析结果的正确性。1、功能分解法(起于二十世纪七十年代)(4/4)11

数据流法=数据流+数据处理(加工)+数据存储+端点+处理说明+数据字典又称作结构化分析。基本策略是跟踪数据流,即研究问题域中数据如何流动以及在各个环节上进行何种处理,从而发现数据流和加工。问题域被映射为数据流图(DFD),并用处理说明和数据字典进行详细说明。数据流加工数据存储端点处理说明————————————————————————数据词典————————————————————————2、数据流法(结构化分析法)(1/2)12业务模型数据流加工数据存储端点处理说明数据字典跟踪数据流,从而发现数据流和加工。优点:有严格的法则,逐步求精,较强调研究问题域。缺点:在概念上,不能直接地映射到问题域中的事物对需求变化的适应能力较弱。大系统数据流和加工的数量太多,引起分析文档的膨胀。系统复杂时,难以检验分析的正确性。分析与设计的概念和表示法不一致,其转换规则也不严格。容易导致模块的低内聚和模块间的高耦合,从而使得系统缺乏灵活性和可维护性。2、数据流法(结构化分析法)(2/2)13信息建模法(informationmodeling)信息建模=实体(对象)+属性+关系+父类型/子类型+关联对象由实体-联系法(E-R方法)发展而来。与数据库设计有很深的渊源。核心概念是实体和联系:实体描述问题域的事物,含有属性;联系描述事物之间在数据方面的关系,也可以带有属性3、信息建模方法(1/2)发展之后的方法也把实体称作对象,并使用了类型和子类型的概念,作为实体(对象)的抽象描述。14业务模型实体(对象)属性联系父类型/子类型关联对象

强调对信息实体建模,而不是对象建模。对象只有属性,而无操作。父类与子类之间也只有属性继承。没采用消息通讯。3、信息建模方法(2/2)15它是基于现实的行为视图,状态是这类系统的构造块,并且所操作的数据是独立于状态的。

基于系统状态的处理。这一方法没有说到数据管理。

4、有限状态机方法16计算机是执行一套规则的推理机(if—then语句)。基于人工智能系统基于规则的系统并没有帮助我们处理数据,也不支持过程概念如prolog,list语言

••••••5、基于规则的系统17总结

上述方法都仅基于一个角度看待系统,对系统的其它视图建模方面的能力都很弱。但对OO产生都做出了一定的贡献.

18为了克服早期的方法的不足,这时人们已经开始考虑使用面向对象方法来开发系统。较为完善面向对象的分析和设计方法出现在八十年代中后期。早期的方法只使用一种系统的视角作为构造块,而没有容纳其他视角。功能分解法集中于将功能作为系统的构造块在数据分析方法中(实体联系模型)构造块是实体,但在该方法中用来满足系统需求的功能被完全忽略掉了。两种方法都没有处理对动态行为的捕获,声明性语义(规则)以及例外处理机制都被完全忽略了。

1.2面向对象的基本思想(1/11)19面向对象方法的解决问题的思路是从现实世界中的客观对象(如人和事物)入手,尽量运用人类的自然思维方式来构造软件系统,这与传统的结构化方法从功能入手和信息工程化方法从信息入手是不一样的。在面向对象方法中,把一切都看成是对象。1.2面向对象的基本思想(2/11)20例题:编写一个开发票程序,需要对发票的名细栏进行计算。编号名称规格单位数量单价金额合计非面向对象思路: 定义数据结构 定义函数面向对象思路:对象一组属性操作:发票总计……一切都是对象1.2面向对象的基本思想(3/11)21从程序设计方法的角度看,面向对象是一种新的程序设计范型(paradigm),其基本思想是使用对象、类、继承、封装、聚合、关联、消息、多态性等基本概念来进行程序设计.自八十年代以来,面向对象方法已深入到计算机软件领域的几乎所有分支。它不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行系统构造的软件方法学。从这个意义上讲:面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。什么是面向对象1.2面向对象的基本思想(4/11)22(1)从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域(现实世界)中的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌(对象)1.2面向对象的基本思想(5/11)23(2)用对象的属性表示事物的性质;用对象的操作表示事物的行为。(属性与操作)(3)对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节。(对象的封装)1.2面向对象的基本思想(6/11)24(4)对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例.(分类)(5)复杂的对象可以用简单的对象作为其构成部分.(聚合)(6)通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档.(继承)1.2面向对象的基本思想(7/11)25(7)类具有封闭性,把内部的属性和操作隐藏起来,只有公共的操作对外是可见的.(类的封闭性)(8)

对象之间通过消息进行通讯,以实现对象之间的动态联系.(消息)(9)通过关联表达类(一组对象)之间的静态关系.(关联)1.2面向对象的基本思想(8/11)26客观世界对象对象对象对象对象对象对象对象对象对象对象名属性…操作…类类类类分类类继承类类对象聚合抽象客观事物及其间的联系关联用况图类图顺序图状态图活动图构件图OO模型对象对象对象对象对象对象对象对象计算机内的对象编程构成封装运行分析设计………………27充分运用人类日常的思维方法强调运用人类在日常的逻辑思维中经常采用的思想方法与原则,例如抽象、分类、继承、聚合、封装、关联等等。这使得软件开发者能更有效地思考问题,并以其他人也能看得懂的方式把自己的认识表达出来。1.2面向对象的基本思想(10/11)28用类和对象作为系统的基本构成单位。对象对应问题域中的事物,其属性与操作刻画了事物的性质和行为,它们之间的继承关系、聚合关系、消息和关联如实地表达了问题域中事物之间实际存在的各种关系。因此,无论系统的构成成分,还是通过这些成分之间的关系而体现的系统结构,都可直接地映射问题域。1.2面向对象的基本思想(11/11)总结:29面向对象中的主要概念:对象、属性、操作、类、继承、聚合、关联、永久对象,对象还分为主动对象和消息,泛化分为有多态性和无多态性的。面向对象中的基本原则:信息隐蔽或封装、消息传递、后期连接、委托、类/对象和关系等。1.3面向对象中的主要概念及基本原则30对象标识就是对象的名字,有“外部标识”和“内部标识”之分。对象是现实世界中某个实际存在的事物,它可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划)。对象是构成世界的一个独立单位。它具有自己的静态特征和动态特征。对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组操作构成。对象属性操作对象标识属性是用来描述对象性质的一个数据项。操作是用来描述对象行为的一个动作序列。对象,属性,操作,对象标识抽象1.3.1面向对象中的主要概念(1/9)31类,一般类,特殊类,抽象(2/9)抽象与分类:抽象(化)忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性。把具有共同性质的事物划分为一类,得出一个抽象的概念,叫做分类。类是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作两个主要部分。类的作用是用来创建对象,对象是类的一个实例。不同程度的抽象可得到不同层次的分类较多地忽略事物之间的差别得到较一般的类较多地注意事物之间的差别得到较特殊的类运输工具火车汽车飞机卡车轿车轮船车辆32继承:特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承。继承意味着自动地拥有,或隐含地复制子类从父类中继承属性和操作,根据需要添加自己的属性和方法。继承简化了人们对事物的认识和描述,非常有益于软件复用,是OO技术提高软件开发效率的重要原因之一。公司人员姓名身份证号码股东股份

············职员工资··················例:由继承机制保证一般类与特殊类之间的关系叫泛化关系(继承关系),简称泛化。继承关系的语义:“isakindof”继承(3/9)33多继承:允许一个特殊类具有一个以上一般类的继承模式称作多继承多继承特殊类的内部情况在职研究生姓名······学号班级专业······职称专业······在职单位············来自“人员”类来自“研究生”类来自“教职工”类本类中显示定义例:人员姓名······教职工职称专业······研究生学号班级专业······在职研究生在职单位······(4/9)34对象通过它对外提供的操作在系统中发挥作用。当系统中的其他对象或其他系统成分(在不要求完全对象化的语言中,允许有不属于任何对象的成分,例如C++程序中的main函数),请求这个对象执行某个操作时,该对象就响应这个请求,完成该操作。在OO方法中,把向对象发出的操作请求称为消息.

目前在大部分面向对象的编程语言中,消息其实就是函数(或过程)调用。但是,函数调用只是实现消息的方式之一,上述理解只适合于顺序系统。

例子:顾客买报纸消息(5/9)35聚合:一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称较复杂的对象为聚集,称较简单的对象为成分,称这种关系为聚合。这种关系的语义是“hasa”或“isapartof”聚合刻画了现实事物之间的构成关系两种方式:(前一种方式又称组合)部分对象部分对象整体对象嵌套对象整体对象部分对象部分对象整体对象对象指针或对象标识描述紧密、固定的关系,例如汽车与发动机描述松散、灵活的关系,例如公司与法律顾问(6/9)36例:汽车发动机14..60….10..1车轮公司0..*0..*法律顾问组合关系聚合关系聚合(7/9)37关联:类之间的静态联系称作关联。在实例化后,由类产生对象,由关联产生连接对象的链。链是关联的实例。关联的表示符号也称作实例连接城市0..*0..*有航线城市之间有航线教师学生0..*1指导论文教师为学生指导论文例:(8/9)38其他:永久对象:可以在程序运行后继续保存的对象时间空间意义实现途径:语言,OO-DBMS主动对象:表示进程或线程的对象。描述具有主动行为的事物描述并发执行的任务(9/9)39(1)抽象

从事物中舍弃个别的非本质的特征,而抽取共同的、本质特征的做法叫抽象。例如,一个现实事物,可能担任很多角色,只有与问题域有关的角色,才予以考虑。在不同的高度看待或解决问题。 OO中的应用:过程抽象:任何一个完成确定功能的操作序列,其使用者都可把它看作一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。 数据抽象:根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。客观事物->对象->类->一般类不同开发阶段需要进行不同程度的抽象便于实现模块的可替换性

1.3.2面向对象中的基本原则(1/14)40(2)封装:把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。只是向外部提供接口,降低了对象间的耦合度。售报亭属性服务报刊A报刊B…钱箱报刊零售款货清点顾客由封装机制保证:数据不能被对象的使用者直接访问。只允许通过由对象提供的方法或代码访问数据。1.3.2面向对象中的基本原则(2/14)41封装的重要意义:使对象能够集中而完整地描述并对应一个具体事物。体现了事物的相对独立性,使对象外部不能随意存取对象的内部数据,避免了外部错误对它的“交插感染”。对象的内部的修改对外部的影响很小,减少了修改引起的“波动效应”。公开静态的、不变的操作,而把动态的、易变的操作隐藏起来。封装带来的问题:编程的麻烦执行效率的损失解决办法:不强调严格封装,实行可见性控制。(混合型OOPL)例如:C++1.3.2面向对象中的基本原则(3/14)42信息隐蔽对象的操作定义了其他的对象怎样获得对其的访问。每一个对象都将提供给所有对象的公共操作公开化。它也提供仅局限于特定对象的其它的操作(受保护的和私有的)。其他的对象对被请求的对象怎样提供操作(代码,内部数据)没有感知。操作操作操作操作……

属性集(4/14)43(3)委托

借助消息传递,工作可从一个对象(客户)传递到另一个对象(代理),因为从客户的观点,代理具有客户所需要的操作。工作连续地传递,直到到达了既有数据又有方法(代码)能完成这项工作的对象。

例如:建造一所办公楼董事会->总经理->建筑公司注意:委托是执行任务的权利,而不是责任。(5/14)44(4)分类把具有共同性质的事物划分为一类,得出一个抽象的概念。分类帮助我们组织我们所生活的复杂世界。我们可以对在一个特殊分类中的对象做一些假设。如果一个对象是分类(类)的一个实例,它将符合该分类的总体模式。分类:对象->类->一般类类/对象所有的对象都是类的实例。实例能够在运行时被产生(初始化)或销毁(删除)。对象怎样提供操作,由该对象为其实例的类所决定。这样,同一个类的所有对象在响应特定的操作请求(功能调用)时使用相同的方法。

(6/14)45(5)泛化(继承)无多态性的泛化.类可以由层次继承结构所组织。在该结构中,子类将从位于层次结构高层的父类中继承属性、操作和关系。

抽象的父类是指仅用来定义子类的超类。这样,抽象类就没有直接的实例。有多态的泛化.可以使用层次继承结构组织类,子类可以继承位于层次结构的高层的父类的属性、操作和关系。然而,子类可以定义它自己的操作来代替其任何超类的同名操作。(7/14)46多态是指同一个命名可具有不同的语义。OO方法中,常指在一般类中定义的属性或操作被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。用途:把具有共同基类的对象组成一组,并对它们进行一致的处理。 例如,多边形下的三角形、长方形、正多边形。

多态(8/14)47多态:多边形边数顶点数据绘图XY轴向矩形x边数*顶点数据*绘图正多边形*顶点数据*绘图例:(9/14)48(6)消息通信

即要求对象之间只能通过消息进行通讯。消息传递机制与函数调用机制的区别

第一,在消息传递机制中,每一个消息被发送给指定的接收者(对象)。在命令式编程范型中,函数调用机制没有指定的接收者。第二,消息的解释(用来完成操作请求的方法或操作/代码集)依赖接收者,并且因接收者的不同而异。第三,在面向对象的范型中,通常在运行时才能知道给定消息的特定的接收者。(10/14)49(7)行为分析

行为分析是我们用来考察一个对象(类)是怎样提供它的操作的过程。

从分析的视点,有两种类型的行为:静态的动态的(11/14)50静态行为在静态行为中,实现操作的代码不被任何外部或内部的事件(动作)所影响。示例:一个类中有一个“求平方根”的操作。如果对数码4执行“求平方根”操作,其结果总会是2。没有外部的或内部的动作能够引起该类的代码改变计算平方根的结果。实际上,只要我们使用命令式编程(如用C编程)是容易做到这一点的。

(12/14)51动态行为

在行为中发生这些变化的原因可能是由于对象存在很多不同的状态。随后,对象根据它的状态做出反映。使用命令式编程技术不能很好地处理这种类型的行为。使用另外的一种称为有限状态机的机制会更好地捕获这样的方法。

例子:航班订票系统中的订票过程 对象“机票”的状态:预定、等待、确认、取消、使用、归档

系统中的对象是相互协作的,通过发消息共同完成某项功能。这种协作的交互性,可以用交互图来进行描述。有很多系统具有并发行为。从事物的并发行为的起因上看,每个并发行为都是主动发生的。(13/14)52(8)复杂性控制(14/14)

引入包(package)的概念,使模型具有大小不同的粒度层次,以利于控制复杂性。

如把分析和设计阶段的模型分别用包进行组织。53从认识论角度和软件工程方法的角度看一下面向对象方法带来的好处;具体地描述面向对象方法的特点。

1.4面向对象方法的特点(1/11)54对问题域的认识(人)客观世界(问题域)计算机自然语言语言的鸿沟编程语言语言的过渡(人)编程(人)程序的理解和执行(机器)软件开发:从问题域出发,对事物进行认识和描述问题——语言的鸿沟1、从认识论的角度可以看出,面向对象方法改变了人们认识世界的方式(2/11)55计算机机器语言自然语言客观世界(问题域)语言的鸿沟2、语言的发展——鸿沟变窄面向对象的语言非OO的高级语言汇编语言程序的指令、数据、地址,都是由二进制的“0”和“1”构成的。离机器最近,能够直接地执行,然而没有丝毫形象的意义,离人类的思维最远。以易理解的符号表示指令、数据以及寄存器、地址等物理概念。稍稍适合人类的形象思维,但仍然相差很远。因为抽象层次太低,仍需考虑大量的机器细节。高级语言隐蔽了机器细节,使用有形象意义的数据命名和表达式,可以联系到程序所描述的具体事物。特别是结构化编程语言更便于体现客观事物的结构和逻辑涵义,与人类的自然语言更接近,但仍有不少差距。能比较直接地反映客观世界的本来面目,并使软件开发人员能够运用人类认识事物所采用的一般思维方法来进行软件开发。(3/11)56问题域测试编程计算机编程语言自然语言需求分析总体设计详细设计3、面向对象方法使得从问题域到计算机间的鸿沟变窄(4/11)分析与设计的鸿沟分析与设计概念及表示法的不一致软件工程学的作用—结构化的软件工程方法57问题域OOA计算机自然语言面向对象的编程语言OODOOPOOT软件工程学的作用——面向对象的软件工程方法(5/11)58面向对象程序设计把数据和处理数据的过程作为一个整体,即对象。算法+数据结构算法+数据结构算法+数据结构算法+数据结构对象算法+数据结构对象对象对象对象关系程序=<对象,关系>对象=(算法)+(数据结构)4、面向对象方法有助于软件的维护与复用

(6/11)59结构化程序设计程序=<关系,算法,数据结构>数据结构数据结构数据结构算法算法算法关系(7/11)60

结构化方法:从算法的角度进行建模,所有的软件都用过程或函数作为其主要构造块。人们把大量精力都集中在控制流程和大算法的分解上。这种建模的缺点是模型脆弱。需求变动、维护困难。面向对象方法:以众多的类及交互模式(类间的协同工作)为中心。着重于数据的信息建模方法:以实体-关系模型为中心,该模型的行为放入触发器和存储过程中。几种开发方法的特点(8/11)

对于一个给定的应用系统和开发方法,上述的任何一种方法可能都是正确的。只是代价和受益是不同的。61(1)把易变的数据结构和部分功能封装在对象内并加以隐藏,

一是保证了对象行为的可靠性;二是对它们的修改并不会影响其他的对象,有利于维护,对需求变化有较强的适应性。(2)封装性和继承性有利于复用对象。把对象的属性和操作捆绑在一起,提高了对象(作为模块)的内聚性,减少了与其他对象的耦合,这为复用对象提供了可能性和方便性。在继承结构中,特殊类对一般类的继承,本身就是对一般类的属性和操作的复用。

与传统方法相比,面向对象方法的主要优点:(9/11)62这主要体现在如下几方面:

设计的投入在编程、测试时会得到回报

OO方法使系统更易于理解分析文档、设计文档、源代码对应良好功能变化引起的全局性修改较少有利于OOA结果的复用5、面向对象方法有助于提高软件的质量和生产率(10/11)63面向机器面向代数面向过程面向数据面向人面向文件面向信息面向应用面向功能面向数据流······面向对象是软件方法学的返朴归真软件科学的发展历程中出现过许多“面向”软件开发从过分专业化的方法、规则和技巧中回到了客观世界,回到了人们的日常思维,是软件理论的返朴归真。面向对象(11/11)641、雏形阶段60年代挪威计算中心开发的Simula67—面向对象语言的先驱和第一个里程碑(首先引入了类的概念和继承机制)。70年代CLU、并发Pascal、Ada和Modula-2等语言对抽象数据类型理论的发展起到重要作用(支持数据与操作封装)犹他大学博士生AlanKay设计了一个实验性语言Flex。从Simula67中借鉴了许多概念,如类、对象、继承等。1972年PaloAlno研究中心(PARC)发布了Smalltalk-72,其中正式使用了“面向对象”这个术语。Smalltalk的问世标志着面向对象程序设计方法的正式形成。但是这个时期的Smalltalk语言还不够完善.1.5面向对象方法的发展史及现状简介(1/4)65PARC先后发布了Smalltalk-72,76,78等版本,直至1981年推出该语言最完善的版本Smalltalk-80。

Smalltalk-80的问世被今认为是面向对象语言发展史上最重要的里程碑。迄今绝大部分面向对象的基本概念及其支持机制在Smalltalk-80中都已具备。它是第一个完善的、能够实际应用的面向对象语言。但是,Smalltalk的应用尚不够广泛,原因是:2、完善阶段(2/4)①一种新的软件方法学被广泛接受需要一定的时间。②商品化软件开发工作到87年才开始进行。③追求纯OO的宗旨使许多软件开发人员感到不便。66自80年代中期到90年代,是面向对象语言走向繁荣的阶段。其主要表现是大批比较实用的OOPL的涌现,例如C++、Objective-C、ObjectPascal、CLOS(CommonLispObjectSystem)、Eiffel、Actor等。

OO编程语言分为纯OO语言和混合型OO语言。混合型语言是在传统的过程式语言基础上增加OO语言成分,在实用性方面具有更大的优势。如C++。

此时的纯OO语言也比较重视实用性。如Eiffel、Smalltalk、Actor。

3、繁荣阶段(3/4)67在编程方面,普遍采用语言、类库和可视化编程环境相结合的方式,例如,VisualC++,VisualBasic和Delphi,Java等。到九十年代,面向对象的分析与设计方法已多达数十种,这些方法都各有所长,现在趋于统一。统一建模语言UML(UnifiedModelinglanguage),其推荐的方法是USDP(UnifiedSoftwareDevelopmentProcess);UML是一种面向对象的建模语言,在软件产业界获得了很大的支持。

OPEN(OOProcess,EnvironmentandNotation),OPEN中含有建模过程和建模语言OML(OPENModelinglanguage)。OPEN在学术界影响面很大,产业界中的反响很小。在面向对象的过程指导方面,目前还没有国际规范发布。

4、当前的状况(4/4)681.6关于UML(UnifiedModelingLanguage)(1/10)为何研究UML?—-结束方法大战发展历史

1994年Booch和Rumbaugh在RationalSoftwareCorporation开始了UM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论