ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:29.25KB ,
资源ID:3435837      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3435837.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第7章 面向对象学习方法学.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、第7章 面向对象学习方法学第七章 面向对象学习方法学 面向对象方法学的出发点和基本原则,是尽可能按照人类的习惯思维方式,使开发软件 的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题域空间与实现解法的解空间在结构上尽可能一致. 与传统的结构化方法相比,使用面向对象方法开发的软件,其稳定性,可修改性和可重用性都比较好.本章内容主要包括:传统方法学的缺点,面向对象的基本概念,面向对象模型.7.1 基础知识7.1.1 传统方法学的缺点 结构化几其他方法学的本质,是在具体的软件开发之前,通过需求分析预先定义软件 需求.然后一个一个阶段地开发用户所需要的软件,实现预先定义的软件需要

2、. 过去的经验需要告诉我们,结构化及其他方法学并不能完全消除软件危机.结构化及其他方法学仍然有许多不足之处.1. 问题的表现1) 生产效率低在生命周期方法学中,特别重视软件开发的阶段性.为了提高了软件开发的效率,减少重大返工次数,强调必须早每个阶段结束之前进行评估.从而开发过程中实行严格的质量管理,确实提高了许多软件的开发的成功率.但是,时间表明,开发高利率仍然很有用.2) 不能满足用户需要实践表明,在开发需要模糊或需求动态变化的系统时,软件系统的结果往往不能满足用户需求的变化. 主要表现在两个方面:一种是开发人员不能完全获得彻底理解用户的需要,以至 开发的软件系统与用户预期的系统不一致;另一

3、种表现是,所开发的系统不能适应用户需求变化,系统的稳定性和可扩充性不能满足需要.3) 软件服用就是将已有的软件成分用于构造新的软见系统.软件复用是节约人力,提高软件效率的重要途径.结构分析.设计,几乎每一次开发一个系统时都需要针对这个具体的系统做大量的重复劳动.思维成果的可复用性差.4) 软件很难维护实践经验告诉我们,即使是用生命周期方法学开发出来的软件,维护起来仍然相当困难,软件维护成本很高.2问题的原因1) 结构化技术本身的问题结构分析和设计技术的基本思想是从目标系统整体功能的单个处理着手,自顶向下不断的把复杂的处理分解为子处理,一层一层的分解下去,直到剩下若干个容易实现的子处理为止。由此

4、可见,结构分析和结构设计构造系统的技术核心是围绕实现功能的“过程”进行的。当用户需求的变化往往造成系统结构的较大变化,从而实现这种需要花费很大的代价。 另一方面,软件的系统结构设计依赖于对系统边界的定义。因此,结构化方法的的特征很难把这种变化扩展到新的边界。系统结构修改和扩充比较困难。2) 预先定义的需求可能会过时有一定规模的软件,其开发时间一般需要一到三年时间。有些需求相对稳定的软件使用传统的开发途径开发时,采用预先定义需求的策略是可行的。但是有些软件,特别是应用软件,用户对他们的需求与外部环境,策略或内容等密切相关。因此,在不同时间用户的需求可能有较大不同。如果按照预先定指定的需求开发软件

5、,当软件开发出来的时候,用户的需求就发生了变化。3) 语言鸿沟软件开发是对问题域的认识和描叙。从描叙事物方面看,它在分析和设计阶段提供了一些从问题域逐步过度到编程语言的描叙手段。这如同在语言的鸿沟上铺设了一段平坦的路段。但是在传统的软件工程方法中,这些路段并不连接。就是说,并没有完全填平语言之间的鸿沟。4) 系统需求的模糊性大多数应用系统,特别是信息管理系统(MIS)之类的数据处理系统。由于其模型是随着社会的变迁而变化的。因此,其需求模型往往很难预先准确定义。另一方面由于需求分析目前还不能做到形式化。许多用户对他们的需求最初只要模糊的概念。所以就凭需求只要初步设想就能准确的说出全部需求是不切实

