9、软件工程面向对象方法学引论总结

时间:2019-05-12 02:53:46下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《9、软件工程面向对象方法学引论总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《9、软件工程面向对象方法学引论总结》。

第一篇:9、软件工程面向对象方法学引论总结

1. 面向对象方法学的定义和对象方法学的要点。

面向对象方法把数据和行为看成同等重要,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。面向对象方法学具有下述4个要点。

(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。面向对象程序是由对象组成的,程序中任何元素都是对象,复杂对象由比较简单的对象组合而成。

(2)把所有对象都划分成类(class)。每个类都定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组相似对象的定义。

(3)按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,这种现象称为继承。

(4)对象彼此间仅能通过发送消息互相联系。

也就是说,对象的所有私有信息都被封装在该对象内,不能从外界直接访问,这就是通常所说的封装性。

2. 面向对象方法学的优点是:(1)与人类习惯的思维方法一致(2)稳定性好(3)可重用性好

(4)较易开发大型软件产品(5)可维护性好

3. 对象的概念,对象的特点?

对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体,这个封装体有可以惟一地标识它的名字,而且向外界提供一组服务(即公有的操作)。特点:

① 以数据为中心。不设置与数据无关的操作;

② Object主动处理而不被动地等待被处理,外部只能通过message请求操作;

③ 实现了数据封装。具有黑盒性:外部操作时,无须知道该object内部的数据结构及算法; ④ 具有并行性:不同object各自独立地处理自身数据,彼此间仅通过传递message完成通信;

⑤ 模块独立性好:内聚强(①)、耦合松(③ ④)

4. 类、实例、消息、方法、属性、封装、继承、多态性、重载的定义。

类:是对具有相同数据和相同操作的一组相似对象的定义。

实例:是由某个特定的类所描述的一个具体的对象。

消息:是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。

方法:是对象所能执行的操作,也就是类中所定义的服务。

属性:是类中所定义的数据。

5. 模型的概念,面向对象建模的概念。要建立哪些模型?

所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物一种无歧义的书面描述。建立三种模型:

① 描述系统数据结构的对象模型(object model).② 描述系统控制结构的动态模型(dynamic model).③ 描述系统功能的功能模型(function model).6. 对象模型是表示静态的、结构化的系统的数据性质。类图是描述类及类与类之间的静态关系。包括定义类、定义属性、定义服务。7. 表示关系的符号:类与类之间通常有关联(Association)、泛化(Generalization)、聚合(Aggregation)、组合(Composition)、依赖(Dependency)等关系。

8. 动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列

关联 泛化 聚合 组合 依赖

9.Association

Generalization

Aggregation

Composition

Dependency

动态模型三要素:

① 事件(event):引发 object 状态改变的控制信息(瞬时)。② 状态(status):即 object 的 attributes 所处的情形(可持续)。③ 行为(action): Object 要达到某种 status 所做的操作(耗时)。10.功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。功能模型由一组数据流图组成。

在面向对象方法学中,数据流图远不如在结构分析、设计方法中那样重要。11.UML提供的用例图也是进行需求分析和建立功能模型的强有力工具。在UML中把用用例图建立起来的系统模型称为用例模型。

用例模型描述的是外部行为者(actor)所理解的系统功能。用例模型的建立是系统开发者和用户反复讨论的结果,它描述了开发者和用户对需求规格所达成的共识。

第二篇:面向对象技术引论(复习题)[参考解答]

《面向对象技术引论》复习题

一、概念与术语

1.对象:

在现实世界中,对象定义为:问题的概念和抽象的或具有明确边界和意义的事物;在数据世界中,对象定义为:一组数据以及施加于这组数据上的一组操作;

从系统的观点出发,我们可以给对象作如下定义:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位(单元),一个对象是由一组属性和对这组属性进行操作的一组服务构成的。

2.持久对象:

生存期可以超越程序的执行时间而长期存在的对象称为持久对象。换句话说:一个对象在程序运行结束后仍继续存在,则称该对象是持久的。

2.主动对象:

主动对象是一组属性和一组操作(服务)的封装体,其中至少有一个操作不需要接收消息就能主动执行(称为主动服务)。

3.被动对象:

被动对象(Passive object)是指其内部的操作需要通过外部消息驱动才能执行的对象。可以看出被动对象必须工作在消息驱动环境中。

4.类:

定义1一组具有相同性质(属性和操作)的对象的抽象。

定义2类是对一组具有相同属性、操作、关系和语义的对象的描述。

定义3具有相同属性和容许操作的一组对象的一般描述称为类。

5.主动类:

主动类的对象至少拥有一个进程或线程,因此它能够自主执行(能够启动控制活动)。注意:主动类的对象所描述的元素的行为与其他元素的行为并发,这是它与一般类的唯一区别。

6.接口:

接口是描述一个类或构件的一个服务的操作集。因此,接口描述元素的外部可见行为。接口描述了一组操作的规格,而不是操作的实现。图形上,用一个带有名称的圆表示接口。

7.用况:

用况是对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值而且可观察的结果。用况用于对系统语境和系统需求建模。图形上,用一个包含名称的实线椭圆表示用况。

8.协作:

协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构成的一个群体,这些协作行为大于所有元素的各自行为的综合。因此协作有结构、行为和维度。图形上,用一个仅包含名称(协作名)的虚线椭圆表示协作。

9.构件:

构件是系统中物理的、可替代的部件,它遵循且提供一组接口的实现。构件是物理的、可替代的部件。

10.节点:

节点也是物理的,是在系统运行时存在的物理元素,它表示了一种可计算的资源,通常至少有一些记忆能力和处理能力。

11.一般类 /12.特殊类:

如果类A具有类B的全部属性和服务,而且具有自己特有的某些属性和服务,则类A叫做类B的特殊类,类B叫做的类A的一般类。两者之间的关系称为“泛化”。可以看出一般

类具有父类的特征,而特殊类具有子类的特征,特殊类可以共享一般类的性质。

13.关联(关系)

关联是对象之间连接(链)的抽象,用来描述对象之间的相互作用。

14.关联类:

关联类是一种具有关联特性和类特性的建模元素,可以将关联类看成是具有类特性的关联,或是具有关联特性的类。

15.依赖(关系):

依赖是两个事物之间的一种语义关系,其中一个事物(独立事物)的改变会影响另一事物(依赖事物)的语义。

16.泛化(关系):

泛化是事物(类)之间的一种一般/特殊关系,也即一般事物(一般类)和特殊事物(特殊类)之间的关系。

17.实现(关系):

是类元之间的语义关系。

18.链和链属性:

关联或相互作用表现出不同的类的对象实例之间的实际的或概括上的联系,称为“链”;

19.聚合:

聚合用来表示事物之间的“整体/部分”关系,“整体”事物是一个较大的事物,它是由多个“部分”事物(较小的事物)组成的。

20.问题域:

问题域是指特定应用系统的应用领域,即在现实世界中由该系统进行处理的业务范围。

21.系统责任:

系统责任是指系统应该具备的职能,通俗地讲,即系统除能做什么之外,还应该作些什么。

22.消息:

在面向对象语境中,消息定义为向对象发出的服务请求(要求对象执行它其中的一个操作的请求)。

23.交互:

交互是发生在对象之间或对象内部的消息传递行为,它由在特定语境中共同完成一定任务的一组对象之间交换的消息组成。

24.事件:

25.事件流:

26.状态:

27.状态机:

状态机描述了一个对象或一个交互的生命内响应事件所经历的状态序列,即描述其状态变迁。

28.封装:

封装是对拥有结构和行为的一个抽象(对象)的元素进行划分的过程,封装完成抽象的契约接口和对象实施的分离。

29.继承:

特殊类拥有一般类的全部属性和服务(操作),称作特殊类对一般类的继承。多态:

同一属性或操作在一般类和各个特殊类中具有不同的意义。

31.抽象:

即指通过思考进行分离的行为(CED).思考就是对事物性质进行观察与分析,而分离则是对分析结果中的一些细节的剥离,从而得到事物的最基本的性质。

32.角色:

角色是关联中(靠近它的)一端的类对另一端的类呈现的职责,可以说角色是关联的作用者。

33.限定词(修饰关联)

限定词是关联的一个特定的属性(而不是工作台或工件的属性,其实该属性与工作台及工件都有关,是使二者发生关联的数据之一),它的值划分了通过一个关联与一个对象相关的对象集。

34.UML的规则(命名、范围、可见性等):

1)命名:给事物、关系和图等建模元素命名。

