当前位置:文档之家› 第10章 面向对象分析

第10章 面向对象分析

第10章 面向对象分析
第10章 面向对象分析

第10章面向对象分析

10.1面向对象分析的基本过程

不论采用哪种软件工程方法开发软件,需求分析的主要工作都是:理解需求、表达需求和验证需求,下面的图概括地表示了参照当前系统建立目标系统的过程。

图:参照当前系统建立目标系统

面向对象分析(Object-Oriented Analysis,简称OOA)的关键就是识别出对象与类,并分析它们之间的关系,最终建立对象模型、动态模型和功能模型。

10.1.1 概述

系统分析员要善于学习、勇于实践,更重要的是一切从实际出发。

[[注注]]“OOA 就是抽取和整理用户需求并建立问题域精精确确模模型型的过程。”(P231)——这在一开始能做到吗?——扯蛋

10.1.2 3个子模型与5个层次

面向对象建模需建立包含系统的三个要素:1)静态结构(对象模型)、2)交互次序(动态模型)、3)数据交换(功能模型)。

建立系统模型的过程是一个迭代(iterations )式的自顶向下的求精过程。对于一个大型复杂系统来说对对象象模模型型一般由下述5个层次组成:

图10.2 复杂问题的对象模型的5个层次

其中主题层是指从一个更高(高于“类”)的抽象层次来描述对象模型(即从一个相当高的层次上描述总体模型),通过划分“主题”把一个复杂系统的对象模型分解成几个不同的概念范畴。

其实上述5个层次就是OOA中建立对象模型的5项主要工作:找出类和对象,识别结构(类或对象之间的关系),识别主题、定义属性、定义服务。我们知道动态模型和功能模型中都包含了对象模型中的操作,因此人们在定义每个类中的服务前,往往先建立起动态模型和功能模型,这样说来OOA大体上可按下列顺序进行:

(1)确定类和对象

(2)确定关联

(3)划分主题

(4)定义属性

(5)确定继承关系

(6)建立动态模型

(7)建立功能模型

(8)定义服务

需要注意地是在这里我们根本不强调顺序,更不是谈什么步骤。

10.2需求陈述

需求陈述的主要任务是准确地回答“系统必须做什么?”,而不是“系统应该怎么做?”

10.2.1书写要点

10.2.2例子

我们用“ATM系统”(ATM是Automatic Teller Machine的缩写,意即自动柜员机)的开发作为OOA&OOD的实例。

图10.2ATM 系统

10.3建立对象模型

10.3.1确定类与对象

1. 找出候候选选的类与对象(例:P236 ATM 系统)

一般来说,大千世界中的客观事物可分为5类:

1)可感知的物理实体,如:飞机,汽车,房屋

2)人或组织的角色,如:教师,医生,计算机系,学生处

3)应该记忆的事件,如:飞行,演出,访问,交通事故

4)对象的相互作用,如:购买,结婚,纳税

5)概念,如:政策,刑法,泛化,集合

2. 筛选出正确的类与对象

我们需要确定的类与对象是:

(1) 应该记录的对象

(2) 需要它提供服务的对象

同时要关注下述6个方面:

1) 冗余: 去掉冗余的类(如“用户”)

2) 无关: 去掉无关的类(如“储蓄所”)

3) 笼统: 去掉笼统的类(如“银行”)

4) 属性: 区分属性和类(某个性质若具有很强的

独立性应当作为“类”)

5) 操作: 区分操作和类(本身具有属性且需独立存

在的“操作”应当作为“类”)

6) 实现: 忽忽略略实实现现内内容容(应当去掉仅和实现有关

的“类”,如“事务日志”)

10.3.2确定关联

对象之间的相互依赖、相互作用的关系就是关联。在分析的起始阶段,我们不必花过多的精力去区分关联和聚集,聚集不过是一种特殊的关联,是关联的一个特例。

1. 初步确定关联

通过分析动词词组我们可以得出大多数关联(例:P238 ATM 系统)

2. 筛选

筛选时要关注下述5个方面:

1)已删去的类之间的关联也要删除

2)无关的或在在实实现现阶阶段段考考虑虑的的关关联联要要删删除除

3)描述瞬时事件的关系不应作为关联(关联应该描述问题域的静态结构)

4)三个或三个以上对象的关联要作分解或描述成限定关联

5)冗余关联要删除

3. 进一步完善

完善时要关注下述4个方面:

