面向对象方法学

合集下载

面向对象方法学的出发点和基本原则

面向对象方法学的出发点和基本原则

面向对象方法学的出发点和基本原则1 面向对象方法学简介面向对象方法学( Object-Oriented Methodology, OOM)是一种软件工程的建模模式,它被广泛应用在软件工程的设计与开发中。

OOM是一种面向对象的分析、设计及编程的过程,用来组织抽象和构造有效的软件系统。

2 出发点及基本原则OOM的基本出发点是,让计算机能够更好的处理真实世界中复杂的问题。

它通过把巨大而复杂的系统分解为由许多独立的概念实体组成的、耦合度较低的“对象”来实现这一目标。

OOM的基本原则是要使组件(或对象)具有封装性、继承性和多态性:1. 封装性:能够将某些属性或功能封装到一个单一的实体之中,以达到良好的模块独立性、维护性等目的。

2. 继承性:直接通过之前定义的对象可以定义一个新的对象,新的对象将具有之前定义的对象的所有功能,从而极大的提高开发效率。

3. 多态性:每个子类可以具备不同的实现,以提高代码的可重用性。

3 典型应用OOM在软件工程设计与开发过程中被广泛应用。

一些软件语言,如C++、Java等都是面向对象编程语言,这些语言的使用都可以根据OOM的原则来实现。

此外,OOM的思想也可以被应用到其它的计算机应用领域。

例如,它可以用来设计具有分布式功能的大型系统,例如银行的信息系统等。

它也可以用来设计新的知识表示方法和面向对象数据库,以满足要求表示和处理复杂现实存在的事物与概念。

4 结论面向对象方法学是一种非常有效且实用的软件工程模式,它能够帮助程序员开发出更高质量的程序。

OOM的组件(或对象)具有封装性、继承性和多态性,这使得它能够更好的模拟真实世界中复杂的对象,并为实现这些对象的功能提供了一种有效的方法。

08面向对象导论

08面向对象导论

第8章面向对象方法学导论哈尔滨理工大学荣成学院李胜利•结构化软件开发曾经给软件产业带来了巨大进步,部分地缓解了软件危机。

使用这种方法开发的许多中、小型软件项目大都获得了成功。

但是,把它应用于大型软件产品的开发时,却很少取得成功。

•在20世纪60年代后期出现了类和对象的概念;80年代中期起,逐步形成了面向对象方法学。

90年代,面向对象成为人们开发软件的首选方法。

总体上说,面向对象技术是当前最好的软件开发技术•面向对象方法学概述•面向对象方法学的主要优点•面向对象的概念•面向对象建模1. 面向对象方法学概述•面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(问题域)与实现解法的解空间(求解域)在结构上尽可能一致。

•面向对象方法的要点:(1)客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。

面向对象方法使用对象分解取代了传统方法的功能分解。

(2)把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。

数据表示对象的静态属性,是对象的状态信息。

类中定义的方法,是允许施加于该类对象上的操作,是该类所有对象共享的,并不需要为每个对象都复制操作的代码。

(3)按照子类(派生类)与父类(基类)的关系,把若干个对象类组成一个层次结构的系统(类等级)。

在这种层次结构中,通常下层的派生类继承上层基类的特性(数据和方法),但如果在派生类中对某些特性做了重新描述,则以新描述为准。

即低层的特性将屏蔽高层的同名特性。

(4)对象彼此之间仅能通过传递消息互相通信。

对象与传统的数据有本质的区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体,必须发送消息请求它执行它的某个操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。

也就是说,一切局部于该对象的私有信息,都被封装在对象的定义内,外界看不见,也不能直接操作。

第7章 面向对象学习方法学

第7章 面向对象学习方法学