2)范围:给一个名称以特定含义的语境。

3)可见性:表示元素的名称如何被其他元素看到和使用。

4)完整性:保证事物正确、一致地相互联系,体现事物之间的合理性和一致性。5)执行:运行或模拟动态模型的含义是什么。

35.UML的公共机制(详述、修饰、扩展机制(构造型、标记值、约束)):

1)详述:详述是对UML图形符号的补充,对图形表示法的每一部分(图形符号)都可以附上一个详述,该详述提供了对构造块的语法和语义的文字叙述。

2)修饰:修饰是附加到元素的基本表示法上的文字或图形项,用于对元素规格说明的细节进行可视化。

3)通用划分:方法一:对类和对象的划分;方法二:接口和实现的分离。

4)扩展机制 :三种机制来扩展语言的语法和语义,分别是:构造型(表示新的建模元素)、标记值(表示新的额建模元素属性)和约束(表示新的建模元素语言)。

二、思考题

1.为什么应用对象技术可以改变软件制造(生产)方式?

2.试述建模的重要性,为什么建模可以降低系统实现的复杂度。

3.为什么面向对象方法能较好地管理复杂性并增强伸缩性。

4.何谓“软件复用”,为什么说面向对象技术对“软件复用”提供了卓有成效的支持?

5.“用况驱动的、迭代式的、增量”的开发方法的要点、优点、时间盒。

