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

上传人:b****5 文档编号:3435837 上传时间:2022-11-23 格式:DOCX 页数:16 大小:29.25KB
下载 相关 举报
第7章 面向对象学习方法学.docx_第1页
第1页 / 共16页
第7章 面向对象学习方法学.docx_第2页
第2页 / 共16页
第7章 面向对象学习方法学.docx_第3页
第3页 / 共16页
第7章 面向对象学习方法学.docx_第4页
第4页 / 共16页
第7章 面向对象学习方法学.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

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

《第7章 面向对象学习方法学.docx》由会员分享,可在线阅读,更多相关《第7章 面向对象学习方法学.docx(16页珍藏版)》请在冰豆网上搜索。

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

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

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

面向对象方法学的出发点和基本原则,是尽可能按照人类的习惯思维方式,使开发软件

的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题域空间

与实现解法的解空间在结构上尽可能一致.

与传统的结构化方法相比,使用面向对象方法开发的软件,其稳定性,可修改性和可重用

性都比较好.本章内容主要包括:

传统方法学的缺点,面向对象的基本概念,面向对象模型.

7.1基础知识

7.1.1传统方法学的缺点

结构化几其他方法学的本质,是在具体的软件开发之前,通过需求分析预先定义软件

需求.然后一个一个阶段地开发用户所需要的软件,实现预先定义的软件需要.

过去的经验需要告诉我们,结构化及其他方法学并不能完全消除软件危机.结构化及其他方法学仍然有许多不足之处.

1.问题的表现

1)生产效率低

在生命周期方法学中,特别重视软件开发的阶段性.为了提高了软件开发的效率,减少

重大返工次数,强调必须早每个阶段结束之前进行评估.从而开发过程中实行严格的

质量管理,确实提高了许多软件的开发的成功率.但是,时间表明,开发高利率仍然很有用.

2)不能满足用户需要

实践表明,在开发需要模糊或需求动态变化的系统时,软件系统的结果往往不能满足

用户需求的变化.

主要表现在两个方面:

一种是开发人员不能完全获得彻底理解用户的需要,以至开发的软件系统与用户预期的系统不一致;另一种表现是,所开发的系统不能适应用户需求变化,系统的稳定性和可扩充性不能满足需要.

3)软件服用就是将已有的软件成分用于构造新的软见系统.软件复用是节约人力,提高软件效率的重要途径.结构分析.设计,几乎每一次开发一个系统时都需要针对这个具体的系统做大量的重复劳动..思维成果的可复用性差.

4)软件很难维护

实践经验告诉我们,即使是用生命周期方法学开发出来的软件,维护起来仍然相当困难,软件维护成本很高.

2.问题的原因

1)结构化技术本身的问题

结构分析和设计技术的基本思想是从目标系统整体功能的单个处理着手,自顶向下不断的把复杂的处理分解为子处理,一层一层的分解下去,直到剩下若干个容易实现的子处理为止。

由此可见,结构分析和结构设计构造系统的技术核心是围绕实现功能的“过程”进行的。

当用户需求的变化往往造成系统结构的较大变化,从而实现这种需要花费很大的代价。

另一方面,软件的系统结构设计依赖于对系统边界的定义。

因此,结构化方法的的特征很难把这种变化扩展到新的边界。

系统结构修改和扩充比较困难。

2)预先定义的需求可能会过时

有一定规模的软件,其开发时间一般需要一到三年时间。

有些需求相对稳定的软件使用传统的开发途径开发时,采用预先定义需求的策略是可行的。

但是有些软件,特别是应用软件,用户对他们的需求与外部环境,策略或内容等密切相关。

因此,在不同时间用户的需求可能有较大不同。

如果按照预先定指定的需求开发软件,当软件开发出来的时候,用户的需求就发生了变化。

3)语言鸿沟

软件开发是对问题域的认识和描叙。

从描叙事物方面看,它在分析和设计阶段提供了一些从问题域逐步过度到编程语言的描叙手段。

这如同在语言的鸿沟上铺设了一段平坦的路段。

但是在传统的软件工程方法中,这些路段并不连接。

就是说,并没有完全填平语言之间的鸿沟。

4)系统需求的模糊性

大多数应用系统,特别是信息管理系统(MIS)之类的数据处理系统。

由于其模型是随着社会的变迁而变化的。

因此,其需求模型往往很难预先准确定义。

另一方面由于需求分析目前还不能做到形式化。

许多用户对他们的需求最初只要模糊的概念。

所以就凭需求只要初步设想就能准确的说出全部需求是不切实际的。