第七章面向对象学习方法学面向对象方法学的出发点和基本原则,是尽可能按照人类的习惯思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题域空间与实现解法的解空间在结构上尽可能一致.与传统的结构化方法相比,使用面向对象方法开发的软件,其稳定性,可修改性和可重用性都比较好.本章内容主要包括:传统方法学的缺点,面向对象的基本概念,面向对象模型.7.1 基础知识7.1.1 传统方法学的缺点结构化几其他方法学的本质,是在具体的软件开发之前,通过需求分析预先定义软件需求.然后一个一个阶段地开发用户所需要的软件,实现预先定义的软件需要.过去的经验需要告诉我们,结构化及其他方法学并不能完全消除软件危机.结构化及其他方法学仍然有许多不足之处.1.问题的表现1)生产效率低在生命周期方法学中,特别重视软件开发的阶段性.为了提高了软件开发的效率,减少重大返工次数,强调必须早每个阶段结束之前进行评估.从而开发过程中实行严格的质量管理,确实提高了许多软件的开发的成功率.但是,时间表明,开发高利率仍然很有用.2)不能满足用户需要实践表明,在开发需要模糊或需求动态变化的系统时,软件系统的结果往往不能满足用户需求的变化.主要表现在两个方面:一种是开发人员不能完全获得彻底理解用户的需要,以至开发的软件系统与用户预期的系统不一致;另一种表现是,所开发的系统不能适应用户需求变化,系统的稳定性和可扩充性不能满足需要.3)软件服用就是将已有的软件成分用于构造新的软见系统.软件复用是节约人力,提高软件效率的重要途径.结构分析.设计,几乎每一次开发一个系统时都需要针对这个具体的系统做大量的重复劳动..思维成果的可复用性差.4)软件很难维护实践经验告诉我们,即使是用生命周期方法学开发出来的软件,维护起来仍然相当困难,软件维护成本很高.2.问题的原因1)结构化技术本身的问题结构分析和设计技术的基本思想是从目标系统整体功能的单个处理着手,自顶向下不断的把复杂的处理分解为子处理,一层一层的分解下去,直到剩下若干个容易实现的子处理为止。

面向对象程序设计方法学

面向对象程序设计方法学

⾯向对象程序设计⽅法学⾯向对象程序设计⽅法学⾯向对象程序设计吸取了结构化程序设计的⼀切优点,⼜考虑了现实世界与⾯向对象解空间的映射关系,它所追求的⽬标是将现实世界问题的求解尽可能的简单化。

⾯向对象程序设计将数据及对数据的操作放在⼀起,作为⼀个相互依存、不可分割的整体来处理,它采⽤数据抽象和信息隐藏技术。

它将对象及对对象的操作抽象成⼀种新的数据类型—类,并且考虑不同对象之间的联系和对象类的重⽤性。

下⾯我将就本⼈了解的⼀些⾯向对象基本概念和⼤家分享。

希望对⼤家有所帮助。

⼀、对象的基本概念⾯向对象=对象+类+继承+消息通信⾯向对象系统最突出的特性就是封装性、继承性和多态性,衡量某⼀种程序设计语⾔,看它是否是⾯向对象的程序设计语⾔,主要看它是否具有以上三种特性。

像C++,C#,java等都是这样的程序设计语⾔。

⼆、类与对象类(class)是对具有相同属性和服务的⼀个或⼀组对象的抽象定义。

类与对象是抽象与具体实例的关系,⼀个具体的对象被称做类的⼀个实例。

是否建⽴了丰富的类库是衡量⼀个⾯向对象程序设计语⾔成熟与否的⼀个重要标志。

对象(object)是系统中⽤来描述客观事物的⼀个实体,它是构成系统的⼀个基本单位,是类的实例。

⾯向对象的软件系统是由对象组成的,复杂的对象是由⽐较简单的对象组合⽽成。

也就是说,⾯向对象⽅法学使⽤对象分解取代了传统⽅法的功能分解。

对象的属性和⽅法称为这个对象的“成员”。

它是构成对象的主要部分。

