最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

面向对象的软件工程方法

来源:动视网 责编:小OO 时间:2025-10-03 04:14:40
文档

面向对象的软件工程方法

面向对象的软件工程方法一面向对象的基本概念近年来,为了克服传统软件工程方法存在的复用性和可维护性差以及难以满足用户需要等缺点,面向对象的思想越来越受到人们的欢迎和重视。面向对象的思想提倡运用人类的思维方式,从现实世界中存在的事物出发来构造软件。它建立在“对象”概念的基础上,以对象为中心,以类和继承为构造机制,来设计和构造相应的软件系统。面向对象的基本思想最先体现在面向对象程序设计语言中,然后才逐渐形成了面向对象的分析和设计方法。20世纪60年代开发的Simula67语言首次提出了对象的概念,它
推荐度:
导读面向对象的软件工程方法一面向对象的基本概念近年来,为了克服传统软件工程方法存在的复用性和可维护性差以及难以满足用户需要等缺点,面向对象的思想越来越受到人们的欢迎和重视。面向对象的思想提倡运用人类的思维方式,从现实世界中存在的事物出发来构造软件。它建立在“对象”概念的基础上,以对象为中心,以类和继承为构造机制,来设计和构造相应的软件系统。面向对象的基本思想最先体现在面向对象程序设计语言中,然后才逐渐形成了面向对象的分析和设计方法。20世纪60年代开发的Simula67语言首次提出了对象的概念,它
面向对象的软件工程方法

一 面向对象的基本概念

近年来,为了克服传统软件工程方法存在的复用性和可维护性差以及难以满足用户需要等缺点,面向对象的思想越来越受到人们的欢迎和重视。面向对象的思想提倡运用人类的思维方式,从现实世界中存在的事物出发来构造软件。它建立在“对象”概念的基础上,以对象为中心,以类和继承为构造机制,来设计和构造相应的软件系统。

面向对象的基本思想最先体现在面向对象程序设计语言中,然后才逐渐形成了面向对象的分析和设计方法。20世纪60年代开发的Simula67语言首次提出了对象的概念,它是第一个面向对象程序设计语言。Ada语言是在20世纪70年代出现的又一种支持数据抽象的基于对象概念的程序设计语言。最具有代表性和影响力的面向对象程序设计语言是由美国Xerox(施乐)公司Palo Alto研究中心的Alan Kay开发的Smalltalk语言。Smalltalk全面实现了面向对象技术的机制,丰富了面向对象的概念,它的发布引起了人们对面向对象概念的广泛关注。随后产生了多种面向对象程序设计语言,如C++和Java等,同时,面向对象的分析和设计方法也被广泛应用于软件开发中。比较具有代表性的基于面向对象思想的软件开发方法有Grady Booch提出的面向对象的分析与设计方、Jim Rumbaugh提出的面向对象的建模技术和Zvar Jacobson提出的面向对象的软件工程方法学等。

Alan Kay

2003年,Alan Kay因在面向对象程序设计上的杰出贡献,成为图灵奖的得主。Alan Kay于1970年加入Xerox(施乐)公司的Palo Alto研究中心。20世纪70年代初期,Alan Kay等人开发了最具代表性和影响力的面向对象语言Smalltalk,因此,被誉为“Smalltalk之父”。

Alan Kay不但是面向对象编程语言Smalltalk的发明人之一,也是面向对象编程思想的创始人之一。他是笔记本电脑最早的构想者,同时也是现代Windows GUI的架构师。Alan Key可谓是计算机领域的大师。

相对于传统的软件工程思想而言,面向对象的思想更符合人类的思维逻辑,它淡化了计算机的观点,以现实世界中的模型作为构造软件系统的依据。面向对象的基本概念包括对象、类、封装、继承和多态,下面一一介绍。

1. 对象

对象可以是客观世界中存在的事物,也可以是概念化的实体,它由一组属性和操作组成。属性是用来描述对象静态特征的数据项,是对客观世界实体所具有性质的抽象。操作是用来描述对象动态特征。比如,把人当成一个对象,那么他的属性就有身高、体重、姓名和年龄等静态特征,他的操作就包括工作、学习、吃饭和运动等;把汽车当成一个对象,那么它的属性就有品牌、颜色、价格和寿命等,它的操作就包括加速、减速和刹车等。