6.UML的三大建模元素(事物、关系、图)、各种结构事物的定义和用途。

7.“计划和细化”阶段的主要工作和主要活动。

8.“构造阶段”的主要工作和主要活动。

9.面向对象有哪些要素?为什么说“封装”是其最重要的要素?

10.何谓链属性,试述链属性不应置入关联两端的某一对象类中作为其属性的理由,请举例说明之。

11.系统分析阶段如何识别类和排除虚假类?(分别简述语法分析法和现实分析法的要点)。

12.系统分析阶段如何识别关联和排除虚假关联?(分别简述语法分析法和现实分析法的要点)。

13.简述描述类的基本特征(名称、属性等)并举例说明之。

14.软件维护的主要工作是什么,为什么说每一次维护可能又是一个较小的应用开发过程?

15.为什么“继承”可以简化对问题的认识?

16.面向对象系统中通常存在着持久对象、主动对象、和被动对象等三种对象,给出这三种对象的定义,并举例说明之。

17.解释“多态性”的基本含义,为什么“多态性”的实际应用必须建立在类的一般化层次结构上?

18.列举引起需求变化的主要因素,面向对象方法如何应对需求的不断变化?

19.何谓“多态性”,试举例说明“多态性”的应用。

20.简述软件维护的主要工作,并说明其重要性。

三、设计部分

1.根据给定的领域和场景写出问题陈述、建立用况模型,针对指定的用况,写出事件流。

2.设计为词汇建模的类图、为数据库建模的类图、为简单协作建模的类图。

3.按时间顺序对控制流建模型的步骤,以指定用况作为交互语境设计顺序图。

4.按对象组织对控制流建模型的步骤,以指定用况作为交互语境设计协作图。

5.对对象的生命期建模的策略和步骤,为指定类设计状态图。

第三篇:软件工程方法学的学习总结

软件工程方法学学习总结

• 软件工程方法学是研究软件设计方法论及工程开发技术的一门学科,主要研究的是:模型、方法、过程、工具、理念/原则、文档,甚至相应的开发语言。随着软件工程的发展,形成了不同的软件工程方法:结构化、面向对象、敏捷方法。在某个开发项目中,如何选择、应用哪种软件开发方法,用哪种方法更好,就成研究软件工程方法学的基本动机。

• 定义(2)把在软件生命周期全过程中使用的一整套技术的集合,称为软件工程方法学。软件工程方法学包括三个要素:方法、工具和过程。• 软件工程方法的分类

1.按不同的分类准则,会有不同的分类方法

a)注意,这一分类体系中并不是非此即彼,有可能有重复、冲突 2.按开发理念来分:

a)结构化方法;面向对象方法

3.按有无使用数学工具协助分析、设计、验证、实现来分