7.1.2面向对象的基本概念

1.对象

对象是问题域或实现域中某些事物的一个抽象,他反映事物在联系中需要保存的信息和发挥作用;他是一组属性和有权对这些事物进行操作的一组服务的封装体。

2.类

类是具有相同属性和服务的一组对象的集合,他为属于该类的全部对象提供了统一的抽象描叙,其内部包括属性和服务两个主要部分。

3.继承

特殊类的对象具有拥有其一般类的全部属性和服务,称做特殊类对一般类的继承。

4.封装

把对象的属性和服务结合成为一个独立的系统单位,并尽可能隐蔽对象的内部细节。

5.消息

消息就是向对象发出的服务请求,他应该含有下述消息:

提供服务的对象标志,服务标志,输入信息和回答信息。

(p138)

6.结构与连接

面向对象方法运用一般—特殊结构,整体—部分结构,实例连接和消息连接描叙对象之间的关系。

(1)一般—特殊结构。

一般—特殊结构是由一组具有一般—特殊关系的类所组成的结构。

(2)整体—部分结构。

整体—部分结构由一组彼此间存在这种关系的对象组成。

(3)实例连接。

实例连接反映对象与对象之间的静态联系。

例如教师和学生之间的关系。

(4)消息连接。

消息连接描叙对象之间的动态联系。

7.多态性

多态性是指允许不同类的对象对统一消息做出响应。

多态性引用具有静态类型和动态类型。

动态类型可以在程序执行期间在实例之间进行变化。

静态类型是在程序上下文中由实体说明决的。

7.1.3面向对象模型

用面向对象方法开发软件,通常需要建立三种形式的模型,他们分别是描叙系统数据结构的对象模型,描叙系统控制结构的动态模型和描叙系统功能的功能模型。

1.对象模型

对象模型就是表示模型的,结构化的系统的“数据”性质。

他是客观世界实体的对象以及以及彼此间的关系的映射的模拟,描叙了系统的静态结构。

在建立对象模型时,我们的目标是从客观世界中提炼出对具体应用有价值的概念。

为了建立对象模型,需要定义一组图形符号,并且规定一组组织这些以表示特定寓意的规则。

面向对象方法学有许多表示方法,这些表示方法虽然形式各仪。

但是,他们共同的特点就是独立于具体的开发模型。

现在有的用于建立对象模型的表示方法,都包含下列符号:

(1)表示类的符号(能表示属性又能表示服务)。

(2)表示对象(类实例)的符号。

(3)表示继承关系的符号。

(4)表示类和/或对象间其他关系的符号。

2.动态模型

动态模型是表示瞬间的,行为化的系统的“控制”性质,该模型描叙了系统的控制结构,他表示瞬时的,行为化的系统控制性质,他关心的是系统的控制,操作的执行顺序,他从对象的事件和状态的角度出发,表现了对象的相互行为。

它描叙的系统属性是触发事件,事件序列,状态,事件与状态的组织。

使用状态图作为描叙工具。

3.功能模型

功能模型表示变化的系统的“功能”性质,他指明了系统应该做什么,因此更直接的反映了用户对目标系统的需求。

功能模型又许多张数据流图组成。

数据流图说明数据流是如何从外部输入,经过操作和内部存贮输出到外部。

(p139)

7.2单元练习

7.2.1填空题

1.对象的抽象是______,类的实例化是______。

2动态模型描叙了系统的——结构。

3软件系统中存在2种控制流,外部控制流是系统中对象之间外部事件的事件流,有——,——和——三种外部事件控制流。

——控制流是一个处理内部的控制,均可结构化。

4在C++,C中有一个——函数,可以使用这个过程来说明构成系统主要对象的那些类的实例。

5继承性是——自动共享父类属性和——的机制。

6对象具有封装性,实现了——的组合。

7在面向对象方法中,信息隐藏通过对象的——来实现。

类结构分离了——于——,从而支持了信息隐藏。

8抽象是指强调实体的——,——,忽略一些无关紧要的属性。

类实现了对象的——和——的抽象,他是对象的共性的抽象。

9子类只继承——的属性和操作,称为单重继承。

10对象的抽象是——,类的具体化就是——,也可以说类的实例是——。

11类具有——,他是——的行为的抽象。

12对象具有状态,对象用——来描叙他的状态。

13概念模型描叙了系统的——。

功能模型指出——,动态模型确定——,而对象模型确定-,功能模型有——组成。

14面向对象有三个基本要素,他们是——,——,——。

15面向对象技术有三个级别上促进了共享,他们是——,——,——。

