《面向对象分析与设计》一1.2 面向对象的基本思想

1.2 面向对象的基本思想

面向对象方法已深入到计算机软件领域的几乎所有分支。它不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学。因而,面向对象方法有着自己的基本思想。
面向对象方法解决问题的思路是从现实世界中的客观对象(如人和事物)入手,尽量运用人类的自然思维方式从不同的抽象层次和方面来构造软件系统,这与传统开发方法构造系统的思想是不一样的。特别是,面向对象方法把一切都看成是对象。下面以开发一个开发票的软件为例来说明这种观点。发票的样本如图1.1所示。

按非面向对象思路,要定义数据结构(如C中的结构或Pascal中的记录)以及编写根据数据结构进行计算的函数或过程。而按面向对象思路,先把发票看成一个对象,其中有若干属性,如编号、名称和规格等,还有若干操作,如计算一种商品金额的操作“单项金额计算”和计算金额合计的操作 “发票金额合计”,然后再根据具体编程语言考虑怎样实现这个对象。
人们已经形成共识:面向对象方法是一种运用对象、类、继承、聚合、关联、消息和封装等概念和原则来构造软件系统的开发方法。下面具体地阐述面向对象方法的基本思想:
1)客观世界中的事物都是对象(object),对象间存在一定的关系。面向对象方法要求从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域(现实世界)中的事物以及事物间的联系为中心来思考问题和认识问题,并根据这些事物的本质特征和系统责任,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射到问题域,保持问题域中的事物及其相互关系的本来面貌。
2)用对象的属性(attribute)表示事物的数据特征;用对象的操作(operation)表示事物的行为特征。
3) 对象把它的属性与操作结合在一起,成为一个独立的、不可分的实体,并对外屏蔽它的内部细节。
4)通过抽象对事物进行分类。把具有相同属性和相同操作的对象归为一类,类(class)是这些对象的抽象描述,每个对象是它的类的一个实例。
5) 复杂的对象可以用简单的对象作为构成部分。
6) 通过在不同程度上运用抽象原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作。
7) 对象之间通过消息进行通信,以实现对象之间的动态联系。
8) 通过关联表达类之间的静态关系。
图1.2为上述部分思想的一个示意图。

利用抽象原则从客观世界中发现对象以及对象间的关系,其中包括整体对象和部分对象,进而再把对象抽象成类,把对象间的关系抽象为类之间的关系。通过继续运用抽象原则,确定类之间存在的继承关系。上述简略地说明了建立系统的静态结构模型的思想,系统其他模型的建立原则也与此类似,这些内容将是本书讲述的重点。通过以图形的方式作为建模的主要方式之一,分别建立系统的分析与设计模型,进而得到可运行的程序。正是通过面向对象建模,对所要解决的问题有了深刻且完整的认识,进而把其转换成可运行的程序,使得程序所处理的对象是对现实世界中对象的抽象。
从上述可以看出,面向对象方法强调充分运用人类在日常逻辑思维中经常采用的思想方法与原则,如抽象、聚合、封装和关联等。这使得软件开发者能更有效地思考问题,并以其他人也能看得懂的方式把自己的认识表达出来。为了更全面和清楚地表达认识,面向对象方法要用多种图来详述模型,即从多方面来刻画模型。像一些开发方法一样,面向对象方法也要求从分析、设计和实现等不同抽象层次(开发阶段)来开发复杂的软件系统。
面向对象方法也是多种多样的,尽管各种面向对象方法不同,但都是以上述基本思想为基础的。还要指出的是,一种方法要包含一组概念和相应的表示法以及用其构造系统的过程指导,面向对象方法也不例外。贯穿于本书的面向对象概念及表示法均取自UML 24;至于过程指导,国内外尚无统一标准,本书给出的是基于特定活动而组织的,其特点是易学易用,且不失应用的普遍性。

时间: 2024-05-18 04:39:47

《面向对象分析与设计》一1.2 面向对象的基本思想的相关文章

《面向对象分析与设计》一第1章 面向对象方法概论

第1章 面向对象方法概论 本章首先简要地回顾传统软件开发方法中存在的问题,然后重点讨论面向对象的基本思想.主要概念和基本原则,论述面向对象方法的主要优点,并对面向对象方法的发展史和现状以及统一建模语言(Unified Modeling Language, UML)进行简介. 通过对本章的学习,读者要了解面向对象方法的主要内容,掌握基本知识,为进一步学习与应用面向对象分析和设计方法打下基础.

《面向对象分析与设计》一1.4面向对象方法的主要优点

1.4面向对象方法的主要优点 本节从认识论的角度和软件工程方法的角度看一下面向对象方法带来的益处,并把面向对象方法与传统方法进行比较,看面向对象方法有什么优点. 1. 从认识论的角度面向对象方法改变了开发软件的方式 面向对象方法从对象出发认识问题域,对象对应着问题域中的事物,其属性与操作分别刻画了事物的性质和行为,对象的类之间的继承.关联和依赖关系能够刻画问题域中事物之间实际存在的各种关系.因此,无论是系统的构成成分,还是通过这些成分之间的关系而体现的系统结构,都可直接地映射到问题域.这使得运用