1)正名:选择更明确的名字作为关联名

2)分解:分解已确定的类以适用关联

3)补充:及时补充遗漏关联

4)标明重数:但无需花过多精力

图10.3ATM系统原始的类图

10.3.3划分主题

按问题领域而不是用功能分解来高度概括主题

10.3.4确定属性

属性是类中所定义的数据,它表明了对象的性质。

一般来说,确定属性的过程包括分析和选择两个步骤:1. 分析

通常用名词词组表示属性,如:“汽车的颜色”、“光标的位置”,而用形容词表示可枚举的具体属性,如:“红色的”、“白色的”。

在分析阶段应该仅考虑与具体应用直接相关的属性,而不不要要考考虑虑那那些些纯纯粹粹用用于于实实现现的的属属性性。。

2. 选择

选择时要关注下述6个方面:

1) 区分对象与属性(仅关注其值的是属性);

2) 区分关联类属性与对象属性(例:依赖某个

关联链的性质是关联类属性);

3) 区分限定词和属性(能用限定词更好)

4) 区分内部状态和属性(例:某性质是对象的

内部状态)

5) 忽略无影响的属性(在分析阶段应该忽略对

大多数操作无影响的属性)

6) 注意属性的相关性(分解该“类”)

图10.4ATM系统对象模型中的属性

10.3.5识别继承关系

确定了类中的属性之后,就可以利用继承机制共享公共性质,并对众多的类重新加以组织。

一般来说,可以应用两种方式建立继承(即泛化)关系:

(1)自底向上:抽象出现有类的共同性质泛化出父

类;

(2)自顶向下:把现有类细化成更具体的子类。

图10.5带有继承关系的ATM对象模型

10.3.6反复修改

对象模型的建立是一个反复修改、逐步完善的迭代过

程。对于初学者来说,可尝试用面向对象方法开发几个较小系统,取得一定的经验后,再总结更适合自己的工作方式。

1. 分解“现金兑换卡”类

2. “事务”由“更新”组成

3. 把“分行”与“分行计算机”合并

图10.6修改后的ATM对象模型10.4建立动态模型

一般来说,建立动态模型的典型步骤如下:

(1)编写脚本,确保不遗漏正常的交互行为;

(2)从脚本中提取事件,确定每个事件的发送对象(触发该事件动作的对象)和接受对象;

(3)画事件跟踪图(Sequence Diagram,时序图或顺序图,描述对象之间的时间顺序)

(4)画状态图

(5)审查状态图的完整性和一致性

10.4.1编写脚本

脚本是指系统在某一执行期间内出现的一系列事件(脚本描述事件序列,是用例的实例,是系统的一种实际使用方法。),它描述用户(或其它外部设备)与系统之间的交互过程;对于每个事件,脚本都应该指明触发该事件的动作对象(如:系统、用户或其它外部事物)、接受事件的目标对象,以及该事件的参数。

[目的]编写脚本的目的是保证不遗漏重要的交互步骤。

[实质] 编写脚本的实质是分析用户对与系统交互过程的要求。

编写脚本时,首先编写正常情况的脚本,其次考虑特殊情况,最后考虑出错情况;如有可能还应该允许用户“异常操作”。此外还应该提供“在线帮助”、状态查询等在基本交互行为之上的“通用”交互行为。

10.4.2设想用户界面

用户界面是用户对系统的“第一感”,它往往对用户是

否喜欢一个系统起很重要的作用,因此在分析阶段也不能完全忽略用户界面。设计用户界面时重要的是用户和系统进行信息交换的方式。

图10.7 ATM的界面格式

10.4.3画事件跟踪图

脚本为建立动态模型(状态图)提供了很好的基础,但用自然语言书写的脚本还不够简明,并且会有二义性,因此在画状态图前,我们往往先画出事件跟踪图[简化的UML顺序图(Sequence Diagram,时序图)],为此需进一步明确事件(事件就是引起系统做动作或(和)转换状态的控制信息)及事件与对象的关系。

1. 确定事件

事件包括系统与用户(或外部设备)交互的所有信号、输入、输出、中断、动作等,要注意的是(1)对象的动作也是事件;(2)对控制流产生相同效果的那些事件应作为一类事件。

经过分析要确定每类事件的发送对象和接受对象。

2. 画出事件跟踪图