a)形式化方法:从规范出发的开发、函数式编程、净室方法 b)非形式化方法:目前大多数软件工程方法 4.按是否有大量文档工作和设计规范要遵守来分

5.重量级的方法:传统结构化方法、面向对象方法b)轻量级的方法:敏捷方法(极限编程,快速原型法…),目前,并没有一个很规范的分类体系。• 其相关知识体系: 结构化方法: 基本的结构化方法;复杂的结构化方法IDEF体系、Jackson方法 2 面向对象方法:基本的面向对象方法;RUP 3 极限编程方法(XP)4 快速原型软件开发方法 5 测试驱动的软件开发方法 6 形式化方法: 7 基于规范的开发方法/函数式编程开发方法 8 净室(clean room)/零缺陷软件开发方法面向方面编程的软件开发(AOP)10 产生式编程、开发(GP)11 SOA: 面向服务的体系结构 MDA/MDSD: 模型驱动体系结构/软件开发 • 结构化软件分析设计方法的概述

1.它是第一个成型的、完整的软件工程方法

2.它是随着函数和结构化语言(不要goto语句)的出现来诞生的 3.它第一次引入了模型图的使用(程序流程图)4.基本流程

a)项目调研

b)需求调查与分析 c)系统设计 d)系统实现 e)系统测试 f)系统维护

5.根据这些基本步骤的不同排列,可以有瀑布型、迭代型、螺旋型等等不同软件开发模型 • 对结构化方法和面向对象方法的对比和讨论

结构化方法的特点

1.结构化思想的开发本质是:基于分解 2.简单

3.把一个复杂过程用多个单个小过程来实现

4.用数据流图,可以完成整个分解过程(其它的内容都可以从数据流图派生出来)5.结果的唯一性

6.同一个问题,不同的人分解出来的结果基本是一样的。

7.也即,用结构化方法,基本上是有标准答案的(差主要在于细不细)适用范围:(1)较适合初学者学习(2)一个连续的处理过程 面向对象的特点 1.基于映射:

a)把现实世界的工作过程或系统,用代码系统中的相对应的元素模拟出来,就完成了软件的设计和开发 i.事物→对象

ii.事物的特征→对象的属性 iii.事物的行为→对象的方法

iv.事物之间的信息交换与协同→类方法调用

… 2.复杂:

a)由于现实事物的复杂性,为了要更好地完成上面的模拟/映射,需要从多个角度描述系统或过程

b)静态关系:多态、继承、聚合、状态转换 c)动态关系:用例、活动、序列、协作 d)这仅仅是UML1.5之前的

e)UML2.0又增加了:时序、结构 3.结果的唯一性

a)同一个问题,有经验的人和没有经验的人,进行面向对象设计时,结果可能会判别很大

适用范围:(1)设计复杂系统;(2)设计高质量系统(3)设计与现实世界对应程度比较大的系统

未来的发展趋势

面向对象仍将是主流,但结构化方法并不会,相反在某些领域还会有进一步应用,如:(1)网页/网站;(2)工作流系统;(3)SOA • 深入全面的面向对象分析设计方法

1.首先要搞清楚:软件工程的分析和设计阶段是要干什么的?需求->方案

a)了解用户的需求:需求调查

b)把需求描述清楚、规范:用模型图来描述需求

c)在需求分析的过程中,从规范的需求描述开始,描述及定义以下内容,完成需求分析(1)业务中要处理的数据(2)业务数据的处理过程 d)从这个需求分析出发,完成概要设计和详细设计 i.概要设计是什么?完成软件组成单元的划分

ii.详细设计是什么?单元接口设计(输入输出设计)、业务处理流程设计、数据库设计、界面设计

2.需求调查

结果: 系统化、条目化的软件需求文档 3.需求定义

a)用标准化的软件设计模型来描述已经获得的需求,结果:用例图 4.需求分析

a)就是要从需求定义(用例图)中提取出这些内容,进行软件概要设计和详细设计

(1)处理过程设计:模块内部流程设计(2)数据库设计(3)界面设计 5.概要设计

构造软件的大模块(在OO方法中,模块就是“类”)6.详细设计

(1)处理过程设计:模块内部流程设计(2)数据库设计(3)界面设计

• 面向对象需求分析要完成的任务

1.描述出软件的大致结构和功能分工