6、际的。7.1.2 面向对象的基本概念1. 对象对象是问题域或实现域中某些事物的一个抽象,他反映事物在联系中需要保存的信息和发挥作用;他是一组属性和有权对这些事物进行操作的一组服务的封装体。 2 类 类是具有相同属性和服务的一组对象的集合,他为属于该类的全部对象提供了统一的抽象描叙,其内部包括属性和服务两个主要部分。 3继承 特殊类的对象具有拥有其一般类的全部属性和服务,称做特殊类对一般类的继承。 4封装 把对象的属性和服务结合成为一个独立的系统单位,并尽可能隐蔽对象的内部细节。 5消息 消息就是向对象发出的服务请求,他应该含有下述消息:提供服务的对象标志,服务标志,输入信息和回答信息。 (p1

7、38) 6结构与连接 面向对象方法运用一般特殊结构,整体部分结构,实例连接和消息连接描叙对象之间的关系。(1) 一般特殊结构。一般特殊结构是由一组具有一般特殊关系的类所组成的结构。(2) 整体部分结构。整体部分结构由一组彼此间存在这种关系的对象组成。(3) 实例连接。实例连接反映对象与对象之间的静态联系。例如教师和学生之间的关系。(4) 消息连接。消息连接描叙对象之间的动态联系。7多态性多态性是指允许不同类的对象对统一消息做出响应。多态性引用具有静态类型和动态类型。动态类型可以在程序执行期间在实例之间进行变化。静态类型是在程序上下文中由实体说明决的。7.1.3 面向对象模型 用面向对象方法开发

8、软件,通常需要建立三种形式的模型,他们分别是描叙系统数据结构的对象模型,描叙系统控制结构的动态模型和描叙系统功能的功能模型。1 对象模型对象模型就是表示模型的,结构化的系统的“数据”性质。他是客观世界实体的对象以及以及彼此间的关系的映射的模拟,描叙了系统的静态结构。在建立对象模型时,我们的目标是从客观世界中提炼出对具体应用有价值的概念。为了建立对象模型,需要定义一组图形符号,并且规定一组组织这些以表示特定寓意的规则。面向对象方法学有许多表示方法,这些表示方法虽然形式各仪。但是,他们共同的特点就是独立于具体的开发模型。现在有的用于建立对象模型的表示方法,都包含下列符号:(1) 表示类的符号(能表

9、示属性又能表示服务)。(2) 表示对象(类实例)的符号。(3) 表示继承关系的符号。(4) 表示类和/或对象间其他关系的符号。2 动态模型动态模型是表示瞬间的,行为化的系统的“控制”性质,该模型描叙了系统的控制结构,他表示瞬时的,行为化的系统控制性质,他关心的是系统的控制,操作的执行顺序,他从对象的事件和状态的角度出发,表现了对象的相互行为。它描叙的系统属性是触发事件,事件序列,状态,事件与状态的组织。使用状态图作为描叙工具。3 功能模型功能模型表示变化的系统的“功能”性质,他指明了系统应该做什么,因此更直接的反映了用户对目标系统的需求。功能模型又许多张数据流图组成。数据流图说明数据流是如何从

10、外部输入,经过操作和内部存贮输出到外部。(p139)7.2 单元练习7.2.1 填空题1 .对象的抽象是_,类的实例化是_。2 动态模型描叙了系统的结构。3 软件系统中存在2种控制流,外部控制流是系统中对象之间外部事件的事件流,有,和三种外部事件控制流。控制流是一个处理内部的控制,均可结构化。4 在C+,C中有一个函数,可以使用这个过程来说明构成系统主要对象的那些类的实例。5 继承性是自动共享父类属性和的机制。6 对象具有封装性,实现了的组合。7 在面向对象方法中,信息隐藏通过对象的来实现。类结构分离了于,从而支持了信息隐藏。8 抽象是指强调实体的,忽略一些无关紧要的属性。类实现了对象的和的抽

11、象,他是对象的共性的抽象。9 子类只继承的属性和操作,称为单重继承。10 对象的抽象是,类的具体化就是,也可以说类的实例是。11 类具有,他是的行为的抽象。12 对象具有状态,对象用来描叙他的状态。13 概念模型描叙了系统的。功能模型指出,动态模型确定,而对象模型确定-,功能模型有组成。14 面向对象有三个基本要素,他们是,。15 面向对象技术有三个级别上促进了共享,他们是,。16 活动是一种有时间间隔的操作,他是依附于。动作是一种瞬时操作,他是与联系在一起的操作。17 封装性是指所以软件内部都有明确的以及清楚的。每个软件部件都有友好的,软件部件的与分离。18 主要的对象类型有,。19 同一个