从脚本中提取出各类事件,并确定每类事件的发送对象和接受对象,就可以用事件跟踪图把事件序列以及事件与对象的关系表示出来,事件跟踪图是扩充的脚本,更是简化了的UML顺序图。

图10.8ATM系统正常情况脚本的事件跟踪图(时序图)10.4.4画状态图

状态图描述了事件与对象状态(对象生命周期中的阶段)的关系。

UML用状态图来表示对象的动态行为,它确定了由事件序列引出的状态序列。系统分析员应仅考虑系统内具有重要交互行为的哪些类,即每个主动发送事件的对象类的动态行为用一张状态图来表示,各个类的状态图通过共享事件合并起来,从而构成系统的动态模型。

从一张事件跟踪图出发画状态图时,要关注影响一类对象的事件,即考虑指向某条竖线(对象)的箭头线,把这些事件作为状态图中的有向边(箭头线),边上标以事件名,两个事件之间的间隔就是一个状态。

图10.9 ATM类的状态图

第10章面向对象讲解

第10章面向对象分析 10.1面向对象分析的基本过程 不论采用哪种软件工程方法开发软件,需求分析的主要工作都是:理解需求、表达需求和验证需求,下面的图概括地表示了参照当前系统建立目标系统的过程。 图:参照当前系统建立目标系统 面向对象分析(Object-Oriented Analysis,简称OOA)的关键就是识别出对象与类,并分析它们之间的关系,最终建立对象模型、动态模型和功能模型。

10.1.1 概述 系统分析员要善于学习、勇于实践,更重要的是一切从实际出发。 [[注注]]“OOA 就是抽取和整理用户需求并建立问题域精精确确模模型型的过程。”(P231)——这在一开始能做到吗?——扯蛋 10.1.2 3个子模型与5个层次 面向对象建模需建立包含系统的三个要素:1)静态结构(对象模型)、2)交互次序(动态模型)、3)数据交换(功能模型)。 建立系统模型的过程是一个迭代(iterations )式的自顶向下的求精过程。对于一个大型复杂系统来说对对象象模模型型一般由下述5个层次组成:

图10.2 复杂问题的对象模型的5个层次 其中主题层是指从一个更高(高于“类”)的抽象层次来描述对象模型(即从一个相当高的层次上描述总体模型),通过划分“主题”把一个复杂系统的对象模型分解成几个不同的概念范畴。 其实上述5个层次就是OOA中建立对象模型的5项主要工作:找出类和对象,识别结构(类或对象之间的关系),识别主题、定义属性、定义服务。我们知道动态模型和功能模型中都包含了对象模型中的操作,因此人们在定义每个类中的服务前,往往先建立起动态模型和功能模型,这样说来OOA大体上可按下列顺序进行: (1)确定类和对象 (2)确定关联 (3)划分主题 (4)定义属性 (5)确定继承关系 (6)建立动态模型

UML面向对象分析与设计教程课后习题答案(胡荷芬-高斐)填空题部

UML面向对象分析与设计教程课后习题答案(胡荷芬-高斐)填空题部 填空题第一章 (1)统一建模语言UML是绘制软件蓝图的标准工具语言,可以对软件系统产品进行说明、可视化、构造和编制文档。 (2)UML在实际软件项目中,可以用于构造各种类型系统的业务模型和软件模型。 (3)软件的开发模式有瀑布模型、喷泉模型、基于构件的开发模型和XP方法。 (4)面向对象程序的三大要素是多态、封装和继承。(抽象) (5)瀑布模型的缺点是缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。 第二章 (1) 在UML中,静态视图包含有两种视图,分别是类图和对象图。 (2) 规格说明,修饰,拓展划分是UML常用的通用机制。 (3) 够造型,标记型,约束是UML常用的扩展机制。 (4) 用例视图描述了系统的参与者与系统进行交互的功能,是参与者所能观察和使用到的系统功能的模型图。 (5) 状态图是通过对象的各种状态来建立模型来描述对象的随时间变化的动态行为,并 且它是独立的对象为中心进行描述。 第三章