以便划分类,确实类的属性和方法;最终结果用类图来表达。2.描述出类的相互调用关系

3.描述出每项系统工作的工作过程

以便设计每个模块的输入输出;最终结果用交互图和活动图来表达。4.描述类的内部运作规律

最终结果用状态图来表达

5.在整个OO分析设计中,最重要的是类图 • 面向对象分析设计方法

– 从用例图出发,进行需求分析,结构化方法是从数据流图出发,而OO是从用例图出发(请对比一下)

– 第一,就是细化用例图

1.用例是描述外部用户使用本软件系统的应用场景。就是一个单个的使用功能

2.一个用例可能进一步分解成更小的应用场景的序列来实现

3.用有层次的用例图,来描述需求

用例图

活动图

4.其次用序列图(也叫顺序图)(见下页例)b)序列图是对活动图的进一步深化 c)将活动图中初步获得的对象列出

d)对活动图中,描述每一个工作步骤中,需要哪个对象向哪个对象发出消息 e)添加消息中的数据

f)将序列图生成协作图, 协作图不用自己去画(见后页)以上这些,都是需求描述,通过这些描述理解并表达需求 我们是以活动图为基础来绘制顺序图的

协作图

我们用用例图、活动图、顺序图、协作图描述了需求中的业务处理过程,从这个需求描述,如何获得我们最需要的类图呢?