12、类中的共享是说同一个类中的对象有着相同的和相同的。20 结构化方法的本质是,其,可修改性和可重用性都比较差。21 对象还有,用于改变对象的状态。对象实现了和的组合。22 面向对象方法认为系统是由应用域的组成。23 对象具有状态,描叙对象的状态用他的。24 类具有属性,描叙类的属性用。25 一个方法有,和。26 动态模型描叙了系统的。27 动态模型的主要元素是类,关联和。28 通过这种机制和构造来实现不同应用中的信息共享。(p140)29面向对象程序设计语言与其他程序设计语言的最主要差别是他具有。29 对象具有很强的能力和功能。30 类具有属性,他是对象的的抽象,用来描叙类的属性。31 面向对象

13、的特征是,。32 子类自动共享父类的属性和操作的机制成称为。33 类的实例化是。34 不同应用中信息共享的这种机制和构造是通过来实现的。7.2.2 选择题1. 对象模型的描叙工具是()。A状态图 B数据流图C对象图 D结构图2. 面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析,设计和实现一个软件系统的方法和过程,尽可能接近人类认识世界解决问题的方法和过程,因此面向对象方法有许多特征,如软件系统是由对象组成的;();对象彼此间仅能通过传递消息相互联系;层次结构的继承。A开发过程基于功能分析和功能分解。B强调需求分析的重要性。C把对象划分成类,每个对象类都定义一组数据和方法。

14、D对即存类进行调整。3.每个对象可用他自己的一组属性和他可以执行的一组()来表现。A行为 B功能 C操作 D数据4.面向对象软件技术的许多强有力的功能和突出的优点都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(),一个类获得其父类的全部属性(数据和操作)。A传递性 B继承性 C复用性 D并行性5面向对象的主要特征除对象唯一性,封装,继承外,还有()。A多态性 B完整性 C可移植性 D兼容性6.面向对象开发方法子概念和表示上的一致性保证了分析和设计的()过渡。A困难 B不容易 C平滑 D顺序7.动态模型的描叙工具是()。A对象图 B

15、结构图 C状态图 D设计图8.表示对象的相互行为的模型是()模型。A 对象 B 动态C 功能 D 静态 9 在考察系统的一些涉及时序个改变的状况时,要用动态模型来表示。动态模型着重与系统的控制逻辑,它包括两个图:一个是事物追寻图,另一个是( )。 A 数据流图 B 状态图 C 系统结构图 D 时序图 10 在确定属性时,所有( )是后选定属性。 A 动词 B 名词 C 修饰 D 词组 11 在开发废气型类时,在软件生存期中最花费时间不部分应当是软件的( )。 A 实现 B 测试 C 设计 D 求精和维护 12 一个面向对象系统的体系结构通过它的成分对象和对象间的关系确定,与传统的面向数据流的结

16、构化开发方法相比,它具有( )优点。 A 设计稳定 B 变换分析 C 事物分析 D 模块独立性 13 以下说法错误的是( )。 A 面向对象方法不仅支持过程抽象,而且支持数据抽象。 B 某些面向对象的程序设计语言还支持参数化抽象。 C 信息隐蔽通过对象的封装性来实现。 D 在面向对象方法中,类是最最基本的模块。 14 所有的对象可以成为各种对象类,每个对象类都定义了一组( )。 A 说明 B 方法 C 过程 D 类型 15 以下说法错误的是( )。 A 对象具有很强的表达能力和描述功能。 B 对象是人们要进行研究的任何事物。 C 对象是封装的最基本的事物。 D 类封装比对象封装更具体、更细致。

17、 16 一个面向对象的系统的体系通过它的( )的关系确定。 A 类与对象 B 成分对象与对象 C 过程与对象 D 类与界面 17 以下说法错误的是( )。 A 多态性防止了程序相互依赖性而带来的变动影响。 B 多态性是指相同的操作或函数、过程可作用于多中类型的对象上并获得不用结果。 C 多态性与继承性相结合使函数具有更广阔的重用性和可扩充性。 D 封装性是保证软件不见具有优良的模块性的基础。 18 在软件工程学中,我们把一组具有相同数据结构和相同操作的对象的集合定义为( ),此定义包括一组数据属性和在数据上的一组合法操作。 A 类 B 属性 C 对象 D 消息 19 对象是面向对象开发方法的基

18、本成分,每个对象可用它本身的一组( )和它可以执行的一组操作来定义。 A 服务 B 参数 C 属性 D 调用 20 通过执行对象的操作改变该对象的属性,但它必须通过( )传递。 A 接口 B 消息 C 信息 D 操作 21 ( )模块表示了对象的相互行为。 A 对象 B 动态 C 功能 D 分析22 在确定类时,所有( )候选是类。 A 名词 B 形容词 C 动词 D 代词23 按照传统的生命周期方法开发软件,各阶段工作自顶向下,从抽象到具体顺序进行,我们一般用( )模型模拟。 A 螺线模型 B 喷泉模型 C 瀑布模型 D 行为模型24 Rumbangh等人提出的对象模型技术OMT把分析时收集