理解对象的概念时,需要注意以下几点。

对象的数据是封装起来的,对数据的处理需要通过特定的操作。

对象之间通过传递消息进行通信,不同的对象地处理自身的数据。

对象具有主动性。要处理对象的内部数据时,外界需要通过接口向对象发送消息,请求它执行特定的操作。

2. 类

类是对对象的抽象,是对具有相同属性和相同操作的一组相似对象的定义。通常情况下,很多对象都有相似的特征。比如,对于两个教师,他们虽然可能身高、体重、性别、年龄和籍贯等特征不同,但是职业却是相同的;对于两把椅子,它们可能颜色、形状、价格和位置等特征不同,但是作用却是相同的。在这种情况下,我们就可以忽略事物的非本质特征,只注意那些与当前目标相关的本质特征,从中找出事物的共性,把本质特征相同的事物划分为一类,即将多个对象抽象为类。

对于同类对象,它们具有相同的属性和操作,但是每个对象的属性值可能不同,执行操作的结果也可能不同。比如,在教务管理系统中,可以定义“学生”类,并定义编号、姓名和院系等属性,及登录该系统进行操作。每位学生都有自己特定的编号、姓名和院系等属性值,并且执行登录操作后,都会进入个性化的主页。

谈到类的概念,就必须知道什么是类的实例。实例是由某个特定的类描述的一个具体的对象。比如,对于“教师”类,某位教师“王一”就是类的一个实例;对于“学生”类,某位学生“李二”就是该类的一个实例。

3. 封装

封装是指把对象的属性和操作结合在一起,组成一个的单元。封装强调两个概念,即和封闭。

是指对象是一个不可分割的整体,它集成了事物全部的属性和操作,并且它的存在不依赖于外部事物。

封闭是指与外部的事物通信时,对象要尽量地隐藏其内部的实现细节,它的内部信息对外界来说是隐蔽的,外界不能直接访问对象的内部信息,而只能通过有限的接口与对象发生联系。

可以说,类是数据封装的工具,而对象是封装的实现。类的成员又分为公有成员、私有成员和保护成员,它们分别有不同的访问控制机制。封装是软件模块化思想的重要体现。

4. 继承

继承表示类之间的层次关系,它使得某类对象可以自动拥有另外一个或多个对象的全部属性和操作。比如,某系统已经定义了一个学生类,现在还需要定义一个研究生类。由于研究生也属于学生的一种,它具有学生所有的一切属性和操作,这时就可以采用继承的方法,使研究生类直接获得学生类的一切属性和操作。在这个系统中,研究生类就叫做子类或派生类,学生类就叫做父类或基类。子类可以把父类定义的内容自动作为自己的部分内容,同时再加入新的内容。

继承可以分为单重继承和多重继承。

单重继承是指一个子类只有一个父类。

多重继承是指一个子类可以同时继承多个父类。

单重继承构成的类之间的关系是树状结构,多重继承构成的类之间的关系是网状结构。继承简化了定义一个新类的过程,有利于人们对事物的认识和描述,达到了软件复用的目的。

5. 多态

多态是一种使父类中定义的属性或操作被子类继承后,可以有不同的实现的机制。换句话说,多态允许属于不同类的对象对同一消息做出不同的响应。当一个对象接收到进行某项操作的消息时,多态机制将根据对象所属的类,动态地选用该类中定义的操作。比如,先定义一个父类“几何图形”,它具有“计算面积”的操作,然后再定义一些子类,如“三角形”、“长方形”和“圆形”,它们可继承父类“几何图形”的各种属性和操作,并且在各自的定义中要重新描述“计算面积”的操作。这样,当有计算几何图形面积的消息发出时,对象会根据类的类型做出不同的响应,采用不同的面积计算公式。

多态这种机制极大地减少了软件设计中的冗余信息,提高了软件的可复用性和可扩展性。

二 面向对象的软件工程方法的特征与优势

自软件工程问世以来,出现了很多种软件工程的方法学。方法、工具和过程是软件工程方法学的三个重要因素。

方法是指为了完成软件开发的各项任务所采用的技术方法。

工具是为方法的实行提供的自动或半自动的支持。

过程是指为了获得高质量的软件产品所需要完成的一系列任务的框架。