类可以说是对象的蓝图(blueprint)三、对象三要素 对象三要素:对象标志、属性和服务对象标志:也就是对象的名字,供系统内部唯⼀地识别对象。

属性:也称状态或数据,⽤来描述对象的静态特征。

在某些⾯向对象的程序设计语⾔中,属性通常被称为成员变量或简称变量。

服务:也称操作、⾏为或⽅法等,⽤来描述对象的动态特征。

某些⾯向对象程序设计语⾔中,服务通常被称为成员函数或简称函数。

封装:对象的⼀个重要原则,⽬的是使对象的定义与实现分离。

第1章 面向对象的方法学

第1章 面向对象的方法学
为了在程序中使用cin/cout,必须在程序中包含iostream库
的相关头文件
#include<iostream>
计算机科学与工程学院
西安理工大学
C++流类库简介
iostream类同时从istream(输入流)类和ostream(输出 流)类派生而来,允许双向输入/输出。输入由重载的操作 符>>完成,输出由重载的操作符<<来完成。 cin>>变量名; cout<<变量名或常量;
对象
对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体。 对象是我们认识世界的基本单元,可以是人,也可以是物,还可以是一 件事。 术语“对象”既可以是指一个具体的对象,也可以泛指一般的对象。
实例
实例是一个类所描述的一个具体的对象。
例如,通过“大学生”类定义一个具体的对象学生王明就是大学生类的 一个实例,就是一个对象。 类和对象之间的关系是抽象和具体的关系。
面向对象分析
分析是问题抽象(即做什么)。 结构化方法采用面向过程的方法对问题进行分解 面向对象分析是指在深入、全面理解问题本质需求的基础上,准确地抽象出 系统必须做什么。
面向对象设计
分析是提取和整理用户需求,建立问题精确模型的过程,即做什么。设计是 问题求解 (即怎么做),是对分析阶段所建立的模型进行精雕细凿,并逐渐扩 充的一个过程。
[例9-5] 简单输出实例1。
[例9-6] 简单输出实例2。
计算机科学与工程学院
西安理工大学
基本输入流
流输入可以用流读取运算符——即重载的>>(右移位运算
符)来完成。 注意:
输入运算符>>也支持级联输入。在默认情况下,运算符>>跳过空格,读 入后面与变量类型相应的值。因此给一组变量输入值时,用空格或换行 将输入的数值间隔开,例如:

第9章面向对象方法学

第9章面向对象方法学

(三) 面向对象的概念
1. 对象
在应用领域中有意义的、与所要解决的 问题有关系的任何事物都可以作为对象。 它既可以是具体的物理实体的抽象,也 可以是人为的概念,或者是任何有明确边界和 意义的东西。
客观世界的问题看成对象取决于应用的 视角和问题的性质。 当你在路上找人,你看到的对象就是流 动的人群; 当你需要出租车,你看到的对象就是过 往的车辆。
当对象 MyCircle 接受到这个消息后, 执行Circle类中所定义的 Show 操作。 注意: 1)消息由接受消息的对象来解释。 (MyCircle 就是接受消息的对象) 2)一个对象需要另一个对象服务时,就向 它发出请求服务的消息。这时,接受消息 的对象响应消息,触发所要求服务的操作 的方法来完成服务。
OO技术以对象(object)为核心,把静态 属性的数据,和对这些数据施加的操作封装在 一起所构成的统一体。
2. 稳定性好 面向对象的软件系统的结构是根据问题 领域的模型建立起来的。 (而传统方法是基于系统的功能的分解。) 当对系统的功能需求变化时并不会引起 软件结构的整体变化。因此,以对象为中心构 造的软件系统也是比较稳定的。
7. 封装(encapsulation) 从字面上理解,所谓封装就是把某个事物 包起来,使外界不知道该事物的具体内容。 对象具有封装性的条件如下: (1) 有一个清晰的边界。 (2) 有确定的接口。这些接口就是对象可 以接受的消息,只能通过向对象发送消息来使 用它。 (3) 受保护的内部实现。实现对象功能的 细节(私有数据和代码)不能在定义该对象的 类的范围外访问。
一. 传统方法学的问题
(一) 软件不能真正满足用户需求
1. 软件开发效率低 2. 软件不能满足“需求变化”、“需求模糊” 和“需求灵活性” 3. 软件重用度低 4. 软件仍然很难维护

