当前位置:高级系统分析师题库>面向对象方法题库

问题:

[单选] 对OO系统的技术度量的识别特征,Berard定义了导致特殊度量的特征。其中()抑制程序构件的操作细节,只有对访问构件必需的信息被提供给其他希望访问的构件。

A . 局部化
B . 封装
C . 信息隐藏
D . 继承

在项目的一个阶段末,开始下一阶段之前,应该确保() 下个阶段的资源能得到。 进程达到它的基准。 采取纠正措施获得项目结果。 达到阶段的目标以及正式接受项目阶段成果。 ()不是项目目标特性。 多目标性。 优先性。 临时性。 层次性。 风险的成本估算完成后,可以针对风险表中的每个风险计算其风险曝光度。某软件小组计划项目中采用50个可重用的构件,每个构件平均是100LOC,本地每个LOC的成本是13元人民币。下面是该小组定义的一个项目风险。 (1)风险识别:预定要重用的软件构件中只有50%将被集成到应用中,剩余功能必须定制开发; (2)风险概率:60%。 (3)该项目风险的风险曝光度是() 32500。 65000。 1500。 19500。 UML是面向对象开发方法的标准化建模语言。采用UML对系统建模时,用()模型描述系统的功能,等价于传统的系统功能说明。 分析。 设计。 用例。 实现。 下列关于UML叙述正确的是() UML是一种语言,语言的使用者不能对其扩展。 UML仅是一组图形的集合。 UML仅适用于系统的分析与设计阶段。 UML是独立于软件开发过程的。 对OO系统的技术度量的识别特征,Berard定义了导致特殊度量的特征。其中()抑制程序构件的操作细节,只有对访问构件必需的信息被提供给其他希望访问的构件。
参考答案:

  参考解析

面向对象的软件和用传统方法开发的软件有本质的不同,为此,对OO系统的技术度量必须调整以适应那些区别OO和传统软件的特征。Berard定义了5个导致特殊度量的特征,分别是局部化、封装、信息隐蔽、继承和对象抽象技术。
(1)局部化。局部化是软件的一个特征,它指明信息在程序中被集中的方式,例如,针对功能分解的传统方法围绕功能局部化信息,它们典型地以过程模块来实现。数据驱动方法围绕特定的数据结构局部化信息。在OO语境中,信息是通过封装数据和处理在类或对象的边界内而集中的。因为传统软件强调函数为局部化机制,软件度量着重于函数的内部结构或复杂性(例如,模块长度、内聚性或环路复杂性等)或函数间相互连接的方式(例如,模块耦合)。因为类是OO系统的基本单位,所以,局部化是基于对象的,因此,度量应该应用于作为一个完全实体的类(对象)。此外,在操作(函数、方法)和类间的关系不必要是一对一的。因此,反应类协作方式的度量必须能够适应一对多和多对一的关系。
(2)封装。Berard定义封装为“一组项的包装(或捆绑在一起),(对传统软件的)低层封装例子包括记录和数组,而子程序(例如,过程、函数、子例程和段落)是封装的中层机制”。对OO系统,封装包含了类的责任,包括其属性(和针对聚合对象的其他类)和操作,以及由特定的属性值定义的类的状态。封装通过将测度的焦点从单个模块改变到数据(属性)和处理模块(操作)包而影响度量。此外,封装鼓励在高抽象层的测度。将此层次的抽象同传统的度量相比较,传统的着重于布尔条件的计数或代码行数。
(3)信息隐蔽。信息隐蔽隐瞒(或隐藏)程序构件的操作细节,只将对访问该构件必须的信息提供给那些希望访问它的其他构件。良好设计的OO系统应该鼓励信息隐蔽,因此,指明隐蔽所达到程度的度量应该提供了对OO设计质量的一个指标。
(4)继承。继承是使得某对象的责任能够传播到其他对象的机制,继承出现在类层次的所有层面上,通常,传统的软件不支持该特征。因为继承是很多OO系统的关键特征,所以很多OO度量是关注于它的。
(5)抽象。抽象是使得设计者能够关注程序构件(数据或过程)的本质性细节而不须考虑低层细节的机制。如Berard所说:“抽象是一个相对概念,当我们移向更高的抽象级别时,我们忽略了越来越多的细节;当我们移向抽象的低层时,我们引入了更多的细节,即我们提供了概念或项的更特定的视图”。因为类是一种抽象,它可以在很多不同的细节级别上并以一系列不同的方式(例如,作为一个操作列表、作为一个状态序列、作为一系列协作)来观察,所以OO度量用类的测度(例如,每个应用的每个类的实例数、每个应用的参数化类数以及参数化类和非参数化类的比率)来表示抽象。

在线 客服