《面向对象分析与设计》一1.6关于统一建模语言UML

1.6关于统一建模语言UML UML最初是在多种面向对象分析与设计方法相互融合的基础上形成的,后来发展成为也可以用于业务建模以及其他非软件系统建模的语言.它于1997年11月被对象管理组织(Object Management Group)采纳为建模语言规范,随后被产业界和学术界广泛接受. UML定义了建立系统模型所需要的概念并给出了表示法,但它并不涉及如何进行系统建模.因此它只是一种建模语言,而不是一种建模方法.UML是独立于开发过程的,也就是说它可以适用于不同的开发过程. UML 2.4规范由

面向对象分析与设计—四色原型模式(彩色建模、领域无关模型)

面向对象分析与设计-四色原型模式(彩色建模.领域无关模型) 1.背景介绍 至今我都清楚的记得我第一次被面试官问起什么叫"建模"技术时的情景,那是好 几年前的事情了,当时是胸有成竹的去面试一个有关系统分析.设计的.NET高级软件工程师岗位.面试官几乎没问我有关.NET方面的任何技术实现,他就简 单的问了问:"你如何把握你所分析出来的系统的正确性?",我当时有点小激动,觉得这个问题应该很简单嘛,都是概念而已,让他直接点问,结果他来一句: "你懂建模吗?,能给我

《面向对象分析与设计》一导读

前 言 在20世纪90年代,面向对象技术以其显著的优势成为计算机软件领域的主流技术,随后该技术在大多数发达国家的软件开发中得到了相当广泛的运用.在我国的软件产业界,面向对象技术的学习与应用热潮出现于20世纪90年代后期,如今面向对象分析与设计技术也已经得到了广泛的应用.当前,产业界需要大量掌握面向对象分析与设计技术的高级应用型开发人才.很多计算机学院和软件学院在软件工程教学中开设了相应的课程,旨在使学生不仅会使用一种或者几种面向对象编程语言来编程,更重要的是能运用面向对象方法进行系统建模,即通过

《面向对象分析与设计》一1.5面向对象方法的发展史及现状简介

1.5面向对象方法的发展史及现状简介 在这里把面向对象方法的发展分为三个阶段:雏形阶段.完善阶段和繁荣阶段. (1) 雏形阶段 20世纪60年代挪威计算中心开发的Simula 67,首先引入了类的概念和继承机制,它是面向对象语言的先驱.该语言的诞生是面向对象发展史上的第一个里程碑.随后20世纪70年代的CLU.并发Pascal.Ada和Modula2等语言对抽象数据类型理论的发展起到了重要作用,它们支持数据与操作的封装.犹他大学的博士生Alan Kay设计出了一个实验性的语言Flex,该语言从

《面向对象分析与设计》一3.5 检查与调整

3.5 检查与调整 对于各用况图应该综合考虑,进行检查与调整.下面针对参与者和用况给出一些需要注意的检查与调整原则. 1参与者 1) 确定系统环境中的所有角色,并都归入了相应的参与者. 2) 每个参与者都至少与一个用况相关联. 3) 若一个参与者是另一个参与者的一部分,或扮演了类似的角色,考虑把它们合并或在它们之间建立继承关系. 2用况 1) 每个用况都至少与一个参与者相关联. 2) 若两个用况有相同或相似的序列,可能需要合并它们,或抽取出一个新用况,在它们之间建立包含.扩展或继承关系. 3

.NET应用架构设计—面向对象分析与设计四色原型模式(彩色建模、领域无关模型)(概念版)

阅读目录: 1.背景介绍 2.问自己,UML对你来说有意义吗?它帮助过你对系统进行分析.建模吗? 3.一直以来其实我们被一个缝隙隔开了,使我们对OOAD遥不可及 4.四色原型模式填补这个历史缝隙,让我们真的看见OOAD的希望 5.在四色原型上运用彩色建模增强视觉冲击力 6.通过四色原型模式建模出领域无关模型 7.结束语:建模时你可以不考虑具体实现,但是建模者要懂技术实现 1.背景介绍 至今我都清楚的记得我第一次被面试官问起什么叫"建模"技术时的情景,那是好几年前的事情了,当时是胸有成竹

《面向对象分析与设计》一2.2 面向对象分析综述

2.2 面向对象分析综述 系统分析就是研究问题域,产生一个满足用户需求的系统分析模型.这个模型应能正确地描述问题域和系统责任,使后续开发阶段的有关人员能根据这个模型继续进行工作.自软件工程学问世以来,已出现过多种分析方法,其中有影响的是功能分解法.数据流法.信息建模法和20世纪80年代后期兴起的面向对象方法.前三种分析方法在历史上发挥过应有的作用,用它们也建立过许多成功的系统,直到今天仍然被一些开发者所采用.我们在谈到这些方法的缺点时不是要否定它们,而是针对具体问题进行讨论.应该指出,面向对象的