16活动是一种有时间间隔的操作,他是依附于——。

动作是一种瞬时操作,他是与——联系在一起的操作。

17封装性是指所以软件内部都有明确的——以及清楚的——。

每个软件部件都有友好的——,软件部件的——与——分离。

18主要的对象类型有——,——,——,——。

19同一个类中的共享是说同一个类中的对象有着相同的——和相同的——。

20结构化方法的本质是——,其——,可修改性和可重用性都比较差。

21对象还有——,用于改变对象的状态。

对象实现了——和——的组合。

22面向对象方法认为系统是由应用域的——组成。

23对象具有状态,描叙对象的状态用他的——。

24类具有属性,描叙类的属性用——。

25一个方法有——,——和——。

26动态模型描叙了系统的——。

27动态模型的主要元素是类,关联和——。

28通过——这种机制和构造来实现不同应用中的信息共享。

(p140)

29面向对象程序设计语言与其他程序设计语言的最主要差别是他具有——。

29对象具有很强的——能力和——功能。

30类具有属性,他是对象的——的抽象,用——来描叙类的属性。

31面向对象的特征是——,——,——,——。

32子类自动共享父类的属性和操作的机制成称为——。

33类的实例化是——。

34不同应用中信息共享的这种机制和构造是通过——来实现的。

7.2.2选择题

1.对象模型的描叙工具是()。

A.状态图B数据流图

C对象图D结构图

2.面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析,设计和实现一个软件系统的方法和过程,尽可能接近人类认识世界解决问题的方法和过程,因此面向对象方法有许多特征,如软件系统是由对象组成的;();对象彼此间仅能通过传递消息相互联系;层次结构的继承。

A开发过程基于功能分析和功能分解。

B强调需求分析的重要性。

C把对象划分成类,每个对象类都定义一组数据和方法。

D对即存类进行调整。

3.每个对象可用他自己的一组属性和他可以执行的一组()来表现。

A行为B功能C操作D数据

4.面向对象软件技术的许多强有力的功能和突出的优点都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(),一个类获得其父类的全部属性(数据和操作)。

A传递性B继承性C复用性D并行性

5面向对象的主要特征除对象唯一性,封装,继承外,还有()。

A多态性B完整性C可移植性D兼容性

6.面向对象开发方法子概念和表示上的一致性保证了分析和设计的()过渡。

A困难B不容易C平滑D顺序

7.动态模型的描叙工具是()。

A对象图B结构图C状态图D设计图

8.表示对象的相互行为的模型是()模型。

A对象B动态

C功能D静态

9在考察系统的一些涉及时序个改变的状况时,要用动态模型来表示。

动态模型着重与系统的控制逻辑,它包括两个图:

一个是事物追寻图,另一个是()。

A数据流图B状态图

C系统结构图D时序图

10在确定属性时,所有()是后选定属性。

A动词B名词

C修饰D词组

11在开发废气型类时,在软件生存期中最花费时间不部分应当是软件的()。

A实现B测试

C设计D求精和维护

12一个面向对象系统的体系结构通过它的成分对象和对象间的关系确定,与传统的面向数据流的结构化开发方法相比,它具有()优点。

A设计稳定B变换分析

C事物分析D模块独立性

13以下说法错误的是()。

A面向对象方法不仅支持过程抽象,而且支持数据抽象。

B某些面向对象的程序设计语言还支持参数化抽象。

C信息隐蔽通过对象的封装性来实现。

D在面向对象方法中,类是最最基本的模块。

14所有的对象可以成为各种对象类,每个对象类都定义了一组()。

A说明B方法

C过程D类型

15以下说法错误的是()。

A对象具有很强的表达能力和描述功能。

B对象是人们要进行研究的任何事物。

C对象是封装的最基本的事物。

D类封装比对象封装更具体、更细致。

16一个面向对象的系统的体系通过它的()的关系确定。

A类与对象B成分对象与对象

C过程与对象D类与界面

17以下说法错误的是()。

A多态性防止了程序相互依赖性而带来的变动影响。

B多态性是指相同的操作或函数、过程可作用于多中类型的对象上并获得不用结果。

C多态性与继承性相结合使函数具有更广阔的重用性和可扩充性。

D封装性是保证软件不见具有优良的模块性的基础。

18在软件工程学中,我们把一组具有相同数据结构和相同操作的对象的集合定义为

(),此定义包括一组数据属性和在数据上的一组合法操作。

A类B属性

C对象D消息

19对象是面向对象开发方法的基本成分,每个对象可用它本身的一组()和它可以执行的一组操作来定义。

