2003年度高级程序员上午试题解析-软件工程篇

发表于:2007-05-26来源:作者:点击数: 标签:
软件工程 是计算机软件的一个重要分支,主要应掌握软件工程的基本原理以及软件设计与 测试方法 。软考中每次考的题量虽然不多,但如果考生没有全面复习掌握软件工程的知识点,要想答对题不是件容易的事。如果考生只是一味的记住软件工程中的条条框框,而不去
软件工程是计算机软件的一个重要分支,主要应掌握软件工程的基本原理以及软件设计与测试方法。软考中每次考的题量虽然不多,但如果考生没有全面复习掌握软件工程的知识点,要想答对题不是件容易的事。如果考生只是一味的记住软件工程中的条条框框,而不去理解理论背后的含义,复习过程枯燥无味如同嚼蜡。只要考题陈述形式一变,许多考生就会无所适从。不过学软件工程的第一步,还是要先记住理论。2003年度的试题没有涉及到软件测试,2004年度的考生应该加强这方面的注意力与复习。建议考生参考Roger S.Pressman的《软件工程——实践者的研究方法》,考试中的许多知识点的叫法与解释都是来源于该书。


1.系统中模块的____不仅意味着作用于系统的小变动将导致行为上的小变化,也意味着规格说明的小变动将影响到一小部分模块。


A. 可分解性 B. 保护性 C. 可理解性 D. 连续性


答案:D


解析:在考虑模块化时,有一个重要问题:如何定义给定大小的一个合适模块?Meyer定义了五个标准:可分解性、保护性、可理解性、连续性、可组装性。模块可分解性是指如果一种设计方法提供了将问题分解成子问题的系统化机制,它就能降低整个系统的复杂性,从而实现一种有效的模块化解决方案。模块保护是指如果模块内出现异常情况,并且它的影响限制在模块内部,则错误引起的副作用就会被最小化。模块可理解性是指如果一个模块可以作为一个独立的单位(不用参考其他模块)被理解,那么它就易于构造和修改。模块连续性是指在程序中进行小的修改的能力以及使这些修改在仅仅一个或很少的几个模块中发生对应修改下的反应,则修改引起的副作用就会被最小化。模块可组装性是指如果一种设计方法使现存的(可复用的)设计构件能被组装成新系统,它就能提供一种不一切从头开始的模块化解决方案。由于本题设计到系统的小变动与规格说明的小变动将带来什么结果,根据题意应选D。


2.下面关于面向对象方法中消息的叙述,不正确的是______。


A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息


B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息


C. 应用程序之间可以相互发送消息


D.发送与接收消息的通信机制与传统的子程序调用机制不同


答案:B


解析:消息是对象间互相联系的手段,消息刺激接收对象产生某种行为,通过操作的执行来完成相应行为。操作系统与应用程序之间可以互相发送消息,所以B是错误的。


3.面向对象技术中,对象是类的实例。对象有三种成份:________、属性和方法(或操作)。


A. 标识 B. 规则 C. 封装 D. 消息


答案:A


解析:对象有三种成份:标识、属性和方法(或操作)。每个对象都有自己的属性值,表示该对象的状态。对象中的属性只能够通过该对象所提供的操作来存取或修改。操作也称为方法或服务,它规定了对象的行为,表示对象所提供的服务。


4.软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了__(1)__。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对__(2)__ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个__(3)__ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。


(1) A. 版本管理 B.可行性分析 C. 风险分析 D. 系统集成


(2) A.系统 B.计划 C. 风险 D.工程


(3)A.原型项目 B.概念项目 C. 改进项目 D. 风险项目


答案:(1) C (2) C (3) B


解析:软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了风险分析,每转一圈都要对风险进行识别和分析,螺旋线第一圈的开始点可能是一个概念项目。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。


5.关于程序模块优化的启发式规则有若干条,以下规则中不符合优化原则的是__(1)__。如果一个模块调用下层模块时传递一个数据结构,则这种耦合属于__(2)__。


(1)A.通过模块的合并和分解,降低模块的耦合度,提高模块的内聚性


B.提高上层模块的扇出,减少模块调用的层次


C.将模块的作用范围限制在模块的控制范围之内


D.降低模块之间接口的复杂性,避免“病态连接”


(2)A.简单耦合 B.直接耦合 C.标记耦合 D.控制耦合


答案:(1)B (2) C


解析:(1)关于程序模块优化的启发式规则有若干条:评估程序结构的“第一次迭代”以降低耦合并提高内聚;试图用高扇出使结构最小化;当深度增加时争取提高扇入;将模块的影响限制在模块的控制范围内;评估模块接口以降低复杂度和冗余并提高一致性;定义功能可以预测的模块,但要避免过分限制的模块;力争“受控入口”模块,避免“病态连接”;根据设计约束和可移植性需求,对软件进行打包。答案A 、C、D都符合上述准则,若要减少模块调用的层次即当深度增加时,应该争取提高扇入,所以答案B不符合原则。(2)一个数据结构的一部分借助于模块接口被传递是标记耦合。两个模块之间的耦合方式有七种:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。


6.软件设计包括四个既独立又相互联系的活动,分别为__(1)__、__(2)__、数据设计和过程设计。


(1)A.用户手册设计 B.语言设计 C.体系结构设计 D.文档设计


(2)A.文档设计 B.程序设计 C.实用性设计 D.接口设计


答案:(1)C (2) D


解析:设计模型可以表示成金字塔,这种形状的象征意义是重要的,金字塔是极为稳固的物体,它具有宽大的基础和低的重心。象金字塔一样,我们希望构造坚固的软件设计,我们通过用数据设计建立宽广的基础,用体系结构和接口设计建立坚固的中部,以及应用过程设计构造尖锐的顶部,从而创建出不会被修改之风轻易“吹倒”的设计模型。


7.美国卡内基—梅隆大学SEI提出的CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是____。


A.工作无序,项目进行过程中经常放弃当初的计划


B.建立了项目级的管理制度


C.建立了企业级的管理制度


D.软件过程中活动的生产率和质量是可度量


答案: D


解析:SEI的模型提供了衡量一个公司软件工程实践的整体有效性的方法,且建立了五级的过程成熟度级别,第一级:初始级,第二级:可重复级,第三级:定义级, 第四级:管理级,第五级:优化级。第四级管理级是指软件过程和产品质量的详细度量数据被收集,通过这些度量数据,软件过程和产品能够被定量地理解和控制,此级包含了第三级的所有特征。根据各选项应选择答案D。

原文转自:http://www.ltesting.net