(1)Rational Rose默认支持的目标语言主要包括 Java、Visual Basic等。 (C++,C#) (2) 部署视图显示的是系统的实际部署情况,它是为了便于理解系统如何在一组处理解节点上的物理分布,而在分析和设计中使用的架构视图。 (3)使用Rational Rose 生成代码的步骤包括选择待转换的目标模型、检查Java语言的语法错误、设置代码生成属性、生成代码。 (4)在用例视图中包括了系统中的所有参与者、用例和用例图,必要时还可以在其中添加顺序图、协作图、活动图和类图等。 (5) 构件视图用来描述系统中的各个实现模块以及它们之间的依赖关系包含模型代码库、执行文件、运行库和其他构件等信息。 第四章 (1)对象图的目的在于描述系统中参与交互的各个对象在同一时刻是如何运行的。 (2)链是两个或多个对象之间的独立连接,是关联的实例。 (3)在UML的图形表示中,类是由名字、属性和方法三个部分组成的。 (4)依赖关系使用一个从客户指南提供者的虚箭头来进行表示。 (5)在接口中包含一系列操作但是不包含属性,并且它没有对外界可见的关联。 第五章

UML面向对象分析与设计教程课后习题标准答案(胡荷芬-高斐)简答题部分

UML面向对象分析与设计教程课后习题答案(胡荷芬-高斐)简答题部分

————————————————————————————————作者:————————————————————————————————日期:

简答题 第一章 1.面向对象设计的基本特征有哪些?这些特征对软件设计有何帮助? 封装性继承性多态性 在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码. 2.类与对象的区别是什么? 类是抽象的,不具体的。就像有些东西可以归为一类,比如说狗,猫,猪。它们都是动物,我们就可以归为一类。 而猫,狗就是动物类中的一个对象。 3.什么是软件生命周期?生命周期包括几个阶段? 软件的生命周期,亦称软件的生存周期。它是按开发软件的规模和复杂程度,从时间上把软件开发的整个过程(从计划开发开始到软件报废为止的整个历史阶段)进行分解,形成相对独立的几个阶段,每个阶段又分解成几个具体的任务, 然后按规定顺序依次完成各阶段 的任务并规定一套标准的文档作为各个阶段的开发成果,最后生产出高质量的软件。 分为:一般分为定义,开发,维护三大阶段, 定义阶段有可行性论证和开发计划,需求分析, 开发阶段有概要设计,详细设计和编码,维护阶段有测试,运行维护 4.面向对象与uml的关系? umL是统一建模图,用于便于描述类之间的关系等,是用来帮助你更好进行面向对象的设计。 5.面向对象设计与传统软件相比,有何优点? 更有针对性更容易让客户满意减少修改提高效率 第二章 1.uml模型元素有哪些? UML中模型元素太多了,比如用例图中的元素有用例,角色,扩展关系,包含关系,类图中的元素有类,接口,关联等等,每一种框图都有各自独有的元素 2.简述uml通用机制组成以及它的作用? 一、修饰。 在使用UML语言建模时,可以将图形修饰附加到UML图中的模型元素上。比如,当一个元素代表某种类型的时候,它的名称可以用粗体字形类显示;当同一元素表示该类型的实例时,该元素的名称用一条下划线修饰。 二、注释。 UML语言中用一条虚线将注释连接到它为之解释的或细化的元素上。 三、通用划分。 UML语言对其模型元素规定了两种类型的通用划分:型-实例(值)和接口-实现。 1、型-实例(Type-Instance):描述一个通用描述符与单个元素项之间的对应关系。实例元素使用与通用描述符相同的表示图形,但是名字的表示与通用描述符不同:实例元素名字带有下划线,而且后面还要加上冒号和通用描述符的名字。 2、接口-实现:接口声明了一个规定了服务的约定,接口的实现负责执行接口的全部语义定

UML面向对象分析与设计教程课后习题答案简答题部分

简答题 第一章 1.面向对象设计的基本特征有哪些这些特征对软件设计有何帮助 封装性继承性多态性 在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码. 2.类与对象的区别是什么 类是抽象的,不具体的。就像有些东西可以归为一类,比如说狗,猫,猪。它们都是动物,我们就可以归为一类。 而猫,狗就是动物类中的一个对象。 3.什么是软件生命周期生命周期包括几个阶段 软件的生命周期,亦称软件的生存周期。它是按开发软件的规模和复杂程度,从时间上把软件开发的整个过程(从计划开发开始到软件报废为止的整个历史阶段)进行分解,形成相对独立的几个阶段,每个阶段又分解成几个具体的任务, 然后按规定顺序依次完成各阶段 的任务并规定一套标准的文档作为各个阶段的开发成果,最后生产出高质量的软件。 分为:一般分为定义,开发,维护三大阶段, 定义阶段有可行性论证和开发计划,需求分析, 开发阶段有概要设计,详细设计和编码,维护阶段有测试,运行维护 4.面向对象与uml的关系 umL是统一建模图,用于便于描述类之间的关系等,是用来帮助你更好进行面向对象的设计。 5.面向对象设计与传统软件相比,有何优点 更有针对性更容易让客户满意减少修改提高效率 第二章 模型元素有哪些 UML中模型元素太多了,比如用例图中的元素有用例,角色,扩展关系,包含关系,类图中的元素有类,接口,关联等等,每一种框图都有各自独有的元素 2.简述uml通用机制组成以及它的作用 一、修饰。 在使用UML语言建模时,可以将图形修饰附加到UML图中的模型元素上。比如,当一个元素代表某种类型的时候,它的名称可以用粗体字形类显示;当同一元素表示该类型的实例时,该元素的名称用一条下划线修饰。 二、注释。 UML语言中用一条虚线将注释连接到它为之解释的或细化的元素上。 三、通用划分。 UML语言对其模型元素规定了两种类型的通用划分:型-实例(值)和接口-实现。 1、型-实例(Type-Instance):描述一个通用描述符与单个元素项之间的对应关系。实例元素使用与通用描述符相同的表示图形,但是名字的表示与通用描述符不同:实例元素名字带有下划线,而且后面还要加上冒号和通用描述符的名字。 2、接口-实现:接口声明了一个规定了服务的约定,接口的实现负责执行接口的全部语义定义并实现该项服务。

软工题第六章

第六章习题 一、选择题 1. 对象是面向对象范型的(A )。每个对象可用它自己的一组(B )和它可以执行的一组( C )来表征。应用执行对象的( C )可以改变该对象的( B )。它的应用必须通过( D )的传递。可以认为,这种( D )的传递大致等价于过程性范型中的函数调用。某些语言提供了特殊功能,允许对象引用自己。若一个对象没有显式 地被引用,则可让该对象 (供选择的答案: A. ① 基本单位 E )。 ② 最小单位③ 最大单位 ② 功能③ 操作④ 语法单位 B ~ C.①行为④数据⑤属 性 D. ①接口②消息③信息④操作⑤ 过程 E. ①撤消② 歇着③ 缺省④ 隐式引用⑤引用自己 2. 在面向对象软件开发过程中特别重视复用。软件构件应独立于当初开发它们的应用而存在。在以后的应用开发中,可以调整这些独立构件以适应新问题的需要。因此,应使得类成为一个 ( A )的单元。这样就有一个( B )生存期问题。( B )生存期有自己的步骤,与任一特定应用的开发( C )。按照这些步骤,可以完整地描述一个基本( D )。而不仅仅考虑当前正在开发的系统。系统开发的各个阶段都可能会标识新的类。随着各个新类的标识,( B )生存期引导开发工作逐个阶段循序渐进。 在设计与实现类时,应尽可能利用既存类提供为当前应用所需要的功能,利用既存类的 三个可能途径是:(E)复用既存类;对既存类进行(F)以得到满足要求的类; 重新开始进行开发。 供选择的答案: A. ① 可复用② 可测试③可适用④可靠 B. ① 应用②寿命③类④软件 C. ① 相关② 密切相关③ 负相关④无关 D. ① 概念②实体③事件④ 事情 E, F. ① 修改② 更新③照原样④演 化 3 从分析到设计的过程流如图所示。一旦已经开发完成一个合理完整的( A )模型后,就要着手( B )的设计。这需要描述( B )的特征,以准确表达待实现的用户需求,以及实现需求所必须

第10章 面向对象的分析

第10章面向对象的分析 一、填空题(30小题) 1、( )最直接地体现系统责任并实现用户需求的成分。 答案:对象的服务 2、如果在一个服务中包括了多项可独立定义的功能,则它( ),应尝试把它分解为多个服务。 答案:低内聚的 3、主动对象是至少有一个服务不需要接收消息就能( )的对象。 答案:主动执行 4、对象的服务可分为( )。 答案:外部服务和内部服务 5、对象具有封装性,实现了( )的组合。 答案:数据和操作 6、将语言规则应用到软件系统分析的处理称为( )。 答案:基于语言的信息分析(Linguistic_basedInformationAnalysis,LIA)。 7、适当是指( )。 答案:一个合格的程序员看了之后能够正确地理解其要求 8、分析员通过( )来发现和定义对象的每个服务。 答案:分析对象的行为 9、类属性的定义是( )。 答案:是描述类的所有对象的共同特征的一个数据项,对于任何对象实例,它的属性值都是相同的 10、对象具有很强的( )能力和( )功能。 答案:表达、描述 11、( )是对整个对象的状态/行为关系的图示。 答案:状态转换图 12、( )以帮助分析对象的行为。 答案:构画出一个状态转换图 13、系统的需求包括4个不同的层次:( )、( )、( )和( )。答案:业务需求、用户需求、功能需求、非功能性需求 14、服务流程图:( )。 答案:对于功能比较复杂的服务,要给出一个服务流程图,表明该服务是怎样执行的 15、状态转换图是( )的重要工具。 答案:启发分析员认识对象服务 16、对于每个整体一部分分关系,( )中要增加一个属性来表明它的部分对象。 答案:整体对象 17、若类A继承类B,类B继承类C,则( )。 答案:A也继承了C的全部属性与服务

第10章面向对象的分析

第10xx 面向对象的分析 一、填空题( 30 小题) 1、( )最直接地体现系统责任并实现用户需求的成分。 答案:对象的服务 2、如果在一个服务中包括了多项可独立定义的功能,则它( ),应尝试把它分解为多个服务。 答案:低内聚的 3、主动对象是至少有一个服务不需要接收消息就能( )的对象。 答案:主动执行 4、对象的服务可分为( )。 答案:外部服务和内部服务 5、对象具有封装性,实现了( )的组合。 答案:数据和操作 6、将语言规则应用到软件系统分析的处理称为( )。 答案:基于语言的信息分析(Linguistic_basedInformationAnalysis,LIA。) 7、适当是指( )。 答案:一个合格的程序员看了之后能够正确地理解其要求 8、分析员通过( )来发现和定义对象的每个服务。 答案:分析对象的行为 9、类属性的定义是( )。

答案:是描述类的所有对象的共同特征的一个数据项,对于任何对象实例,它的属性值都是相同的 10、对象具有很强的( )能力和( )功能。 答案:表达、描述 11、( )是对整个对象的状态/行为关系的图示。 答案:状态转换图 12、( )以帮助分析对象的行为。 答案:构画出一个状态转换图 13、系统的需求包括 4 个不同的层次:( )、( )、 ( )和( )。 答案:业务需求、用户需求、功能需求、非功能性需求 14、服务流程图:( )。 答案:对于功能比较复杂的服务,要给出一个服务流程图,表明该服务是怎样执行的 15、状态转换图是( )的重要工具。 答案:启发分析员认识对象服务 16、对于每个整体一部分分关系,( )中要增加一个属性来表明它的部分对象。 答案:整体对象 17、若类A继承类B,类B继承类C则( )。 答案:A也继承了C的全部属性与服务 18、如果A是B的一部分,B是C的一部分,则( )。 答案:A也是C的一部分

第10章 面向对象的方法

第10章例题分析与解答 https://www.doczj.com/doc/bf9540037.html,作者:不详来源:2006年9月4日发表评论进入社区 一、填空题 1.面向对象方法认为系统是由应用域的______组成。 2.对象具有状态,描述对象的状态用它的______。 3.对象的抽象是______。 4.类之间有两种结构关系,它们是分类关系和______关系。 5.面向对象程序设计语言与其他程序设计语言的最主要差别是它具有______。 6.动态模型描述了系统的______。 二、选择题 1.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是( )关系。 A.组装 B.整体成员 C.has a 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.词组 三、应用题 1.建立窗口系统的对象模型。问题陈述如下: 窗口分为对话窗、图形窗、滚动窗三种;对话窗中有若干对话项,由唯一的项名字来确定,对话项分为按钮、选择项、正文项三种,选择项中有若干对话项入口;图形窗中有若干形状元素,形状元素分为一维形状和二维形状,一维形状又分为直线、圆弧、折线;二维形状分为圆、椭圆、矩形、多边形,其中多边形和折线由若干有序顶点组成,正文窗是滚动窗的一种,而图形滚动窗既是一种图形窗又是一种滚动窗。 2.在学校教学管理系统中,学生查询成绩就是系统中的一次交互,请用状态图来描述这种查询的交互行为。 答案: 一、填空题 1.对象 2.属性值 3.类 4.组装 5.继承性 6.动态行为

相关主题
文本预览
相关文档 最新文档