19、的信息构造在三类模型中,即对象模型、动态模型和( )。 A 信息模型 B 控制模型 C 功能模型 D 行为模型25 以下说法错误的是( )。 A 数据流图中的处理用来改变数据值。 B 在一个计算中,用数据流来表示一中间数据值,数据流不能改变数据值。 C 动作对象是一中主动对象,它通过生成或者数据值来驱动数据流图。 D 数据流图中的数据存储是被动对象,它用来存储数据。 E 存储和动作对象可以用文件或外部设备实现。26 与时间联系在一起的瞬间操作是( )。 A 处理 B 动作 C 活动 D 加工27 应用执行对象的操作可以改变该对象的( )。 A 属性 B 功能 C 行为 D 数据28以下说法正确

20、的是( )。 A 组装结构可用来描述现实世界中的一般的抽象关系。 B 分类结构可用开描述现实世界中的类的组成的抽象关系。C. 面向对象的继承性是子类自动共享父类数据结构和方法的机制D. 面向对象的唯一性是指将具有一致性的数据结构(属性)和行为(操作)的对象抽象成类29以下说法正确的是 ( )A. 对象模型指出发生了什么B 动态模型确定什么时候发生C 功能模型确定发生的客体D 功能模型描述了系统的所有计算,它考虑所计算的次序30有时间间隔的操作是()A 动作B 活动C加工D 处理31 软件部分的内容实现与外部可访问性分离,这是指软件的( )A 继承性 B 共享性 C 封装性 D 抽象性32 常用

21、动词或动词词组来表示 ( )A 对象 B 类 C 关联 D 属性 33 在只有单重继承的类层次结构中,类层次结构是( )层次结构。A 树型 B 网状型 C 星型 D 环型34 以下说法正确的是( )A 功能模型不包括对象模型中值的约束条件B 功能模型说明对象模型中操作的含义C 功能模型说明动态模型中约束的含义D 功能模型说明对象模型中动作的意义35 以下说法正确的是( )A 角色说明类在关联中的作用,它位于关联的端点B 不同类的关联角色不能省略C 同类的关联角色可有可无D 在一个类层次结构中,若有多重继承,则该类层次结构是树型层次结构E 在一个类层次结构中,若有单重继承,则该类层次结构是网状层

22、次结构7.2.3 简答题 1 试述面向对象方法的开发过程是怎样的?2 简述对象,类,类结构,消息,方法的基本概念。3 传统开发方法存在的问题是什么?4 试述面向对象方法有哪些特征。5 为什么说用结构化方法开发的软件,其稳定性,可修改性和可重用性都比较差?6 功能模型的特征有哪些?7 继承性和多态性的好处是什么? 8 简述三种分析模型的关系。9 简述动态建模的过程。10 简述面向对象的要素。11 简述功能建模的过程。7.3 参考答案一 填空题1 类, 对象2 控制 3 过程驱动序列,事件驱动序列,并发序列,内部4 main() 5 子类,操作 6 数据和操作 7 封装性,接口,实现8 本质,内在

23、的属性,数据(即状态),行为 9 一个父类 10 类,对象,对象11 操作 对象 12 数据值 13 所有计算,发生了什么,什么时候发生,发生的客体,多张数据流图 14 抽象,封装性(信息隐藏),共享性15 同一个类中的共享,在同一个应用中的共享,在不同应用中的共享16 状态的操作,事件17 范围,外部边界,界面接口,内部实现,外部可访问性18 有形实体,作用,事件,性能说明19 数据结构 行为特征 20 功能分解 稳定性 21 行为 数据 操作 22 对象 23 属性值 24 数据结构 25 方法名 参数 方法体 26 动态行为 27 关系 28 类库29 继承性 30 表达 描述 31 状

24、态 数据结构 32 对象唯一性 分类性 继承性 多态性 33 继承 34 对象 35 类库二 选择题1C 2. C 3. C 4.B 5.A 6.C 7.C 8.B 9.B 10.C 11.D 12.A 13.D 14.B 15.D 16.B 17.A 18.A 19.C 20.B 21.B 22.A 23.B 24.C 25.E 26.B 27.A 28.C 29.B 30.B 31.C 32.C 33.A 34.B 35.A三 简答题1 面向对象开发方法包括以下几个过程:(1) 面向对象的分析。面向对象的分析的目的是对客观世界的系统建立对象模型,动态模型,功能模型。设计者必须了解需求以及问