– 获得类图,可以用常识或经验来设计,(1通过经验和常识来确定类、添加类的属性和方 法(2这其实也是常用的、高效快速的方法,我们不是说这种不对。

– 但我们这里介绍的是规范、标准的做法。因为,但对复杂的系统、不熟悉的系统来说,未必全部能从常识来。

第四篇:面向对象技术引论(复习题带术语题答案)

一、概念与术语

1.对象:(1)从现实世界:问题的概念和抽象的或具有明确边界和意义的事物

(2)从数据世界:一组数据以施加在这组数据上的一组操作

(3)从系统观点:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,一个对象是由一组属性和对整个属性进行操作的一组服务构成的。(P19)

2.持久对象:生存期可以超越程序的执行时间而长期存在的对象。(P24)

2.主动对象(3种解释):(1)一个能够启动消息传递的对象。(2)一个能为其他对象提供服务的对象,能被拷贝成代理,并且需要并发控制。(3)其方法(操作)由自身状态的改变而激活。(P25)

3.被动对象:其内部的操作需要通过外部消息驱动才能执行的对象。(P25)

4.类:一组具有相同性质(属性和操作)的对象的抽象。(P20)

5.主动类:主动类的对象至少拥有一个进程或线程,因此它能够自主执行(P65)

6.接口:描述一个类或构件的一个服务的操作集(P64)

7.用况:用况是对业务过程所包含的一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值且可观察的结果。(P42)

8.协作:协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构成的一个群体,这些协作行为大于所有元素的各自行为的综合(P64)

9.构件:构件是系统中物理的、可替代的部件,它遵循且提供一组接口的实现。(P65)

10.节点:节点也是物理的,是在系统运行时存在的物理元素,它表示了一种可计算的资源,通常至少有一些记忆能力和处理能力。(P65)

11.一般类和12.特殊类:如果类A具有类B的全部属性和服务(操作),而且具有自己特有的某些属性和服务,则类A叫做类B的特殊类,B叫做A的一般类。(P22)

13.关联(关系):事物(类)之间的一种结构关系,或者说是对象之间连接的抽象,用来描述对象之间的相互作用(P67)

14.关联类:关联类是一种具有关联特性和类特性的建模元素,可以将其看出是具有类特性的关联,或者具有管理特征的类(P116)

15.依赖(关系):依赖是两个事物之间的一种语义关系,其中的一个事物的改变会影响另一个事物,反之未必(P106)

16.泛化(关系):泛化是一种“特殊/一般”关系,即特殊事物和一般事物之间的关系。(P108)

17.实现(关系):类元之间的语义关系(P16)

18.链和链属性:对象之间的关联或相互作用表现出不同的类的对象的实例之间的实际的或概念上的联系,称为链。链属性:??(P110)

19.聚合:聚合用来表示事物时间的“整体/部分”关系,“整体”事物是一个较大的事物,它是由多个”部分“事物组成的。(P113-114)

20.问题域:是指特定应用系统的应用领域,即在现实世界中由该系统进行处理的业务范围。(P47)

21.系统责任:指系统应该具备的职能。(P47)

22.消息:消息定义为向对象发出的服务请求(P23和P127)

23.交互:交互是发生在对象之间后对象内部的消息传递行为(P66)

24.事件:一个触发行为成为一个事件,换句话说,所谓事件是指特定时刻内发生的动作。(P139)

25.事件流:(P84)

26.状态:指在对象的生命期中的一个条件或状况(通过属性值体现),在此期间,对象将满足某些条件、执行某些活动或等待某些事件。(p141)

27.状态机:状态机描述了一个对象或一个交互在生命期内响应事件所经历的状态序列,即描述其状态变迁。(P66)

28.封装:封装是对拥有结构和行为的一个对象的元素进行划分的过程,封装完成抽象的契约接口和对象实施的分离(P28)

29.继承:特殊类拥有一般类的全部属性和服务(操作),称为特殊类对一般类的继承(P29)多态:在一般类中定义的属性被特殊类继承之后,可以具有不同的数据类型;同理,一般类中定义的操作,可以在特殊类中具有不同的实现方法。(P31)

31.抽象:抽象即指通过思考进行分离的行为。另一种解释:表示某事物的本质特征(P27)

32.角色:当一个类位于关联的某一端时,该类(的某些实例)就在这个关系中扮演了特定的角色。(这个算??)(P111)

33.限定词(修饰关联):限定词是关联的一个特定的属性,它的值划分了一个关联与一个对象相关的对象集。(p116)

34.UML的规则(命名、范围、可见性、完整性、执行):P70-P71太多了~不想打~

35.UML的公共机制(详述、修饰、通用划分、扩展机制(构造型、标记值、约束))

36.OOPL:面向对象的编程语言,OOD:面向对象设计范式,OOA:面向对象分析方法

37.准则包括标准与原则,模块化设计的标准包括:可分解性、组合性、可理解性、连续性、保护性;设计上应遵循的原则为:语言模块单元、接口很少、小接口、显示接口、信息隐蔽等。

38.面向对象的四个基本要素:面向对象系统是由对象组成的、组成系统的对象抽象成类、类之间存在泛化关系,此种关系支持继承、对象之间通过消息获取对方的服务。

39.应用开发过程六个阶段:需求描述、分析、设计、实现、测试、维护。

40.UML对软件密集型系统的制品进行下述工作:可视化、详述、构造、文档化。41.UML三大建模元素:事物、关系、图,事物分为:角色、实现结构。结构事物、行为事物、分组事物、注释事物,结构事10.简述描述类的基本特征(名称、属性等)并举例物分为:类、接口、协作、用况、主动类、构件、节说明之。点。名称:一个字符串;属性:已被命名的类的42.提交一个应用系统的过程包括:计划和细化、构造、特性;操作:一个服务的实现,该服务可以由类的任实施。何对象,甚至其他类的对象所请求,以影响其行为; 职责:类的契约或责任。

二、思考题 11.为什么“继承”可以简化对问题的认识? 这是因为在分析问题时,运用继承手段至少1.为什么应用对象技术可以改变软件制造(生产)可以从数量上减少必须理解和分析的不同情况。方式? 由人工集约方式改变成资源集约方式,由重复性12.列举引起需求变化的主要因素,面向对象方法如何应对需求的不断变化? 的编程劳动变成基于组件的系统组装,从而带来软件生产问题域本身在系统开发过程中发生变化、用户因效率的大幅度提高。素、竞争因素、经费因素、技术支持。2.试述建模的重要性,为什么建模可以降低系统实冻结需求法、以系统中最稳定的部分作为系统的基本单位现的复杂度。(对象)。建模是开发优秀软件所有活动的核心部分,其目的是把所要设计的结构和系统的行为沟通起来,并对系统13.简述软件维护的主要工作,并说明其重要性。主要工作:对系统潜在的错误进行检测和改的体系结构进行可视化和控制。建模是为了更好的理解正正;不断地面对用户的新要求以及为适应新环境对系在构造的系统,并经常提供简化和复用的机会。建模还可统进行改进与增强。以管理风险。一个成功的软件组织有很多成功的因素,其中共同的一点就是对建模的采用。模型可以提高系统的可测试性。提高可交流性。增强开发过程的可视性,使得分析和设计思路、设计过程可视化。降低实现的复杂度。通过将复杂系统的重要部分分解成一次能理解与处理的多个子部分,可以降低实现的复杂性。人对复杂问题的理解能力是有限的,通过建模,缩小所研究问题的范围,一次只着重研究它的一个方面,这就是所谓的“分而治之”“各个击破”。3.为什么面向对象方法能较好地管理复杂性并增强伸缩性。管理复杂性的一个好办法就是“分而治之”。“分”就是对应用领域的分解,面向对象方法强调以客观世界的事物为基础,把某一领域分割成各种对象,这显然比自顶向下进行功能分解更自然、合理。“治”的基本方法就是:采用封装技术对被分割的事物进行包装,以简化接口、减少事物之间不必要的联系。利用事物之间的泛化管子构造继承机制以获得重用。可用性和可扩展性意味着复杂系统可以由简单系统组合而成,并且复杂系统可以采用“迭代”方式,逐步增量形成。基于对象的分块技术也有助于解决过程的伸缩性问题。4.何谓“软件复用”,为什么说面向对象技术对“软件复用”提供了卓有成效的支持? 软件重用是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。包括分析模型、设计模型、代码以及测试用例、测试信息等等的复用。面向对象技术使软件重用技术更加完善和规范,对象的重要特性。:抽象、封装、继承和多态都从不同角度支持软件重用:抽象使得对象组件更具一般化,也即充分考虑到对象自身的性质、性能和应用环境的复杂性等多方面的要求,以此获得通用化和标准化方面的保证。封装允许开发人员将对象视为“黑匣子”,只需通过界面去理解、引用和操作对象,而不必关心其实现细节。继承使得基于类的抽象层次和泛化结构的代码重用成为可能,也即通过泛化关系使得特殊类可以共享一般类的性质。5.“用况驱动的、迭代式的、增量”的开发方法的要点、优点、时间盒。要点:①软件开发过程要经历若干个开发周期,每个周期都包含:分析、设计、实现和测试等活动。②在经过一个初步的计划和细化阶段后,开发进入由一系列开发周期组成的系统构造阶段,所以迭代主要发生在构造阶段,当然也包含部分实施,因此严格讲,构造发生在构造及实施阶段。③在每个开发周期中,通过增加新的功能使系统得以扩充。④每个开发周期只针对比较小的一部分需求,它要经历分析、设计、实现和测试等活动。每个开发周期完成后,系统都获得一定程度的扩充。开发周期一般是以用况为单位组织的。优点:①因为每个开发周期只针对比较小的一部分需求,所以就可以比较好的解决由于一个开发过程太庞大、复杂使得开发人员无从下手的问题,也即能够比较有效地管理复杂性。②因为每个开发周期只快速实现系统的一小部分,所以在开发过程的早期就能够获得反馈信息。用户的反馈信息越早越好,尽早听到和采纳用户的意见,可以少犯错误。时间盒即给开发周期限定时间,开发周期中的所用工作都必须在这个时间内完成。6.“计划和细化”阶段的主要工作和主要活动。主要工作:初期概念的形成、为做出各种项目选择所进行的调查研究、需求的规格化描述等。主要活动:定义计划草案、编制初步调查报告、定义需求、在术语表中记录术语、实现原型、定义用况、定义概念模型草案、定义系统结构草案、精华计划。7.“构造阶段”的主要工作和主要活动。构造阶段包括一系列重复的开发周期,每个开发周期主要工作:精华计划、同步制品、分析、设计、实现、测试等。在这些开发周期中,系统得到了扩展和完善。构造阶段的最终目标是得到一个能正确符合需求的软件系统。8.何谓链属性,试述链属性不应置入关联两端的某一对象类中作为其属性的理由,请举例说明之。由于关联特性与存在关联关系的两个类有关,因此建模时经常会将这些属性随意地置入某一个类中,当成类的属性。关联的特性是与被关联的两个或多个类有关的那些属性,这些属性不是从属于单个类的,因而不应该随意置入某个类中。9.系统分析阶段如何识别类和排除虚假类?(分别简述语法分析法和现实分析法的要点)。现实分析法:确定问题陈述所涉及的哪些活动是与需求密切相关的,分析这些活动涉及到哪些具体的事物、概念、过程,遵循哪些规则等,它们都可能是系统内部的对象类。语法分析发:在问题陈述中,对象类通常对应于名词或名词词组,因此从问题陈述中找出所有的名词或名词词组,就得到大多数的候选类,运用排除法可以排除虚假的类,就获得确定的类组。虚假类:冗余类、无关类、模糊类、属性、操作、

第五篇:面向对象知识总结

一、封装

1.类本身就是一个封装单元

2.实现:A属于私有化;B共有的方法提供给外界访问;C信息隐藏,安全,对外提供清晰的接口

二、继承

1.代码共有,方便维护扩展 2.更符合人类遇到的问题及处理的习惯 3.多重继承关系下构造函数的执行过程

三、多态

1.概念

2.好处

3.应用(生活,程序中的应用)

程序多态的应用

1.方法重载

2.重写父类的方法

3.重写父类的抽象方法

4.父类类型作为方法参数,实现

5.以父类的引用,接收不同子类返回的结果

6.用接口实现

四、面向接口编程

1.理解接口

1.1接口体现的是一种能力

体现在接口中的方法

1.2接口的体现是一种约定体现在注释和接口的名称 1.3面向接口编程程序设计时:

A关注实现类有那些功能,不需要关注实现细节

B面向接口的约定不考虑接口

具体的实现2.使用接口如何使用接口?A编写接口<-----根据需求设计接口的方法 B实现接口<-----实现接口里定义的所有方法 C使用接口<-----多态 3.特征1.多实现,弥补单一继承不足 2.项目初期,搭建系统时不需要考虑具体的实现自然使用接口:设计和显现分离 3.方便搭建整个应用系统,及系统设计

也方便搭建系统框架 4.多态应用的很好体现更自然的使用多态

重点:

1.掌握抽象类与接口不同之处 难点:

1.方法重载与重写 2.继承关系下,构造函数执行流程 知识体系:

数据库体系 + OO体系

下载9、软件工程面向对象方法学引论总结word格式文档
下载9、软件工程面向对象方法学引论总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    面向对象编程的总结[五篇范文]

    面向对象编程的总结(理解与看法) 面向对象程序设计 (Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到......

    Java面向对象编程习题总结大全

    第一章面向对象开发方法概述 1. 面向对象的软件开发有哪些优点? 1)把软件系统看成是各种对象的集合,这更接近人类的自然思维方式。 2)软件需求的变动性往往是功能的变动,而功......

    使用java实现面向对象编程总结

    第一章:抽象和封装 1,为什么使用面向对象 1.1:万事万物皆对象,面向对象就是采用“现实模拟”的方法设计和开发程序。 2,使用面向对象进行设计 2.1:面向对象设计三部曲 1,发现类。 2......

    “面向对象的程序设计基础”课程总结

    《面向对象的程序设计基础》课程总结 2014~2015学年第一学期基本结束,“面向对象的程序设计基础”课程的教学任务圆满完成。下面对本学期教学情况进行总结。 1.授课班级为14......

    达内学习心得:精心总结的面向对象

    达内学习心得:精心总结的面向对象 参赛学员:方钱有 获奖奖项:二等奖 什么面向对象: 个人分析觉得:在程序设计里,面向对象是一种相对说法,相对于面向过程而言的; 面向“对象":即重点......

    Java 面向对象16种设计原则总结版(模版)

    Java 面向对象16种设计原则 一 类的设计原则 1 依赖倒置原则-Dependency Inversion Principle (DIP) 2 里氏替换原则-Liskov Substitution Principle (LSP) 3 接口分隔原则-In......

    达内学习心得:精心总结的面向对象

    达内学习心得:精心总结的面向对象 参赛学员:方钱有 获奖奖项:二等奖 什么面向对象: 个人分析觉得:在程序设计里,面向对象是一种相对说法,相对于面向过程而言的; 面向“对象":即重点......

    《C++面向对象程序设计》谭浩强版复习总结

    第一章 C++ 基础 endl 换行并刷新输出流 setw(n) 设置字段位数为n hex,oct,dec 十六进制,八进制,十进制表示 setfill 定义填充字符 setprecision 定义浮点数的精度 left,r......