1、软件工程练习试卷 1及答案与解析 1 新项目与过去成功开发过的一个项目类似,但规模更大,这时应该使用 _进行项目开发设计。 ( A)原型法 ( B)变换模型 ( C)瀑布模型 ( D)螺旋模型 2 在选择开发方法时,不适合使用原型法的情况是 _。 ( A)用户需求模糊不清 ( B)系统设计方案难以确定 ( C)系统使用范围变化很大 ( D)用户的数据资源缺乏组织和管理 3 软件开发中的瀑布模型典型地刻画了软件生存周期各个阶段的划分,与其最相适应的软件开发方法是 _。 ( A)构件化方法 ( B)结构化方法 ( C)面向对象方法 ( D)快速原型方法 4 常见的软件开发模型有瀑布模型、演化模型、
2、螺旋模型、喷泉模型等。其中_适用于需求明确或很少变更的项目。 ( A)瀑布模型 ( B)演化模型 ( C)螺旋模型 ( D)喷泉模型 5 在开发一个系统时,如果用户对系统的目标不很清楚,难以定义需求,这时最好使用 _。 ( A)原型法 ( B)瀑布模型 ( C) V-模型 ( D)螺旋模型 6 某电子商务公司由相对独立的 6个子公司组成,在管理上其中 3个子公司管 理基础完善,基本达到科学管理的要求。企业高层为企业长远发展考虑决定建设一个基于 B/S结构的管理信息系统。该系统项目可使用 _进行开发建设。 ( A)生命周期法 ( B)原型法 ( C) CASE开发方法 ( D)面向对象开发方法
3、7 下列关于软件需求管理与需求开发的论述,正确的是 _。 ( A)所谓需求管理是指对需求开发的管理 ( B)需求管理包括:需求获取、需求分析、需求定义和需求验证 ( C)需求开发是将用户需求转化为应用系统成果的过程 ( D)在需求管理中,要求维持对原有需求和所有产 品构件需求的双向跟踪 8 有两种需求定义的方法 严格定义和原型定义,在关于这两种方法的描述中,不正确的是 _。 ( A)严格定义方法假定所有的需求都可以预先定义 ( B)严格定义方法假定软件开发人员与用户之间的沟通存在障碍 ( C)原型定义方法认为需求分析中不可避免地要出现很多反复 ( D)原型定义方法强调用户在软件开发过程中的参与
4、和决策 9 需求分析的任务是借助于当前系统的物理模型导出目标系统的逻辑模型,解决目标系统 “做什么 ”的问题。 _并不是需求分析的实现步骤之一。 ( A)获得 当前系统的物理模型 ( B)抽象出当前系统的逻辑模型 ( C)建立目标系统的逻辑模型 ( D)确定目标实现的具体技术路线 10 系统分析是信息系统开发重要的阶段。系统分析的困难不包括 _。 ( A)问题空间的理解 ( B)系统建模工具的复杂性 ( C)人与人之间的沟通 ( D)环境的不断变化 10 (1)是一种最常用的结构化分析工具,它从数据传递和加工的角度,以图形的方式刻画系统内数据的运行情况。通常使用 (2)作为该工具的补充说明。
5、11 (1) ( A)数据流图 ( B)数据字典 ( C) ER图 ( D)判定表 12 (2) ( A)数据流图 ( B)数据字典 ( C) ER图 ( D)判定表 13 系统分析模型应明确体现的因素是 _。 性能描述 功能描述 约束条件 系统结构 动态模型 ( A) 、 、 、 和 ( B) 、 、 和 ( C) 、 和 ( D) 、 、 和 14 下述任务中,不属于软件工程需求分析阶段的是 _。 ( A)分析软件系统的数据要求 ( B)确定软件系统的功能需求 ( C)确定软件系统的性 能要求 ( D)确定软件系统的运行平台 15 在结构化分析方法中,数据字典是重要的文档。对加工的描述是数
6、据字典的组成内容之一,常用的加工描述方法 _。 ( A)只有结构化语言 ( B)有结构化语言和判定树 ( C)有结构化语言、判定树和判定表 ( D)有判定树和判定表 16 软件开发工具 VB、 PB、 Delphi是可视化的。这些工具是一种 _程序语言。 ( A)事件驱动 ( B)逻辑式 ( C)函数式 ( D)命令式 17 PROLOG语言属于 _程序设计范型,该范型将程序 设计归结为列举事实,定义逻辑关系等。 ( A)过程式 ( B)函数式 ( C)面向逻辑 ( D)面向对象 18 实施新旧信息系统转换,采用 _方式风险最小。 ( A)直接转换 ( B)并行转换 ( C)分段转换 ( D)
7、分块转换 18 在各种不同的软件需求中, (1)描述了用户使用产品必须要完成的任务,可以在用例模型中予以说明。软件需求说明书是需求分析阶段的最后成果, (2)不是其应包含的内容。 19 (1) ( A)业务需求 ( B)非功能需求 ( C)用户需求 ( D)功能需求 20 (2) ( A)数据描述 ( B)功能描述 ( C)系统结构描述 ( D)性能描述 20 下列要素中,不属于 DFD的是 (1)。当使用 DFD对一个工资系统进行建模时,(2)可以被认定为外部实体。 21 (1) ( A)加工 ( B)数据流 ( C)数据存储 ( D)联系 22 (2) ( A)接收工资单的银行 ( B)工
8、资系统源代码程序 ( C)工资单 ( D)工资数据库的维护 22 为了直观地分析系统的动作,从特定的视点出发描述系统的行为,需要采用动态分析的方法。其中 (1)本来是表达异步系 统的控制规则的图形表示方法,现在已经广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。 (2)是描述系统的状态如何响应外部的信号进行推移的一种图形表示。 23 (1) ( A)状态迁移图 ( B)时序图 ( C) Petri网 ( D)数据流图 24 (2) ( A)状态迁移图 ( B)时序图 ( C) Petri网 ( D)数据流图 24 在信息系统建设中,
9、为了使开发出来的目标系统能满足实际需要,在着手编程之前应认真考虑、以下问题: 1) 系统所要求解决的问题是什么 ? 2) 为解决该问题,系统应干些什么 ? 3) 系统应该怎样去干 ? 其中第 2个问题的解决是 (1)的任务,第 3个问题的解决是 (2)的任务。 25 (1) ( A)信息系统总体规划阶段 ( B)信息系统分析阶段 ( C)信息系统设计阶段 ( D)信息系统实施阶段 26 (2) ( A)信息系统总体规划阶段 ( B)信息系统分析阶段 ( C)信息系统设计阶段 ( D)信息系统实施阶段 软件工程练习试卷 1答案与解析 1 【正确答案】 C 【试题解析】 由于新项目与过去成功开发过
10、的一个项目类似,已经有了以前成功的项目开发经验和积累的软件模块,因此应该用尽可能将这些经验和软件模块应用到新项目中,即对于这个规模更大的软件项目,应该使用瀑布模型进行开发。 【知识模块】 软件工程 2 【正确答案】 D 【试题解析】 原型法的主要目的是获取用户需求。当用户需求含糊不清、不完整或系统设计方案难以确定时,可以快速地构造一个系统原型,并通过运行和评价系统原型,使得用户明确自己的需求。 由于使用原型法开发需要适当的快速开发工具,需要用 户密切地配合,因此以下的情况不适合使用原型法: 用户的数据资源缺乏组织和管理; 用户的软件资源缺乏组织和管理; 缺乏适用的原型开发工具; 用户不参与、不
11、积极配合开发过程。 【知识模块】 软件工程 3 【正确答案】 B 【试题解析】 软件开发包括需求分析、设计、编码、测试和维护等阶段。瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等 6个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。瀑 布模型强调文档的作用,并要求每个阶段都要仔细验证。结构化开发方法的生存周期划分与瀑布模型相对应,因此也是与其最相适应的软件开发方法。 对于本题的选项 A, OMG描述构件的定义为,构件是一个物理的、可替换的系统组成部分,它包装了实现体且提供了对一组接口的实现方法。构件化方法是以过程建模为先导
12、、以构架为中心、基于构件组装的应用系统开发方法。它可以裁剪为面向对象方法,适合于构件组装模型。构件化方法和面向对象方法鼓励构件组装 (复用 ),面向对象过程沿演化的螺旋迭代,因此它们瀑布模型软件开发思路不相适应。 对于选项 C,对象是指由数据及其容许的操作所组成的封装体。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。而面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称 OO(Object-Oriented)方法。 对于选项 D,快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户
13、与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的 真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。 【知识模块】 软件工程 4 【正确答案】 A 【试题解析】 瀑布模型是一种将按软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等 6个基本活动,并且规定了它们自上而下、相互衔接的固定次序的系统开发方法。瀑布模型强调文档的作用,并要求每个阶段都要仔细验证,它适用于需求明确或很少变更的
14、项目。 演化模型主 要针对事先不能完整定义需求的软件开发项目。根据用户的需求,首先开发核心系统。当该核心系统投入运行后,用户试用并有效地提出反馈。开发人员根据用户的反馈,实施开发的迭代过程。每一次迭代过程由需求、设计、编码、测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。也可将该模型看作是重复执行的多个 “瀑布模型 ”。 螺旋模型是指将瀑布模型和快速原型模型结合起来,强调风险分析的一种开发模型。 喷泉模型基于对象驱动,主要用于描述面向对象的开发过程。其开发过程具有迭代性和无间隙性, “迭代 ”意味着模型中 的开发活动常常需要多次重复,每次重复都会增加或明确一些目标系统的性质,但
15、却不是对先前工作结果的本质性改动。“无间隙 ”是指在开发活动 (如分析、设计、编程 )之间不存在明显的边界,而是允许各开发活动交叉、迭代地进行。 【知识模块】 软件工程 5 【正确答案】 A 【试题解析】 在开发一个系统时,如果用户对系统的目标不很清楚,难以定义需求,这时最好使用原型法的系统开发方法。应用原型法的主要目的就是获取需求。使用原型法,在用户的共同参与下可以改善和加快需求获取过程。其第一步是建造一个快速原型,实现客户 或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么。第二步则在第一
16、步的基础上开发客户满意的软件产品。显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。 选项 B的 “瀑布模型 ”,是一种将按软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等 6个基本活动,并且规定了它们自上而下、相互衔接的固定次序的系统开 发方法。瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。 选项 C的 “V-模型 ”,是一种典型的测试模型。该模型通常会在其开始部分对软件开发过程进行描述,其中通过单元测试检测代码的开发是否符合详细设计的要求;集成测试检测各单元代码是否能完好地结合到一起,是否符合概要设计阶段提出
17、的要求;系统测试检测已集成在一起的产品是否符合系统规格说明书的要求;而验收测试则检测产品是否符合最终用户的需求。 对于选项 D的 “螺旋模型 ”,是指将瀑布模型和快速原型模型结合起来,强调风险分析的一种开发模型。 【知识 模块】 软件工程 6 【正确答案】 B 【试题解析】 由于 该管理信息系统是为高层提供决策使用; 各子公司相对独立; 各子公司管理基础差别较大,因此该系统项目建议使用原型法进行开发建设。 【知识模块】 软件工程 7 【正确答案】 D 【试题解析】 所有与需求直接相关的活动通称为需求工程。需求工程的活动可分为需求开发和需求管理两大类。其中,需求开发的目的是通过调查与分析,获取用
18、户需求并定义产品需求。需求开发主要有需求获取、需求分析、需求定义和需求验证等 4个过程。 需求管理的目 的是确保各方对需求的一致理解、管理和控制需求的变更,从需求到最终产品的双向跟踪。在需求管理中,要收集需求的变更和变更的理由,并且维持对原有需求和产品及构件需求的双向跟踪。 【知识模块】 软件工程 8 【正确答案】 B 【试题解析】 严格定义方法用于结构化分析和设计的场合中。该方法假定所有的需求都是可以被预先定义的,而且认为修改不完善的系统需求代价昂贵且实施困难。进行严格的需求定义要求系统开发人员与用户能够进行有效地沟通,准确地了解用户的需求,并且可以用静态的图形或文本工具完整地表示系统需求
19、。 原型方法认为并不是所有的需求在系统开发之前都可以进行准确定义的,而且软件开发人员与用户之间存在通信的障碍。在具备快速建模工具的情况下通过向用户提供可以运行的系统模型来吸取用户的反馈意见,通过不断反复、不断修改原型系统可以获取完整的系统需求,一旦确定了需求,就可以遵照严格的方法继续进行系统开发。 【知识模块】 软件工程 9 【正确答案】 D 【试题解析】 软件需求分析工作是软件生存周期中重要的一步,也是决定性的一步。只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,从而奠定软件开发的基础。软件需求决定的是目标系统 “做什么 ”,而不是 “怎么做 ”的问题 (例
20、如确定目标实现的具体技术路线等 )。 【知识模块】 软件工程 10 【正确答案】 B 【试题解析】 系统分析侧重于从业务全过程的角度进行分析。随着软件系统复杂性的提高以及规模的扩大,系统分析的地位愈来愈突出,从而也愈来愈困难。其难点主要体现在: 用户需求含糊且易变; 问题空间难于的理解 (问题的复杂性 ); 开发人员与用户以及开发人员之间的沟通存在障碍; 信息系统的应用环境不断变化等。 系 统建模工具的复杂性属于软件开发队伍内部问题,它不是系统分析的主要困难。 【知识模块】 软件工程 【知识模块】 软件工程 11 【正确答案】 A 【知识模块】 软件工程 12 【正确答案】 B 【试题解析】
21、数据流图是系统分析阶段用于描述系统逻辑模型的图形描述工具,解决信息系统 “做什么 ”的问题。逻辑数据流图强调参与者所做的事情,可以帮助设计者决定需要哪些系统资源,为了运行系统用户必须执行的活动,在系统安装之后如何保护和控制这些系统。逻辑数据流图说明应该具有哪些加工和数据存储, 而不关心这些加工和数据存储是如何实现的。 物理数据流图关注的是系统中的物理实体,以及一些具体的文档、报告和其他输入 /输出硬拷贝。物理数据流图用作系统构造和实现的技术性蓝图。物理数据流图需要说明加工和数据存储是如何实现的。 数据字典是从文字方面对新系统逻辑模型进行描述的系统分析工具。它是数据流图的补充说明,即它在数据流图
22、的基础上,对其中的每个数据流、数据存储和数据项等加以定义和说明,其目的是进行数据分析和归档。 【知识模块】 软件工程 13 【正确答案】 B 【试题解析】 系统 建模是系统分析阶段的一个重要环节,用于描述所建立系统的软硬件模型、优化系统描述的的过程。系统分析模型应明确体现的因素有: 性能描述,反映的是系统的整体面貌及体系结构,应明确地或隐含地说明系统I/O及相关的中间状态,以及相互之间的关系; 功能描述,应明确表述系统各项功能特点与系统 I/O及相关的中间状态之问的关系; 约束条件,应明确规定技术指标的适用范围、系统的工作环境要求及系统性能的缺陷、不足等; 动态模型,是评价系统质量的指标体系,
23、常与价格、速度、字长、可靠性等具体项 目有关。 【知识模块】 软件工程 14 【正确答案】 D 【试题解析】 需求分析阶段的主要任务是为一个新系统定义业务需求,该阶段的关键是描述一个系统必须做什么 (或者一个系统是什么 ),而不是系统应该如何实现。它通常被划分成 5个工作阶段: 问题分析; 问题评估和方案综合; 建模; 规约; 复审。 具体来说,需求分析阶段需完成以下要求: 确定软件系统的功能需求和非功能需求; 分析软件系统的数据要求; 导出系统的逻辑模型; 修正项目开发计划; 如有必要,可以开发一个原型系统。 对于本题的选项 D,确定软件系统的运行平台是系统设计阶段的工作任务之一。 【知识模
24、块】 软件工程 15 【正确答案】 C 【试题解析】 在结构化分析中,数据流图以图形形式描述了系统的逻辑模型,而数据字典是以文字形式描述系统的逻辑模型。数据流图没有对图中各成分进行说明,利用数据字典为数据流图中的每个数据流、数据存储、加工,外部实体以及组成数据流或文件的数据项做出说明。 其中对加工的描述称为 “小说明 ”,或称为 “加工逻辑说明 ”,它描述了输入数据流 、输入文件与输出数据流、输出文件之间的逻辑关系。常用的加工逻辑描述方法主要有结构化语言、判定树和判定表。 【知识模块】 软件工程 16 【正确答案】 A 【试题解析】 事件驱动 (Event Driven)是指系统根据发生的事件
25、发送消息给相应的程序,程序根据事件和当前状态,决定要做的事情。如果不发生事件,计算机的控制权并不是正在执行的程序手里,这时程序并不占用 CPU资源。面向对象和可视化程序设计方法采用了事件驱动机制,所以程序设计方法发生了很大的改变。事件驱动给程序设计带来了极大的灵活性。同 时,它可以在不采用分时系统的前提下实现多进程。 可视化程序设计 (Visual Programming)运用面向对象程序设计的概念,通过图形化及可视途径,构建应用程序。它使程序设计更为简单、容易。软件开发工具Visual Basic、 PB和 Delphi提供了可视化的集成开发环境,运用代表通用于程序的图标,通过图形操作,构建
26、基于图形用户界面 (GUI)的应用程序,是一种以事件驱动的程序语言。 【知识模块】 软件工程 17 【正确答案】 C 【试题解析】 程序设计范型是指程序设计的体裁。目前代表 性的程序设计范型主要有:过程式程序设计范型、函数式程序设计范型、面向逻辑的程序设计范型和;面向对象程序设计范型,见表 5-2。 【知识模块】 软件工程 18 【正确答案】 B 【试题解析】 新旧信息系统之间的转换有直接转换、并行转换和分段转换,见表5-3。 【知识模块】 软件工程 【知识模块】 软件工程 19 【正确答案】 D 【知识模块】 软件工程 20 【正确答案】 C 【试题解析】 软件需求可以分为 功能需求和 非功
27、能需求。其中, 功能需求描述一个系统 必须提供的活动和服务,它是为了满足业务需要并被用户接受而必须包含在一个信息系统中的功能或特征,可以在用例模型中予以说明。 非功能需求是对系统的特征、特点和属性以及可能限制建议方法的边界约束条件的描述。 软件需求说明书 (SRS)是需求分析阶段最终的交付成果。一份软件需求说明书应包括:功能描述 (系统应提供的功能和服务 )、非功能描述 (包括系统的特征、特点、性能等 )、限制系统开发或者系统运行必须遵守的约束条件、数据描述等。 【知识模块】 软件工程 【知识模块】 软件工程 21 【正确答案】 D 【知识模块】 软件工程 22 【正确答案】 A 【试题解析】
28、 数据流程图 (Data Flow Diagam, DFD)也称数据流图,是一种便于用户理解、分析系统数据流程、描述系统逻辑模型的图形工具。它摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。 DFD由数据流、加工、数据存储和外部实体 4个要素构成。外部实体是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地和系统所产生数据的归宿点。当使用 DFD对一个工资系统进 行建模时,接收工资单的银行可以被认定为是一个外部实体,而选项 B、 C、 D的内容都不符合外部实体的定义。 【知识模块】 软件工程 【知识模块】 软件工程 23 【正
29、确答案】 C 【知识模块】 软件工程 24 【正确答案】 A 【试题解析】 为了直观地分析系统的动作,从特定的视点出发描述系统的行为,需要采用动态分析的方法。其中最常用的动态分析方法有状态迁移图、时序图和Petri网。 状态迁移图是描述系统的状态如何响应外部的信号进行推移的一种图形表示。 时序图用于对比 在系统中处理时间的时序与相应的处理时间,进行系统分析。 Petri网方法本来是表达异步系统的控制规则的图形表示方法,现在已经广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。 数据流图是描述数据处理过程的工具,从数据传递和加工的角度,
30、以图形的方式刻画数据流从输入到输出的移动变换过程,是描述系统逻辑模型的图形化工具之一。 【知识模块】 软件工程 【知识模块】 软件工程 25 【正确答案】 B 【知识模块】 软件工 程 26 【正确答案】 C 【试题解析】 信息系统的建设按其生命周期可依次分为总体规划阶段、系统分析阶段、系统设计阶段、系统实施阶段等。其中,总体规划阶段是系统开发过程的第一步,其主要目标是制定出信息系统的长期发展方案,决定信息系统在整个生命周期内的发展方向、规模和发展进程等。 系统分析阶段是整个信息系统建设中最重要的一个阶段,在这个阶段中要对所要组建的信息系统环境进行详细的调查,从而提出新系统的逻辑设计方案,其本质就是通过对现有系统的描述、分析来回答未来的信息系统要 “做什么 ”的问题,新系 统所要求解决的问题是什么。 系统设计阶段是通过给出新信息系统的物理模型来描述如何实现在系统分析阶段规定的系统功能,其要回答的中心问题是 “如何做 ”,即系统应干些什么。 从生命周期来看,系统实施阶段是前面各阶段工作的延伸和目的。这一实施阶段是将系统设计的结果付诸实践,建立相应的软硬件环境、安装和调试对应的系统软件、组织系统测试、培训相应的管理人员并交付使用、维护的一系列过程。 【知识模块】 软件工程