25、题所处的环境,必须调查所有需求,分析所有需求的实质含义。在历届系统需求的基础上,按照上述建立模型的过程进行建模工作。建立模型的工作不是一次就可以建好的,复杂问题的模型需要反复构造,显见模型的子集,然后扩展到整个模型。(2) 面向对象的设计。面向对象的设计是把分析阶段得到的分析模型,经过逐步扩充和完善,转变为设计模型。将分析模型的问题域的概念转变为设计模型的实现概念上来。面向对象的设计也可以分为系统设计和对象设计。系统设计的确实现系统的策略和目标系统的高层结构,如人机界面的设计。数据管理的设计,如软件控制的实现,系统的体系结构等。对象设计确定用到的类,关联的完整定义,接口形式及实现操作系统的算法

26、,可以增加实现所必须的内部对象,对数据结构和算法进行优化。面向对象的设计所遵循的基本原理和启发规则与结构化设计方法类似,但是增加了一些面向对象的新特点。 尽管面向对性分析各面向对象设计是两个阶层,但是在实际的软件开发中二者的界线很模糊的,许多分析结果可以影映射为数据结果,而在设计过程中又往往会加深和补充对系统需求的理解,从而进一步完善分析结果。因此,分析各设计是一个多次反复迭代的过程。(3) 面向对象的实现。面向对象的实现包括两方面的工作,把面向对象的设计结果翻译成某种程序设计语言书写的面向对象程序,然后进行测试并调试面向对象的程序。面向对象的程序设计的质量基本上由面向对象的设计质量决定。但是

27、与程序设计语言的特点和程序设计风格有关系。软件测试仍然是保证软件可靠性的主要措施,但是面向对象的软件也会给测试带来了新的特天和新问题,如继承性就给测试带来了困难,面向对象的程序的执行与面向过程的程序的执行业大不相同,它是事件驱动的,对象彼此之间通过消息传递启动相应操作,但是对象并没有明显的规定用什么次序启动它的操作才是合法的。因此传统的测试方法也不再完全适用了。2 他们的基本的概念如下:(1) 对象。对象是人们要进行研究的任何事物,从最简单的证书到复杂的飞机均可看作对象,他不仅能表示具体的事物,还能表示抽象的规则,计划或事物件。主要有如下对象类型:有形实体,作用,事件,性能说明。对象具有状态。

28、一个对象用数据来描述它的状态,对象还是操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,是数据操作封装与对象的统一体中。对象内的数据具有自己的操作。从而可灵活的专门描述对象的独特行为,具有较强的独立性和自治性,其内部状态不受或很少受外界的影响,具有很好的模块化特点。为软件重用奠定了坚实的基础。(2) 类。类是具有相同属性和服务的一组对象的集合。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实体是对象。(3) 类结构。在客观世界中有若干类,这些类之间有一定的关系。通常有两种主要的结构关系,即一般具体结构关系,整体部分结构关系。1 一般具体结构关系成为分类关

29、系,也可以说是“或”关系,或者是“is a”关系。类的这种层次结构可用来描述现实世界中得一般化的关系,通常月在上层的类越具有一般性共性,约在下层的类越具体,越细化。2 整体部分结构称为组装结构,他们之间的关系是一种“与”关系,或者是“has a”关系。类的这种层次关系可用来描述现实世界中的抽象组成的抽象关系。上层的类具有整体性,下层的类具有成员性。在类的层次中,通常上层类称为父类或超类,下层类称为子类。(4) 消息。对象之间进行通信的构造称为消息。在对象的操作中,当一个消息发送到某个对象时,消息包含接受对象去执行某种操作的信息。接受信息的对象经过解释,然后给予响应。这种通信机制称为信息传递。发送一条信息至少要包含说明接收消息的对象名,发送给该对象的消息名(即对象名,方法名),一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。(5) 方法。类中操作的实现过程叫作方法,一个方法有方法名,参数,方法体。当一个对象接收一条消息后,它所包含的方法决定对象怎样动作。方法也可以发送消息给其他对象,请求执行某一动作或提供信息。由于对象的内部对用户是密封的,所以消息只是对象同外部世界连接的管道。对象内部的数据只能被自己的方法所操纵。3. 传统开发方法存在的问

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

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