A服务B参数

C属性D调用

20通过执行对象的操作改变该对象的属性,但它必须通过()传递。

A接口B消息

C信息D操作

21()模块表示了对象的相互行为。

A对象B动态

C功能D分析

22在确定类时,所有()候选是类。

A名词B形容词

C动词D代词

23按照传统的生命周期方法开发软件,各阶段工作自顶向下,从抽象到具体顺序进行,我们一般用()模型模拟。

A螺线模型B喷泉模型

C瀑布模型D行为模型

24Rumbangh等人提出的对象模型技术OMT把分析时收集的信息构造在三类模型中,即对象模型、动态模型和()。

A信息模型B控制模型

C功能模型D行为模型

25以下说法错误的是()。

A数据流图中的处理用来改变数据值。

B在一个计算中,用数据流来表示一中间数据值,数据流不能改变数据值。

C动作对象是一中主动对象,它通过生成或者数据值来驱动数据流图。

D数据流图中的数据存储是被动对象,它用来存储数据。

E存储和动作对象可以用文件或外部设备实现。

26与时间联系在一起的瞬间操作是()。

A处理B动作

C活动D加工

27应用执行对象的操作可以改变该对象的()。

A属性B功能

C行为D数据

28以下说法正确的是()。

A组装结构可用来描述现实世界中的一般的抽象关系。

B分类结构可用开描述现实世界中的类的组成的抽象关系。

C.面向对象的继承性是子类自动共享父类数据结构和方法的机制

D.面向对象的唯一性是指将具有一致性的数据结构(属性)和行为(操作)的对象抽象成类

29.以下说法正确的是()

A.对象模型指出发生了什么

B动态模型确定什么时候发生

C功能模型确定发生的客体

D功能模型描述了系统的所有计算,它考虑所计算的次序

30.有时间间隔的操作是(  )

A动作   B活动  C 加工  D处理

31软件部分的内容实现与外部可访问性分离,这是指软件的()

A继承性B共享性C封装性D抽象性

32常用动词或动词词组来表示()

A对象B类C关联D属性

33在只有单重继承的类层次结构中,类层次结构是()层次结构。

A树型B网状型C星型D环型

34以下说法正确的是()

A功能模型不包括对象模型中值的约束条件

B功能模型说明对象模型中操作的含义

C功能模型说明动态模型中约束的含义

D功能模型说明对象模型中动作的意义

35以下说法正确的是()

A角色说明类在关联中的作用,它位于关联的端点

B不同类的关联角色不能省略

C同类的关联角色可有可无

D在一个类层次结构中,若有多重继承,则该类层次结构是树型层次结构

E在一个类层次结构中,若有单重继承,则该类层次结构是网状层次结构

7.2.3简答题

1试述面向对象方法的开发过程是怎样的?

2简述对象,类,类结构,消息,方法的基本概念。

3传统开发方法存在的问题是什么?

4试述面向对象方法有哪些特征。

5为什么说用结构化方法开发的软件,其稳定性,可修改性和可重用性都比较差?

6功能模型的特征有哪些?

7继承性和多态性的好处是什么?

 

 

8.简述三种分析模型的关系。

9简述动态建模的过程。

10简述面向对象的要素。

11简述功能建模的过程。

7.3参考答案

一填空题

1类,对象

2控制3过程驱动序列,事件驱动序列,并发序列,内部

4main()5子类,操作6数据和操作7封装性,接口,实现

8本质,内在的属性,数据(即状态),行为9一个父类10类,对象,对象

11操作对象12数据值13所有计算,发生了什么,什么时候发生,发生的客体,多张数据流图14抽象,封装性(信息隐藏),共享性

15同一个类中的共享,在同一个应用中的共享,在不同应用中的共享

16状态的操作,事件

17范围,外部边界,界面接口,内部实现,外部可访问性

18有形实体,作用,事件,性能说明

19数据结构行为特征20功能分解稳定性

21行为数据操作22对象23属性值24数据结构

25方法名参数方法体26动态行为27关系28类库

29继承性30表达描述31状态数据结构32对象唯一性分类性继承性多态性33继承34对象

35类库

二选择题

1.C2.C3.C4.B5.A6.C7.C8.B9.B10.C11.D12.A13.D14.B15.D16.B17.A18.A19.C20.B21.B22.A23.B24.C25.E26.B27.A28.C29.B30.B31.C32.C33.A34.B35.A

三简答题

1面向对象开发方法包括以下几个过程:

(1)面向对象的分析。

面向对象的分析的目的是对客观世界的系统建立对象模型,动态模型,功能模型。