简述传统软件工程方法学和面向对象方法学

简述传统软件工程方法学和面向对象方法学

任务名称:传统软件工程方法学和面向对象方法学一、引言传统软件工程方法学和面向对象方法学是软件开发领域中两种常见的方法论。

本文将对传统软件工程方法学和面向对象方法学进行详细探讨,并对它们的优缺点进行比较。

二、传统软件工程方法学传统软件工程方法学是软件开发过程中常用的一种方法学。

它强调项目管理和软件开发的规范性,包括以下几个阶段:2.1 需求分析在传统软件工程方法学中,需求分析是一个重要的阶段。

开发团队通过与用户的沟通,收集用户的需求,并将其转化为软件需求规格说明书。

2.2 设计阶段在传统软件工程方法学中,设计阶段是构建软件架构和设计详细功能的阶段。

开发团队根据需求分析阶段的结果,设计出软件的整体结构和模块之间的关系。

2.3 编码和测试阶段在传统软件工程方法学中,编码和测试阶段是将设计转化为代码并进行测试的阶段。

开发团队根据设计阶段的结果,编写源代码,并进行各种类型的测试,包括单元测试、集成测试和系统测试等。

2.4 部署和维护阶段在传统软件工程方法学中,部署和维护阶段是将软件部署到生产环境并进行维护的阶段。

开发团队将开发好的软件部署到用户的计算机上,并对其进行维护和更新。

三、面向对象方法学面向对象方法学是另一种常见的软件开发方法学。

它将问题领域的概念和现实世界的实体转化为软件系统中的对象,并通过对象之间的交互来解决问题。

面向对象方法学强调以下几个关键概念:3.1 封装封装是面向对象方法学中的一个重要概念。

它将数据和操作数据的方法封装到对象中,隐藏了对象内部的细节,只提供对外部可见的接口。

3.2 继承继承是面向对象方法学中的另一个关键概念。

它允许通过从已有的类中派生出新的类来扩展和重用代码。

通过继承,子类可以继承父类的属性和方法,并可以添加自己特有的属性和方法。

3.3 多态多态是面向对象方法学的第三个关键概念。

它允许不同的对象对同一消息作出不同的响应。

多态性增强了代码的灵活性和可扩展性。

3.4 设计模式设计模式是面向对象方法学的另一个重要概念。

面向对象方法学

面向对象方法学

小结
传统的生命周期方法学的缺点 面向对象方法的四个要点 面向对象方法的主要优点 面向对象的基本要素 面向对象的分析

面向对象方法中问题空间和解空间的映 射关系
面向对象方法尽可能模拟客观世界,它把数据以及在 这些数据上的操作所构成的统一体称为"对象". 对象是进行处理的主体.
必须发消息请求对象执行它的某些操作,处理它的私有数 据,而不能从外界直接对它的私有数据进行操作.
这样,软件开发者可以根据问题空间的结构,定义或 选取解空间对象,然后用一系列离散的解空间对象的 集合组成软件系统.
软件危机
原因
早期的软件开发工作主要花费在编程实现阶段,采用的是 个体的小作坊开发模式. 随着计算机应用领域的不断扩大和应用层次的不断加深, 使得:软件的规模不断扩大,软件的复杂度不断提高
表现:早期的软件开发模式难以驾驭软件开发过 程,出现了"软件危机":
软件生产率急剧下降,供不应求 程序的正确性难以保证 开发出的软件难以维护.
系统很多代码是和用户界面相关的,而面向对象方 法是处理这种用户界面的系统一种优于传统面向过 程的方法;
OOA是在信息模型(实体关系图和语义数据模 型)和面向对象程序设计语言两者的最好概念 上建立的.
来自信息模型:属性,关系,结构和代表问题空间 事物的若干实例的对象表示. 来自面向对象程序设计语言:属性和服务的封装, 分类,继承.
面向对象方法的主要优点
较易开发大型软件产品
可以将大系统分解成相互独立的小产品来处理 可以降低成本,提高质量
可维护性好
面向对象的软件稳定性比较好. 面向对象的软件比较容易修改. 面向对象的软件比较容易理解. 易于测试和调试.
面向对象的基本要素
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