知识小卡片

在软件工程领域,“方法学”是被广泛使用的一个词汇。在20世纪70年代,“方法学”一词用于表示“开发软件产品的方式”,而该词实际上是指“方法的科学”。“方法学”应用于整个软件工程的过程。

1. 流行的软件工程方法

目前比较流行的软件工程方法包括面向过程的软件工程方法、面向数据的软件工程方法、面向对象的软件工程方法和形式化的软件工程方法。

(1) 面向过程的软件工程方法基于“自顶向下,逐步求精”的原则来完成软件开发各阶段的任务。程序的执行过程主要由顺序、选择和循环等控制结构来控制。

(2) 面向数据的软件工程方法中的数据是指元数据。元数据并不表示某一记录的具体信息,而是用来将一些基础数据组织起来,即元数据是组织数据的数据。比如,信息系统中实体名及姓名的集合,或者数据库中物理表的表名及字段名的集合。这种方法与关系数据库联系紧密,特别适合信息系统中数据层的设计与实现。

(3) 面向对象的软件工程方法是当前最流行的软件工程方法,它主要有以下几个方面的特征。

把数据和操作封装在一起,形成对象。对象是构成软件系统的基本构件。

把特征相似的对象抽象为类。

类之间可以存在继承或被继承的关系,形成软件系统的层次结构。

对象之间通过发送消息进行通信。

将对象的私有信息封装起来。外界不能直接访问对象的内部信息,而必须是发送相应的消息后,通过有限的接口来访问。

(4) 形式化的软件工程方法基于严格的数学逻辑,多应用于对安全性和可靠性要求较高的特殊领域。

2. 面向对象的软件工程方法的优点

(1) 符合人类的思维习惯。通常人类在认识客观世界的事物时,不仅会考虑到事物会有哪些属性,还会考虑到事物能完成哪些操作,也就是说静态的属性及动态的动作特征都是组成事物的一部分,它们组合起来才能完整地表达一个事物。而面向对象的软件工程方法最重要的特点就是把事物的属性和操作组成一个整体,以对象为核心,更符合人类的思维习惯。此外,面向对象的软件工程方法更加注重人类在认识客观世界时循序渐进,逐步深化的特点。用面向对象的软件工程方法进行软件开发的过程,是一个主动的多次反复迭代的过程,而不是把整个过程划分为几个严格的顺序阶段。

(2) 稳定性好。传统的软件工程方法基于功能分析和功能分解。当软件功能发生变化时,很容易引起软件结构的改变。而面向对象的软件工程方法则是基于对象的概念,用对象来表示与待解决的问题相关的实体,以对象之间的联系来表示实体之间的关系。当目标系统的需求发生变化时,只要实体及实体之间的联系不发生变化,就不会引起软件系统结构的变化,而只需要对部分对象进行局部修改(如从现有的类中派生出新的子类)就可以实现系统功能的扩充。因此,基于对象的软件系统稳定性比较好。

(3) 可复用性好。面向对象技术采用了继承和多态的机制,极大地提高了代码的可复用性。从父类派生出子类,一方面复用了父类中定义的数据结构和代码,另一方面提高了代码的可扩展性。

复用是指使用一个产品的组件来简化另一个功能不同的产品的开发。

——Stephen R. Schach

(4) 可维护性好。由于利用面向对象软件工程方法开发的软件系统稳定性好和可复用性好,而且采用了封装和信息隐藏机制,易于对局部软件进行调整,所以系统的可维护性比较好。

基于以上这些优点,面向对象的软件工程方法越来越受到人们的青睐。

文档

面向对象的软件工程方法

面向对象的软件工程方法一面向对象的基本概念近年来,为了克服传统软件工程方法存在的复用性和可维护性差以及难以满足用户需要等缺点,面向对象的思想越来越受到人们的欢迎和重视。面向对象的思想提倡运用人类的思维方式,从现实世界中存在的事物出发来构造软件。它建立在“对象”概念的基础上,以对象为中心,以类和继承为构造机制,来设计和构造相应的软件系统。面向对象的基本思想最先体现在面向对象程序设计语言中,然后才逐渐形成了面向对象的分析和设计方法。20世纪60年代开发的Simula67语言首次提出了对象的概念,它
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top