设计者必须了解需求以及问题所处的环境,必须调查所有需求,分析所有需求的实质含义。

在历届系统需求的基础上,按照上述建立模型的过程进行建模工作。

建立模型的工作不是一次就可以建好的,复杂问题的模型需要反复构造,显见模型的子集,然后扩展到整个模型。

(2)面向对象的设计。

面向对象的设计是把分析阶段得到的分析模型,经过逐步扩充和完善,转变为设计模型。

将分析模型的问题域的概念转变为设计模型的实现概念上来。

面向对象的设计也可以分为系统设计和对象设计。

系统设计的确实现系统的策略和目标系统的高层结构,如人机界面的设计。

数据管理的设计,如软件控制的实现,系统的体系结构等。

对象设计确定用到的类,关联的完整定义,接口形式及实现操作系统的算法,可以增加实现所必须的内部对象,对数据结构和算法进行优化。

面向对象的设计所遵循的基本原理和启发规则与结构化设计方法类似,但是增加了一些面向对象的新特点。

尽管面向对性分析各面向对象设计是两个阶层,但是在实际的软件开发中二者的界线很模糊的,许多分析结果可以影映射为数据结果,而在设计过程中又往往会加深和补充对系统需求的理解,从而进一步完善分析结果。

因此,分析各设计是一个多次反复迭代的过程。

(3)面向对象的实现。

面向对象的实现包括两方面的工作,把面向对象的设计结果翻译成某种程序设计语言书写的面向对象程序,然后进行测试并调试面向对象的程序。

面向对象的程序设计的质量基本上由面向对象的设计质量决定。

但是与程序设计语言的特点和程序设计风格有关系。

软件测试仍然是保证软件可靠性的主要措施,但是面向对象的软件也会给测试带来了新的特天和新问题,如继承性就给测试带来了困难,面向对象的程序的执行与面向过程的程序的执行业大不相同,它是事件驱动的,对象彼此之间通过消息传递启动相应操作,但是对象并没有明显的规定用什么次序启动它的操作才是合法的。

因此传统的测试方法也不再完全适用了。

2.他们的基本的概念如下:

(1)对象。

对象是人们要进行研究的任何事物,从最简单的证书到复杂的飞机均可看作对象,他不仅能表示具体的事物,还能表示抽象的规则,计划或事物件。

主要有如下对象类型:

有形实体,作用,事件,性能说明。

对象具有状态。

一个对象用数据来描述它的状态,对象还是操作,用于改变对象的状态,对象及其操作就是对象的行为。

对象实现了数据和操作的结合,是数据操作封装与对象的统一体中。

对象内的数据具有自己的操作。

从而可灵活的专门描述对象的独特行为,具有较强的独立性和自治性,其内部状态不受或很少受外界的影响,具有很好的模块化特点。

为软件重用奠定了坚实的基础。

(2)类。

类是具有相同属性和服务的一组对象的集合。

因此,对象的抽象是类,类的具体化就是对象,也可以说类的实体是对象。

(3)类结构。

在客观世界中有若干类,这些类之间有一定的关系。

通常有两种主要的结构关系,即一般——具体结构关系,整体——部分结构关系。

1.一般——具体结构关系成为分类关系,也可以说是“或”关系,或者是“isa”关系。

类的这种层次结构可用来描述现实世界中得一般化的关系,通常月在上层的类越具有一般性共性,约在下层的类越具体,越细化。

2.整体——部分结构称为组装结构,他们之间的关系是一种“与”关系,或者是“hasa”关系。

类的这种层次关系可用来描述现实世界中的抽象组成的抽象关系。

上层的类具有整体性,下层的类具有成员性。

在类的层次中,通常上层类称为父类或超类,下层类称为子类。

(4)消息。

对象之间进行通信的构造称为消息。

在对象的操作中,当一个消息发送到某个对象时,消息包含接受对象去执行某种操作的信息。

接受信息的对象经过解释,然后给予响应。

这种通信机制称为信息传递。

发送一条信息至少要包含说明接收消息的对象名,发送给该对象的消息名(即对象名,方法名),一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。

(5)方法。

类中操作的实现过程叫作方法,一个方法有方法名,参数,方法体。

当一个对象接收一条消息后,它所包含的方法决定对象怎样动作。

方法也可以发送消息给其他对象,请求执行某一动作或提供信息。

由于对象的内部对用户是密封的,所以消息只是对象同外部世界连接的管道。

对象内部的数据只能被自己的方法所操纵。

3.传统开发方法存在的问

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1