表示类的图
4.2 表示关系的符号
如前所述,类图由类及类与类之间的关系组成。定 义了类之后就可以定义类与类之间的各种关系了。 类与类之间通常有关联、泛化(继承)、依赖和细 化等4种关系。 1. 关联 关联表示两个类的对象之间存在某种语义上的联系。 例如,作家使用计算机,我们就认为在作家和计算 机之间存在某种语义连接,因此,在类图中应该在 作家类和计算机类之间建立关联关系。
(2) 把所有对象都划分成各种对象类(简称为类, class),每个对象类都定义了一组数据和一组方法。 数据用于表示对象的静态属性,是对象的状态信息。 因此,每当建立该对象类的一个新实例时,就按照 类中对数据的定义为这个新对象生成一组专用的数 据,以便描述该对象独特的属性值。 类中定义的方法,是允许施加于该类对象上的操作, 是该类所有对象共享的,并不需要为每个对象都复 制操作的代码。
由于客观世界中的实体通常都既具有静态的属性, 又具有动态的行为,因此,面向对象方法学中的对 象是由描述该对象属性的数据以及可以对这些数据 施加的所有操作封装在一起构成的统一体。对象可 以作的操作表示它的动态行为,在面向对象分析和 面向对象设计中,通常把对象的操作称为服务或方 法。 1. 对象的形象表示 为有助于读者理解对象的概念,下图形象地描绘了 具有3个操作的对象。
(3) 实例(instance) 实例就是由某个特定的类所描述的一个具体的对 象。类是对具有相同属性和行为的一组相似的对象 的抽象,类在现实世界中并不能真正存在。实际上 类是建立对象时使用的“样板”,按照这个样板所 建立的一个个具体的对象,就是类的实际例子,通 常称为实例。当使用“对象”这个术语时,既可以 指一个具体的对象,也可以泛指一般的对象,但是, 当使用“实例”这个术语时,必然是指一个具体的 对象。
4 、 对象模型ቤተ መጻሕፍቲ ባይዱ
对象模型表示静态的、结构化的系统的“数据” 性质。它是对模拟客观世界实体的对象以及对象彼 此间的关系的映射,描述了系统的静态结构。对象 模型为建立动态模型和功能模型,提供了实质性的 框架。
在建立对象模型时,我们的目标是从客观世界中 提炼出对具体应用有价值的概念。为了建立对象模 型,需要定义一组图形符号,并且规定一组组织这 些符号以表示特定语义的规则。也就是说,需要用 适当的建模语言来表达模型,建模语言由记号(即 模型中使用的符号)和使用记号的规则(语法、语 义和语用)组成。
3. 可重用性好 用已有的零部件装配新的产品,是典型的重用 技术,例如,可以用已有的预制件建筑一幢结构和 外形都不同于从前的新大楼。重用是提高生产率的 最主要的方法。
4. 较易开发大型软件产品 在开发大型软件产品时,组织开发人员的方法不 恰当往往是出现问题的主要原因。用面向对象方法 学开发软件时,构成软件系统的每个对象就像一个 微型程序,有自己的数据、操作、功能和用途,因 此,可以把一个大型软件产品分解成一系列本质上 相互独立的小产品来处理,这就不仅降低了开发的 技术难度,而且也使得对开发工作的管理变得容易 多了。这就是为什么对于大型软件产品来说,面向 对象范型优于结构化范型的原因之一。
(3) 按照子类(或称为派生类)与父类(或称为基类)的 关系,把若干个对象类组成一个层次结构的系统 (也称为类等级)。在这种层次结构中,通常下层的 派生类具有和上层的基类相同的特性(包括数据和 方法),这种现象称为继承(inheritance)。但是,如 果在派生类中对某些特性又做了重新描述,则在派 生类中的这些特性将以新描述为准,也就是说,低 层的特性将屏蔽高层的同名特性。
在面向对象的软件技术中,“类”就是对具有 相同数据和相同操作的一组相似对象的定义,也就 是说,类是对具有相同属性和行为的一个或多个对 象的描述,通常在这种描述中也包括对怎样创建该 类的新对象的说明。 以上先详细地阐述了对象的定义,然后在此基 础上定义了类。也可以先定义类再定义对象,例如, 可以像下面这样定义类和对象: 类是支持继承的 抽象数据类型,而对象就是类的实例。
(2)类(class) 现实世界中存在的客观事物有些是彼此相似的, 例如,张三、李四、王五……虽说每个人职业、性 格、爱好、特长等等各有不同,但是,他们的基本 特征是相似的,都是黄皮肤、黑头发、黑眼睛,于 是人们把他们统称为“中国人”。人类习惯于把有 相似特征的事物归为一类,分类是人类认识客观世 界的基本方法。
(6)属性(attribute) 属性就是类中所定义的数据,它是对客观世界实体 所具有的性质的抽象。类的每个实例都有自己特有 的属性值。 在C++语言中把属性称为数据成员 (7)封装(encapsulation) 从字面上理解,所谓封装就是把某个事物包起来, 使外界不知道该事物的具体内容。把数据和实现操 作的代码集中起来放在对象内部。一个对象好像是 一个不透明的黑盒子,表示对象状态的数据和实现 操作的代码与局部数据,都被封装在黑盒子里面。
(4) 消息(message) 消息就是要求某个对象执行在定义它的那个类中所 定义的某个操作的规格说明。通常,一个消息由下 述3部分组成: 接收消息的对象; 消息选择符(也称为消息名); 零个或多个变元。 (5)方法(method) 方法就是对象所能执行的操作,也就是类中所定义 的服务。方法描述了对象执行操作的算法,响应消 息的方法。在C++语言中把方法称为成员函数。
一个典型的软件系统组合了3方面内容:它使用 数据结构(对象模型),执行操作(动态模型),并且 完成数据值的变化(功能模型)。用面向对象方法开 发软件,在任何情况下,对象模型始终都是最重要、 最基本、最核心的。在整个开发过程中,3种模型 一直都在发展、完善。在面向对象分析过程中,构 造出完全独立于实现的应用域模型;在面向对象设 计过程中,把求解域的结构逐渐加入到模型中;在 实现阶段,把应用域和求解域的结构都编成程序代 码并进行严格的测试验证。
概括地说,面向对象方法具有下述4个要点: (1) 认为客观世界是由各种对象组成的,任何事物 都是对象,复杂的对象可以由比较简单的对象以某 种方式组合而成。按照这种观点,可以认为整个世 界就是一个最复杂的对象。因此,面向对象的软件 系统是由对象组成的,软件中的任何元素都是对象, 复杂的软件对象由比较简单的对象组合而成。 由此可见,面向对象方法用对象分解取代了传统方 法的功能分解。
面向对象方法学的优点
1. 与人类习惯的思维方法一致 传统的程序设计技术是面向过程的设计方法,这 种方法以算法为核心,把数据和过程作为相互独立 的部分,数据代表问题空间中的客体,程序代码则 用于处理这些数据。
2. 稳定性好 传统的软件开发方法以算法为核心,开发过程基 于功能分析和功能分解。用传统方法所建立起来的 软件系统的结构紧密依赖于系统所要完成的功能, 当功能需求发生变化时将引起软件结构的整体修改。 事实上,用户需求变化大部分是针对功能的,因此, 这样的软件系统是不稳定的。
(10) 重载(overloading) 有两种重载:函数重载是指在同一作用域内的若 干个参数特征不同的函数可以使用相同的函数名字; 运算符重载是指同一个运算符可以施加于不同类型 的操作数上面。当然,当参数特征不同或被操作数 的类型不同时,实现函数的算法或运算符的语义是 不相同的。
3、 面向对象建模
封装也就是信息隐藏,通过封装对外界隐藏了对象 的实现细节。 对象类实质上是抽象数据类型。类把数据说明和操 作说明与数据表达和操作实现分离开了,使用者只 需知道它的说明(值域及可对数据施加的操作), 就可以使用它。 7. 继承(inheritance) 广义地说,继承是指能够直接获得已有的性质和特 征,而不必重复定义它们。在面向对象的软件技术 中,继承是子类自动地共享基类中定义的数据和方 法的机制。
5. 可维护性好 用传统方法和面向过程语言开发出来的软件很 难维护,是长期困扰人们的一个严重问题,是软件 危机的突出表现。
2、 面向对象的概念
(1) 对象
在应用领域中有意义的、与所要解决的问题有关 系的任何事物都可以作为对象,它既可以是具体的 物理实体的抽象,也可以是人为的概念,或者是任 何有明确边界和意义的东西。,对象是对问题域中 某个实体的抽象,设立某个对象就反映了软件系统 具有保存有关它的信息并且与它进行交互的能力。
4.1 类图的基本符号
类图描述类及类与类之间的静态关系。类图是一种 静态模型,它是创建其他UML图的基础。一个系 统可以由多张类图来描述,一个类也可以出现在几 张类图中。 定义类 UML中类的图形符号为长方形,用两条横线把长 方形分成上、中、下3个区域(下面两个区域可省 略),3个区域分别放类的名字、属性和服务。
对象的形象表示
一个对象很像一台录音机。当在软件中使用一个 对象的时候,只能通过对象与外界的界面来操作它。 对象与外界的界面也就是该对象向公众开放的操作。 使用对象向公众开放的操作就好像使用录音机的按 键,只须知道该操作的名字(好像录音机的按键名) 和所需要的参数(提供附加信息或设置状态,根本 无须知道实现这些操作的方法。事实上,实现对象 操作的代码和数据是隐藏在对象内部的,一个对象 好像是一个黑盒子,表示它内部状态的数据和实现 各个操作的代码及局部数据,都被封装在这个黑盒 子内部,在外面是看不见的,更不能从外面去访问 或修改这些数据或代码。
(9) 多态性(polymorphism) 多态性一词来源于希腊语,意思是“有许多形 态”。在面向对象的软件技术中,多态性是指子类 对象可以像父类对象那样使用,同样的消息既可以 发送给父类对象也可以发送给子类对象。也就是说, 在类等级的不同层次中可以共享(公用)一个行为(方 法)的名字,然而不同层次中的每个类却各自按自 己的需要来实现这个行为。当对象接收到发送给它 的消息时,根据该对象所属于的类动态选用在该类 中定义的实现算法。
面向对象方法学
1 2 3 4 5 6 面向对象方法学概述 面向对象的概念 面向对象建模 对象模型 动态模型 功能模型
1、面向对象方法学概述
面向对象方法学的出发点和基本原则,是尽可能 模拟人类习惯的思维方式,使开发软件的方法与过 程尽可能接近人类认识世界解决问题的方法与过程, 也就是使描述问题的问题空间(也称为问题域)与实 现解法的解空间(也称为求解域)在结构上尽可能一 致。
相关文档
最新文档