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