还剩35页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
信息系统项目管理师考试冲刺(习题与解答)第 1 章 信息系统开发基础从历年的考试试题来看,本章的考点在综合知识考试中的平均分数为
9.22分,约为总分的
12.30%.主要分数集中在信息系统建设、软件工程和面向对象方法这3个大的知识点上
1.1考点提炼 第1章信息系统开发基础 从历年的考试试题来看,本章的考点在综合知识考试中的平均分数为
9.22分,约为总分的
12.30%.主要分数集中在信息系统建设、软件工程和面向对象方法这3个大的知识点上
1.1 考点提炼 因为信息系统项目管理师的定位并非软件开发专家,因此考试大纲在信息系统开发方面的要求并不是很高考生如果具备软件开发与测试的经验固然是好事,但实践经验不足的考生也不需要过于担心只要通过认真学习,掌握好一些如何建设信息系统的基础知识、软件工程的基本概念以及面向对象的基础知识就可以从容面对 根据考试大纲,结合历年考试真题,希赛教育的软考专家认为,考生必须要掌握以下几个方面的内容
1、信息系统建设 在信息系统建设方面,涉及的考点有信息系统的概念、信息系统的功能、信息系统的类型、信息系统的生命周期(重点)、信息系统建设的原则、信息系统规划方法、信息系统开发方法(重点)
2、软件工程 在软件工程方面,涉及的考点比较多,具体列举如下
(1)软件开发过程软件开发模型(重点)、软件需求分析与定义(重点)、软件设计、软件测试、软件维护、软件复用、软件质量保证及质量评价(重点)、软件开发环境、软件过程管理
(2)软件构件技术知识构件及其重要性、常用构件标准(重点)
(3)软件体系结构软件体系结构的定义、典型的体系结构、软件体系结构设计方法、软件体系结构分析与评估
(4)软件工具建模工具、软件开发工具、软件测试工具、项目管理工具
3、面向对象方法 在面向对象方法方面,涉及的考点有面向对象的基本概念(重点)、统一建模语言UML(重点)、面向对象的分析与设计
1.2 强化练习 试题1 软件需求分析所要做的工作是
(1),因此,进行需求分析时应注意一切信息与需求都是站在应用的角度上考虑
(1)A.确定软件开发阶段的适用工具 B.清晰描述软件的功能和性能 C.为原始问题及目标软件建立物理模型 D.解决目标系统怎么做的问题 试题2 下列描述中,
(2)不是软件体系结构研究的内容
(2)A.软件体系结构描述语言及工具 B.软件体系结构分析、设计及验证 C.软件开发过程中应遵守的政策和法规 D.特定领域的体系结构 试题3 在信息系统集成项目开发的开始阶段,如果项目存在很多不确定性因素且项目的参与人员还不能完全理解项目开发的范围和需求,那么采用
(3)作为此项目的开发模型更符合项目的实际情况
(3)A.增量迭代模型或螺旋模型 B.面向过程的瀑布模型 C.面向对象的模型或快速模型 D.部分并行的瀑布模型 试题4 关于软件过程改进原则,描述不正确的是
(4)
(4)A.问题的解决是过程改进的核心 B.改进是受知识驱动的 C.改进是项目开发人员的主要工作 D.改进应该是一个不断持续的过程 试题5 用一系列软件的修改来评价软件体系结构的易修改性,属于基于
(5)的软件体系结构评估方式
(5)A.度量 B.场景 C.实际运行 D.调查问卷或检查表 试题6 因为在软件开发的每一环节都有可能产生意想不到的问题,所以
(6)
(6)A.应尽量由程序员或开发小组测试自己的程序 B.在设计测试用例时,只需考虑合理的输入条件即可 C.在设计测试用例时,只需考虑合理的输出条件即可 D.应当把软件验证与确认贯穿到整个软件开发的全过程中 试题7 在Linux、Unix和苹果的MacOS操作系统中,系统集成工程师可使用
(7)来构建用C、C++和Java等语言编写的软件
(7)A.VisualStudio.NET B.Project C.Visio D.GCC 试题8 系统集成项目完成了需求分析阶段的工作并开发了原型系统,承建方应组织本方项目经理、建设方代表和相关干系人完成
(8)工作?.
(8)A.阶段评审 B.桌前检查 C.代码走查 D.代码审查 试题9 软件体系结构中的构件不包括
(9)
(9)A.处理构件 B.应用构件 C.数据构件 D.连接构件 试题10 螺旋模型的开发过程具有周期性重复的螺旋线状,每个开发周期由4个象限组成,分别标志着开发周期的4个阶段螺旋模型之所以特别适用于庞大而复杂的、高风险的系统开发,是因为它强调其中的
(10)阶段
(10)A.制定计划 B.实施工程 C.客户评诂 D.风险分析 试题11 某异地开发的信息系统集成项目以程序流程图、数据流程图等为主要分析设计工具由于用户身处异地,现场参与系统开发成本较高,因此项目组采用了先开发一个简化系统,待用户认可后再开发最终系统的策略该信息系统集成项目的开发方法属于
(11)
(11)A.原型法与面向对象方法的组合应用 B.结构化方法与面向对象方法的组合应用 C.结构化方法与原型法的组合应用 D.原型法与形式化方法的组合应用 试题12 在软件开发项目中强调个体和交互胜过过程和工具,可以工作的软件胜过全面的文档,客户合作胜过合同谈判,响应变化胜过遵循计划是
(12)的基本思想
(12)A.敏捷方法 B.结构化方法 C.原型方法 D.增量迭代方法 试题13 下面关于软件维护的叙述中,不正确的是
(13)
(13)A.软件维护活动可能包括编制软件交付后运行的计划和维护计划,以及交付后的软件修改、培训和提供帮助资料等 B.软件维护是软件生命周期中的一个完整部分 C.软件维护包括更正性维护、适应性维护、完善性维护和预防性维护等几种类型D.软件维护是在软件交付之后为保障软件运行而要完成的活动 试题14 程序员在编程时将程序划分为若干个关联的模块第一个模块在单元测试中没有发现缺陷,程序员接着开发第二个模块第二个模块在单元测试中有若干个缺陷被确认对第二个模块实施了缺陷修复后,
(14)符合软件测试的基本原则
(14)A.再测试模块一和模块二,用更多的测试用例测试模块一 B.再测试模块一和模块二,用更多的测试用例测试模块二 C.用更多的测试用例测试模块一;模块二暂时不需再测,等到开发了更多模块后再测 D.用更多的测试用例测试模块二;模块一暂时不需再测,等到开发了更多模块后再测 试题15 某商业银行启动核心信息系统建设,目前已完成信息系统的规划和分析,即将开展系统的设计与实施,此信息系统建设目前
(15)
(15)A.处于信息系统立项阶段 B.处于信息系统的开发阶段 C.处于信息系统运行阶段 D.处于信息系统消亡阶段 试题16 软件公司经常通过发布更新补丁的方式,对已有软件产品进行维护,并在潜在错误成为实际错误前,监测并更正他们,这种软件维护方式属于
(16)
(16)A.预防性维护 B.更正性维护 C.适应性维护 D.完善性维护 试题17-18 下列要素中,不属于DFD四大要素的是
(17)当使用DFD对一个生产系统进行建模时,
(18)可以被认定为外部实体
(17)A.加工 B.数据流 C.数据存储 D.状态
(18)A.生产系统源代码程序 B.生产报表 C.生产数据 D.接收生产报表的管理部门 试题19 极限编程技术XP适用于
(19)的情况
(19)A.需求多变,开发队伍规模较小,要求开发方快速反馈,及时调整 B.需求稳定,开发队伍规模庞大,组织项目的方法为周密计划,逐步推进 C.需求稳定,开发队伍规模较小,组织项目的方法为周密计划,迭代推进 D.需求多变,开发队伍规模庞大,组织项目的方法为分步计划,逐步推进 试题20 一个设计良好的软件系统应具有
(20)的特征
(20)A.高内聚、低耦合 B.低内聚、高耦合 C.高内聚、高耦合 D.低内聚、低耦合 试题21 结构化分析方法(SA)的主要思想是
(21)
(21)A.自顶向下、逐步求精 B.自顶向下、逐步抽象 C.自底向上、逐步抽象 D.自底向上、逐步求精 试题22-23 继承关系是
(22)关系的反关系,聚合关系与组合关系都是一种特殊形式的
(23)关系在UML中,使用一个带空心箭头的虚线表示实现关系,使用带实心箭头的虚线表示依赖关系
(22)A.泛化 B.依赖 C.实现 D.关联
(23)A.泛化 B.依赖 C.实现 D.关联 试题24 在关于逆向工程的描述中,正确的是
(24)
(24)A.按照输出→处理→输入的顺序设计软件 B.用硬件来实现软件的功能 C.从己经安装的软件中提取设计规范,用以进行软件开发 D.根据软件处理的对象来选择开发语言和开发工具 试题25 现有两个用例UC1和UC2其中UC1是一个完整的用例,可被实例化,而UC2需要UC1中的事件流才可被实例化,且UC2指定了使用UC1的精确位置,则UC2和UC1间的关系是
(25)
(25)A.调用 B.概括 C.扩展 D.包含 试题26 Browser/Server模式实现了开发环境与应用环境的分离,便于管理和系统维护,该模式的最大优点之一是
(26)
(26)A.传输速率快 B.运算效率高 C.客户端的零维护 D.服务器端不用安装专用软件 试题27 在UML
2.0提供的图中,
(27)用于描述系统与外部系统及用户之间的交互
(27)A.类图 B.部署图 C.顺序图 D.用例图 试题28 某信息系统项目采用原型法开发,以下做法中不恰当的是
(28)
(28)A.前期花足够的时间与客户充分沟通,完全明确需求后立即实施快速实现 B.系统分析、设计和实现工作之间不做严格的界限划分 C.动态响应用户的需求,逐步纳入用户的具体要求,逐步修改系统开发计划 D.本着开发人员对需求的初步理解,快速开发一个原型系统,再反复修改 试题29 在软件产品即将面世前,为发现产品中的错误并及时修正,软件企业通常要组织内部人员模拟各类用户进行应用,即对该产品进行
(29)
(29)A.Alpha测试 B.Beta测试 C.冒烟测试 D.静态测试 试题30 边界值分析是一种常用的黑盒测试法某程序循环体最少执行0次,最多执行100次,采用边界值分析法,宜选择
(30)作为测试用例
(30)A.循环0次、循环1次、循环99次、循环100次 B.循环0次、循环100次、循环49次、循环50次 C.循环1次、循环99次、循环49次、循环50次 D.循环0次、循环100次
1.3 习题解答 试题1分析 软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求 换句话说,就是要深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,导出目标系统逻辑模型,解决目标系统做什么的问题 而具体在进行需求分析工作时,不能靠想象力行事,更不能完全站在开发方的角度上考虑,而应注意一切信息与需求都是站在实际应用的角度上考虑 试题1答案
(1)B 试题2分析 软件体系结构是具有一定形式的结构化元素,即构件的集合 可以作个简单的比喻,结构化程序设计时代是以砖、瓦、灰、沙、石、预制梁、柱、屋面板盖平房和小楼,而面向对象时代以整面墙、整间房、一层楼梯的预制件盖高楼大厦构件怎样搭配才合理?体系结构怎样构造容易?重要构件有了更改后,如何保证整栋高楼不倒?每种应用领域需要什么构件(医院、工厂、旅馆)?有哪些实用、美观、强度、造价合理的构件骨架使建造出来的建筑(即体系结构)更能满足用户的需求?如同土木工程进入到现代建筑学一样,软件也从传统的软件工程进入到现代面向对象的软件工程,研究整个软件系统的体系结构,寻求建构最快、成本最低、质量最好的构造过程 软件体系结构虽脱胎于软件工程,但其形成同时借鉴了计算机体系结构和网络体系结构中很多宝贵的思想和方法,最近几年软件体系结构研究已完全独立于软件工程的研究,成为计算机科学的一个最新的研究方向和独立学科分支软件体系结构研究的主要内容涉及软件体系结构描述、软件体系结构风格、软件体系结构评价和软件体系结构的形式化方法等解决好软件的重用、质量和维护问题,是研究软件体系结构的根本目的 综上所述,只有选项C不是软件体系结构研究的内容 试题2答案
(2)C 试题3分析 项目存在很多不确定性因素且项目的参与人员还不能完全理解项目开发的范围和需求的情况就意味着项目的需求不明确、项目的风险较大,因此采用增量迭代模型或螺旋模型是比较适合的 至于其他几种模型,均不太适合或完全不适合题干中所描述的情景 试题3答案
(3)A 试题4分析 软件过程改进SPI(SoftwareProcessimprovement)帮助软件企业对其软件(制作)过程的改变(进)进行计划、(措施)制定以及实施其实施对象就是软件企业的软件过程,也就是软件产品的生产过程,当然也包括软件维护之类的维护过程,而对于其他的过程并不关注 SPI的五条核心原则分别是注重问题、强调知识创新、鼓励参与、领导层的统
一、计划不断地改进 问题的解决是过程改进的核心,实践不仅是SPI组的目标也是它的起点这条原则为过程改进人员指明了目标,明确了方法SPI就是要在实践中发现软件过程中的问题,并在实践中寻找和找到解决问题的办法,可以说过程改进就是在不断发现问题和解决问题的过程中不断向前发展 改进是一种知识的创新,SPI是受知识的驱动的.这条原则强调了知识创新在SPI中的作用,提醒了SPI人员在注重知识创新的同时更要注重知识的传播和扩散 通常从事SPI工作的做法是,过程改进仅仅是过程改进人员的事情,其他人员只是被动地接受而合作促使改进产生这条原则给予了我们很好的启发和提示它告诉我们,过程改进不仅仅是一个人或几个人的事情,而是整个组织的事情只有鼓励大家都积极参与,让这些人基于自身的经验和职业的判断力来实实在在地设计和开发新的过程,才能使设计出来的过程真正为他们所理解,为他们所用,从而实现过程的成功这也是我们在过程改进工作中容易疏忽的地方 改进必须是综合了各个层次的人的力量SPI人员一定要保证SPI的目标与组织的整体目标是一致的,因为只有这样才能保证SPI工作得到各个领导层的赞同、支持和投入,才能综合利用各个层次的力量来推动SPI工作的前进这是预防过程改进项目风险的重要手段 改进应该是一个不断持续的过程这一原则进一步提示和告诫SPI人员一定要认识到改进的不断持续的特性到达顶点并不重要,关键的是,你现在处在一个上升过程中,达到一个目标就创造了另一个更高的目标,这个目标对我们的过程和环境都具有重要的意义 这五条原则是从实践中发展而来、相互关联的SPI哲学,对开展SPI工作具有非常重要的指导作用 显然,软件过程改进是项目开发人员需要参与的工作,但不是其主要工作 试题4答案
(4)C 试题5分析 软件体系结构评估方式主要有以下三种
(1)基于调查问卷或检查表的评估方式 调查问卷列出一系列可以应用到各种体系结构评估的相关问题,其中有些问题可能涉及到体系结构的设计决策,有些问题涉及到体系结构的文档,有的问题针对体系结构描述本身的细节问题检查表中也包含一系列比调查问卷更细节和具体的问题,它们更趋向于考察某些关心的质量属性 这一评估方式比较自由灵活,可评估多种质量属性,也可以在软件体系结构设计的多个阶段进行但是由于评估的结果很大程度上来自评估人员的主观推断,因此不同的评估人员可能会产生不同甚至截然相反的结果,而且评估人员对领域的熟悉程度、是否具有丰富的相关经验也成为评估结果是否正确的重要因素 尽管基于调查问卷与检查表的评估方式相对比较主观,但由于系统相关的人员的经验和知识是评估软件体系结构的重要信息来源,因而它仍然是进行软件体系结构评估的重要途径之一
(2)基于场景的评估方式 这种软件体系结构评估方式分析软件体系结构对场景(也就是对系统的使用或修改活动)的支持程度,从而判断该体系结构对这一场景所代表的质量需求的满足程度例如,用一系列对软件的修改来反映易修改性方面的需求,用一系列攻击性操作来代表安全性方面的需求等
(3)基于度量的评估方式 度量是指为软件产品的某一属性所赋予的数值,如代码行数、方法调用层数、构件个数等传统的度量研究主要针对代码,但近年来也出现了一些针对高层设计的度量,软件体系结构度量即是其中之一代码度量和代码质量之间存在着重要的联系,类似地,软件体系结构度量应该也能够作为评判质量的重要的依据 赫尔辛基大学提出的基于模式挖掘的面向对象软件体系结构度量技术、Karlskrona和Ronneby提出的基于面向对象度量的软件体系结构可维护性评估、西弗吉尼亚大学提出的软件体系结构度量方法等都在这方面进行了探索,提出了一些可操作的具体方案我们把这类评估方式称作基于度量的评估方式 综上所述,题干描述的是基于场景的软件体系结构评估方式 试题5答案
(5)B 试题6分析 此题主要是考察软件测试工作的原则
(1)尽早、不断的进行测试
(2)程序员避免测试自己设计的程序
(3)既要选择有效、合理的数据,也要选择无效、不合理的数据
(4)修改后应进行回归测试
(5)尚未发现的错误数量与该程序已发现错误数成正比 依据以上原则可知应尽量避免由程序员或开发小组测试自己的程序;在设计测试用例时,既要考虑合理的输入与输出条件,也要考虑不合理的输入与输出条件 而软件验证与确认的对象包括软件开发各个阶段性的交付成果在内,所以自然是要贯穿到整个软件开发的全过程中的 试题6答案
(6)D 试题7分析 GCC(GNUCompilerCollectionGNU编译器套装),是一套由GNU开发的编程语言编译器GCC是Linux平台下最常用的编译程序,亦是自由的类Unix及苹果电脑MacOSX操作系统的标准编译器GCC除了支持C语言外,还支持多种其他语言,例如C++、Ada、Java、FORTRAN、Pascal等 VisualStudio.NET是流行的Windows平台应用程序开发环境,但它无法支持Java语言 Project是项目管理软件 Visio是一个制图软件 试题7答案
(7)D 试题8分析 阶段管理评审依据定义好的每个开发阶段的开始和结束边界,检查该阶段的过程与工作成果是否符合质量标准,并且决定是否可以启动下一个阶段的工作 而其他三项都是属于软件测试中的静态测试的范畴(桌前检查是程序员自已检查自已写的代码,代码走查与代码审查都是由一些同行专业人士来进行检查),明显与题意不符(题干中的相关干系人不一定是专业人士,而且题干中描述的并非开展测试工作) 试题8答案
(8)A 试题9分析 软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来 试题9答案
(9)B 试题10分析 螺旋模型是一个演化软件过程模型,将原型实现的迭代特征与线性顺序(瀑布)模型中的控制的和系统化的方面结合起来使得软件的增量版本的快速开发成为可能螺旋线中的每个开发周期的四个象限分别是制定计划、风险分析、实施工程和客户评估,螺旋模型强调了分险分析,因此特别适用于庞大而复杂的、高风险的系统开发 试题10答案
(10)D 试题11分析 结构化方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法结构是指系统内各个组成要素之间的相互联系、相互作用的框架程序流程图、数据流程图都是典型的结构化开发方法所需要使用的工具 原型法是在投入大量的人力,物力之前,用最经济的方法开发出一个可实际运行的系统模型,用户在运行使用整个原型的基础上,通过对其评价,提出改进意见,开发人员根据这些意见对原型进行修改,该评价过程反复进行,使原型逐步完善,直到完全满足用户的需求为止题干中的项目组采用了先开发一个简化系统,待用户认可后再开发最终系统的策略说明该项目采用了原型开发方法 面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO方法,是建立在对象概念基础上的方法学对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象而继承性是对具有层次关系的类的属性和操作进行共享的一种方式所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统从题干中看不出采用了面向对象开发方法 用于开发计算机系统的形式化方法是描述系统性质的基于数学的技术,这样的形式化方法提供了一个框架,可以在框架中以系统的而不是特别的方式刻划、开发和验证系统如果一个方法有良好的数学基础,那么它就是形式化的,典型地以形式化规约语言给出从题干中看不出采用了形式化方法 试题11答案
(11)C 试题12分析 2001年2月11日到13日,17位软件开发领域的领军人物聚集在美国犹他州的滑雪胜地雪鸟(Snowbird)雪场经过两天的讨论,敏捷(Agile)这个词为全体聚会者所接受,用以概括一套全新的软件开发价值观这套价值观,通过一份简明扼要的敏捷宣言传递给世界,宣告了敏捷开发运动的开始敏捷宣言的主要内容为个体和交互胜过过程和工具;可以工作的软件胜过全面的文档;客户合作胜过合同谈判;响应变化胜过遵循计划在每对比对中,后者并非全无价值,但我们更看重前者 综上所述,正确答案应选A 试题12答案
(12)A 试题13分析 软件维护是生命周期的一个完整部分可以将软件维护定义为需要提供软件支持的全部活动这些活动包括在交付前完成的活动,以及交付后完成的活动交付前完成的活动包括编制交付后运行的计划和维护计划等交付后的活动包括软件修改、培训和帮助资料等软件维护包括如下类型
(1)更正性维护;
(2)适应性维护;
(3)完善性维护;
(4)预防性维护 综上可知,软件维护不仅仅是在软件交付之后为保障软件运行而要完成的活动,还包括软件交付前应该完成的活动因此应选D. 试题13答案
(13)D 试题14分析 在软件测试工作中,应尽早地和不断地进行软件测试,因为软件错误发现得越早,纠正错误所需付出的代价就越低;在软件修改后要及时进行回归测试(指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误);另外要充分注意软件测试中的群集现象,也可以认为是80-20原则.不要以为发现几个错误并且解决这些问题之后,就不需要测试了反而这里是错误群集的地方,对这段程序要重点测试,以提高测试投资的效益 综上所述,选项C和D不符合尽早测试的基本原则,由于模块一和模块二是相互关联的模块,修改其中任意一个模块后都要对两个模块进行再测试;选项A不符合第80-20原则模块二中发现的错误比模块一多,因此模块二应该是回归测试的重点选项B最符合题意,因此应选B 试题14答案
(14)B 试题15分析 信息系统的生命周期可以分为4个阶段立项、开发、运维、消亡
(1)立项阶段 即其概念阶段或需求阶段,这一阶段分为两个过程一是概念的形成过程,根据用户单位业务发展和经营管理的需要,提出建设信息系统的初步构想;二是需求分析过程,即对企业信息系统的需求进行深入的调研和分析,形成《需求规范说明书》,经评审,批准后立项
(2)开发阶段 该阶段又可分为总体规划阶段、系统分析阶段、系统设计阶段、系统实施阶段、系统验收阶段
(3)运维阶段 信息系统通过验收,正式移交给用户以后,就进入运维阶段
(4)消亡阶段 信息系统经常不可避免地会遇到系统更新改造、功能扩展甚至报废重建等情况 综上所述,根据信息系统生命周期中各个阶段的定义,当完成信息系统的规划和分析,即将开展系统的设计与实施时,该信息系统建设目前处于开发阶段,因此应选B. 试题15答案
(15)B 试题16分析 软件维护指在软件运行维护阶段对软件产品所进行的修改要求进行软件维护的原因主要可归纳为3种类型
(1)改正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷
(2)因在软件使用过程中数据环境发生变化或处理环境发生变化,对软件进行的修改
(3)用户和数据处理人员在使用时常提出改进现有功能、增加新的功能,以及改善总体性能的要求,为了满足这些要求需要进行软件修改 与上述原因相对应,可将维护活动归纳为改正性维护、适应性维护和完善性维护 除了上述3类维护外,还有一类维护活动叫预防性维护
(4)预防性维护是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础的维护活动预防性维护可定义为用今天的技术修改昨天的软件以满足明天的需要. 本题题干中描述的维护方式属于顶防性维护 试题16答案
(16)A 试题
17、18分析 DFD即数据流图或称数据流程图(DataFlowDiagram)是一种便于用户理解、分析系统数据流程的图形工具它摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分 DFD应由数据流、加工、数据存储和外部实体4个要素构成外部实体是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地和系统所产生数据的归宿地 另外需注意分层数据流图中的父图与子图需保持平衡(子图的输入输出数据流同父图相应加工的输入输出数据流必须一致(不是数目必须相等),此即父图与子图的平衡) 试题
17、18答案
(17)D
(18)D 试题19分析 极限编程技术XP(ExtremeProgramming)是一种开发软件的轻量级的方法,也是敏捷开发方法的代表之一XP适用于中小型软件开发团队、并且客户的需求模糊或需求多变的情况 XP是一种近似于螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期通过积极的交流和反馈,可以根据实际情况及时地调整开发过程 试题19答案
(19)A 试题20分析 软件系统可以划分为若干个小的简单的功能模块,每个模块可以独立开发、测试模块独立是软件设计开发的基本原则之一 耦合是指多个模块之间联系的紧密程度,耦合越高则模块的独立性越差;内聚是指同一模块内部各元素之间联系的紧密程度,内聚度越低,模块的独立性越差 耦合性和内聚性是模块独立性的两个定性标准,将软件系统划分模块时,应尽量做到高内聚、低耦合,提高模块的独立性 试题20答案
(20)A试题21分析 结构化方法是一种传统的软件开发方法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的它的基本思想把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解(求精),使得每个阶段处理的问题都控制在人们容易理解和处理的范围内 结构化方法的基本要点是自顶向下、逐步求精、模块化设计、结构化编码 结构化分析方法是以自顶向下,逐步求精为基点,以一系列经过实践的考验被认为是正确的原理和技术为支撑,以数据流图,数据字典,结构化语言,判定表,判定树等图形表达为主要手段,强调开发方法的结构合理性和系统的结构合理性的软件分析方法 结构化设计方法是以自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽化局部化和保持模块独立为准则的设计软件的数据架构和模块架构的方法学 结构化方法是一种面向数据流的开发方法是软件工程中最早出现的开发方法,特别适合于数据处理领域 试题21答案
(21)A 试题22-23分析 在建立抽象模型时,我们会发现很少有类会单独存在,大多数都将会以某种方式彼此协作,因此我们还需要描述这些类之间的关系关系是事物间的连接,在面向对象建模中,有4个很重要的关系值得关注
1、依赖关系 有两个元素X、Y如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖于元素X.在UML(UnifiedModelingLanguage)中,使用带实心箭头的虚线表示依赖关系 在类中,依赖由各种原因引起,如一个类向另一个类发消息;一个类是另一个类的数据成员;一个类是另一个类的某个操作参数如果一个类的界面改变,它发出的任何消息可能不再合法
2、泛化关系 泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系继承关系是泛化关系的反关系,也就是说子类是从父类中继承的,而父类则是子类的泛化在UML中,使用带空心箭头的实线表示,箭头指向父类 在UML中,对泛化关系有3个要求
(1)子类应与父类完全一致,父类所具有的关联、属性和操作,子元素都应具有;
(2)子类中除了与父类一致的信息外,还包括额外的信息;
(3)可以使用子父类实例的地方,也可以使用子类实例
3、关联关系 关联表示两个类之间存在某种语义上的联系例如,一个人为一家公司工作,一家公司有许多办公室我们就认为人和公司、公司和办公室之间存在某种语义上的联系 关联关系提供了通信的路径,在UML中,使用一条实线来表示关联关系有两种特殊的关联关系值得重视
(1)聚合关系聚合表示类之间的关系是整体与部分的关系例如一辆轿车包含四个车轮、一个方向盘、一个发动机和一个底盘,就是聚合的一个例子在UML中,使用一个带空心菱形的实线表示,空心菱形指向的是代表整体的类聚合关系中的整体与部分的生命周期可以不同,即当整体的生命终止时,部分的生命可以继续存在
(2)组合关系如果聚合关系中的表示部分的类的存在,与表示整体的类有着紧密的关系,例如公司与部门之间的关系,那么就应该使用组合关系来表示在UML中,使用带有实心菱形的实线表示聚合关系中的整体与部分的生命周期必定不同,即当整体的生命终止时,部分的生命也不再存在
4、实现关系 实现关系是用来规定接口和实现接口的类或组件之间的关系接口是操作的集合,这些操作用于规定类或组件的服务在UML中,使用一个带空心箭头的虚线表示 试题22-23答案
(22)A
(23)D 试题24分析 逆向工程(ReverseEngineering)又叫反向工程,其概念来自于硬件硬件厂商总想弄到竞争对手产品的设计和制造的奥秘但是又得不到现成的档案,只好拆卸对手的产品并进行分析,导出该产品的一个或多个设计与制造的规格说明 软件的逆向工程是完全类似的,由于受到法律的约束,进行逆向工程的程序常常不是竞争对手的,而是自己开发的程序,有些是多年以前开发出来的这些程序没有规格说明,开发人员可能早已流失,导致对软件的了解很模糊因此,软件的逆向工程是分析程序,力图在比源代码更高的抽象层次上建立程序表示的过程逆向工程是一个设计恢复的过程,其工具可以从已有的程序中抽取数据结构、体系结构和程序设计信息 因此,逆向工程可以从源程序抽取出设计信息,但是,抽象的层次、文档的完整性、工具和分析员一起工作的程度、以及过程的方向性却是高度可变的 逆向工程过程及用于实现该过程的工具的抽象层次,是指可从源代码中抽取出来的设计信息的精密程度理想地,抽象层次应该尽可能高,即逆向工程过程应该能够导出过程的设计表示(一种低层的抽象);程序和数据结构信息(稍高一点层次的抽象);数据和控制流模型(一种相对高层的抽象);以及实体-关系模型(一种高层抽象)随着抽象层次增高,软件工程师获得更有助于理解程序的信息 试题24答案
(24)C 试题25分析 用例可以被通俗地理解为信息系统的功能,用例之间的关系主要包括包含关系、扩展关系和泛化关系 1包含关系(Include) 要点
(1)一个用例可以简单地包含其它用例具有的行为,并把它所包含的用例行为作为自身行为的一部分,这称作包含关系
(2)如果两个以上的用例有大量一致的功能,则可以将这个功能分解到另一个用例中(作为包含关系的提供者用例)
(3)一个用例的功能太多时,可以用包含关系建模两个或多个用例 表示方法在UML中,包含关系表示为带《include》字样虚线箭头,箭头指向被包含的用例 2扩展关系(Extend) 要点
(1)一个用例(扩展用例)可以被定义为基础用例的增量扩展,这称为扩展关系
(2)一般基础用例的执行不会涉及到扩展用例,只有特定的条件下扩展用例才被执行
(3)扩展关系为处理异常或构建灵活的系统框架提供了一种十分有效的办法 表示方法在UML中,扩展关系表示为带《extend》字样虚线箭头,箭头指向被扩展的用例(即基础用例) 3泛化关系(Generalization) 要点
(1)一个用例被特别列举为一个或多个用例,这被称作用例泛化
(2)子用例表示父用例的特殊形式子用例从父用例处继承属性和行为,还可以添加、覆盖或改变继承的行为
(3)父用例被使用时,任何子用例也可以被使用
(4)如果系统中一个或多个用例是某个一般用例的特殊化时,就需要使用用例的泛化关系 表示方法在UML中,用例泛化表示为一个三角的实线箭头,从子用例指向父用例 综上所述,题目中描述的用例间的关系为包含关系即用例UC2包含了用例UC
1. 试题25答案
(25)D 试题26分析 在B/S(即Browser/Server)模式下,把所有应用功能(业务逻辑)和数据库都放在了服务器端,客户端只需一个浏览器就可以使用系统功能,无须安装专用软件,因此在客户端也就无需进行专门的维护(即零维护)但B/S模式下的传输速率和运算能力没有C/S模式下效果好而C/S模式的主要缺点是客户端的维护工作量大、无法把软件系统拓展到因特网上等试题26答案
(26)C 试题27分析 在UML
2.0中,每个视图都由一个或者多个图组成,一个图是系统体系结构在某个侧面的表示,所有的图在一起组成系统的完整视图UML
2.0共提供了14种不同的图,分为静态图(又叫结构图)和动态图(又叫行为图)两大类静态图包括类图、对象图、包图、组合结构图、构件图、部署图和制品图,动态图包括用例图、顺序图、通信图、定时图、状态图、活动图和交互概览图
(1)类图(Classdiagram) 类图用来表示系统中的类以及类与类之间的关系,描述系统的静态结构,用于逻辑视图中类是对象的抽象描述所谓对象就是可以控制和操作的实体,类是具有共同的结构、行为、关系、语义的一组对象的抽象类的行为和结构特征分别通过操作和属性表示
(2)对象图(Objectdiagram) 对象图是类图的示例,类图表示类以及类与类之间的关系,对象图则表示在某一时刻这些类的具体实例以及这些实例之间的具体连接关系,可以帮助人们理解比较复杂的类图对象图也可以用于显示类图中的对象在某一点的连接关系对象图常用于用例视图和逻辑视图中
(3)包图(Packagediagram) 展现了由模型本身分解而成的组织单元以及它们的依赖关系(将相关的类组合在一起,并描述这些类之间的关系)包与类的关系就象目录与文件夹的关系,包里面可以有类,包里面也可以有包
(4)组合结构图(Compositestructurediagram) 用来描述系统中某一部分(即组合结构可以就是一个类)的内部结构,包括该部分与系统其它部分的交互点;它能够展示该部分内容内部参与者的配置情况
(5)构件图(Componentdiagram) 又叫组件图,其描述代码构件的物理结构以及各种构件之间的依赖关系用来建模软件的构件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成在构件图中,构件是软件中的单个组成部分,它可以是一个文件,产品、可执行文件和脚本等构件图常用于实现视图中
(6)部署图(Deploymentdiagram) 又叫配置图,其用来建模系统的物理部署,即显示系统中软件和硬件的物理架构图中通常显示实际的计算机和设备及它们之间的关系(通过什么协议联系)、各DLL如何分布等部署图常用于部署视图中
(7)制品图(Artifactdiagram) 展现了计算机中一个系统的物理结构制品包括文件、数据库和类似的物理比特集合制品常与部署图一起使用(通常部署图中的一个节点包括了一个或多个制品)
(8)用例图(Usecasediagram) 用例图描述系统的功能,由系统、用例和三种元素组成图中显示若干角色以及这些角色和系统提供的用例之间的连接关系用例是系统对外提供的功能的描述,是角色和系统在一次交互过程中执行的相关事务的序列角色是与系统、子系统或类交互的外部人员、进程或事物用例图常用于用例视图中(用例图中通常用椭圆表示用例,用人形图案表示参与者)
(9)顺序图(Sequencediagram) 又叫序列图,面向对象系统中对象之间的交互表现为消息的发送和接收序列图反映若干个对象之间的动态协作关系,即随着时间的流逝,消息是如何在对象之间发送和接收的序列图表现为二维的形式,其中的纵坐标轴显示时间,横坐标轴显示对象(每个对象的下方沿时间轴有一根生命线)序列图中重点反映对象之间发送消息的先后次序,常用在逻辑视图中
(10)通信图(Collaborationdiagram) 又叫协作图,其主要描述协作对象之间的交互和链接协作图和序列图同样反映对象间的动态协作,也可以表达消息序列,但重点描述交换消息的对象之间的关系,强调的是空间关系而非时间顺序
(11)定时图(Timingdiagram) 定时图是一种交互图,它展现了消息跨越不同对象或角色的实际时间,而不仅仅是关心消息的相对顺序
(12)状态图(Statediagram) 状态图主要用来描述对象、子系统、系统的生命周期通过状态图可以了解一个对象可能具有的所有状态、导致对象状态改变的事件,以及状态转移引发的动作状态是对象操作的前一次活动的结果,通常由对象的属性值来决定事件指的是发生的且引起某些动作执行的事情状态的变化称做转移,与转移相连的动作指明状态转移时应该做的事情状态图是对类描述的事物的补充说明,用在逻辑视图中描述类的行为
(13)活动图(Activitydiagram) 活动图显示动作及其结果,着重描述操作实现中所完成的工作以及用例实例或对象中的活动活动图中反映了一个连续的活动流,常用于描述一个操作执行过程中所完成的工作活动图也有其他的用途,如显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象,说明一次商务活动中的工人、工作流、组织和对象是如何工作的等
(14)交互概览图(Interactionoverviewdiagram) 交互概览图是活动图和顺序图的混合物顺序图、通信图、定时图、交互概览图统称交互图 以上14种图中考得较多的是类图、构件图、部署图、用例图、顺序图、通信图、状态图、活动图等,考生朋友需重点关注(既要理解这些图的作用与意义,也要能面对试卷上的一个图形,看懂是哪一种图) 试题27答案
(27)D试题28分析 常见的信息系统开发方法结构化法、原型法、面向对象方法其中原型法也称原型化法、快速原型法,原型法的基本思想与结构化方法不同,原型法认为在很难一下子全面准确地提出用户需求的情况下,首先不要求一定要对系统做全面、详细的调查、分析,而是本着开发人员对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求系统分析、设计与实现都是随着对一个工作模型的不断修改而同时完成的,相互之间并无明显界限,也没有明确分工 试题28答案
(28)A试题29分析 Alpha测试(又名α测试)是指软件开发公司组织内部人员模拟各类用户行为对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的用户操作方式紧随其后的Beta测试(又名β测试)是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出批评意见然后软件开发公司再对β版本进行改错和完善 冒烟测试术语源自硬件行业对一个硬件或硬件组件进行更改或修复后,直接给设备加电如果没有冒烟,则该组件就通过了测试在软件中,冒烟测试这一术语描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程在检查了代码后,冒烟测试是确定和修复软件缺陷的最经济有效的方法冒烟测试设计用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性 静态测试是指被测程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测静态测试一般采用桌前检查、代码走查、代码审查 试题29答案
(29)A 试题30分析 边界值分析经验表明,软件在处理边界情况时最容易出错设计一些测试用例,使软件恰好运行在边界附近,暴露出软件错误的可能性会更大些每一个等价的边界,都应该着重测试,选取的测试数据应该恰好等于、稍小于或稍大于边界值 试题30答案
(30)A如需阅读完整版教材请到希赛软考学院,信息系统项目管理师考试冲刺(习题与解答)http://www.educity.cn/jiaocheng/zt
142.html。