软基第三章 软件工程-参考答案

软基第三章 软件工程-参考答案
软基第三章 软件工程-参考答案

第三章软件工程

一、选择题

1. B

2. C

3. A

4. B

5. A

6. D

7. C

8. B

9. C 10. B

11. A 12. C 13. B 14. D 15. D 16. C 17. D 18. B 19. A 20. C

21. D 22. D 23. D 24. C 25. B 26. A 27. B 28. D 29. C 30. C

二、简答题

1. 什么是软件危机?软件危机表现在哪些方面?

答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。

软件危机的表现:对软件开发成本和进度的估计常常很不准确;软件产品不符合用户的实际需要;软件开发生产率提高的速度远远不能满足客观需要;软件产品的质量差;软件的可维护性差;软件文档资料通常既不完整也不合格;软件的价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升。

2. 产生软件危机的原因是什么?如何克服软件危机?

答:产生软件危机的原因:用户需求不明确;缺乏正确的理论指导;软件规模越来越大;软件复杂度越来越高。

克服软件危机的措施:软件开发不再是个体人员的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合共同完成的项目;推广和使用在软件开发实践中总结出来的成功的技术和方法,并研究更有效的技术和方法;开发和使用更好的软件工具。总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。

3. 什么是软件工程?什么是软件工程学?

答:软件工程是:(1)将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护过程,即将工程化应用到软件上;(2)对(1)中所述的方法的研究。

软件工程学是研究软件开发工程模型、设计方法、工程开发技术和工具,指导软件生产和管理的一门综合性的应用科学。

4. 什么是软件生存周期?软件生存周期划分为哪些时期和阶段?

答:一个软件项目从问题提出开始,到软件产品废弃不用为止,称为软件生存周期。

软件生存周期包括三个时期:软件定义、软件开发和软件维护。软件定义时期划分为问题定义、可行性研究和需求分析三个阶段。软件开发时期划分为总体设计,详细设计,编码和测试四个阶段。

5. 瀑布模型的主要缺点是什么?

答:(1)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,中间提出的变更要求很难得到响应,增加了开发风险。(2)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重后果。

6. 快速原型模型的基本方法是什么?

答:快速原型模型的方法是:首先快速建立一个能反映用户主要需求的原型系统,即“样品”,让用户运行和试用原型系统,了解未来目标系统的概貌。用户通过试用原型系统,提出修改意见,开发者快速修改原型系统,然后再通过多次这样的反复,开发人员就可以将用户的真正需求确定下来,并据此书写需求规格说明书。

7. 什么是需求分析?需求分析阶段的基本任务是什么?

答:需求分析是一种软件工程活动,使系统分析员能够刻画出软件的功能和性能,指明软件和其他系统元素的接口,并建立软件必须满足的约束。

需求分析阶段的任务包括:(1)确定对软件系统的综合要求;(2)分析软件系统的数据要求;(3)导出软件系统的逻辑模型;(4)修订系统开发计划;(5)编写软件需求规格说明书及评审。

8. 什么是结构化分析方法?它使用的主要描述工具有哪些?

答:结构化分析法是面向数据流的需求分析法,它研究问题域中的数据如何流动以及在各个环节上进行何种处理,从而发现数据流和加工。

它使用的主要描述工具包含数据流图,数据字典,描述加工逻辑的结构化语言、判定表和判定树。

9. 什么是数据流图?其中的基本符号各表示什么含义?

答:数据流图是描述数据在系统中流动和被变换的过程,以及使数据流进行变换的功能的图形化技术数据流用箭头表示,是数据在系统内流动的路径。

加工用圆、椭圆或圆角矩形表示,是对数据流进行某些操作或变换。

数据存储用双杠或单杠表示,逻辑上指信息的静态存储。物理上可以是数据文件、数据库或其他任何形式的数据组织。

数据的源点和终点用矩形方框表示。数据的源点和终点是软件系统外部环境中的实体,统称为外部实体。

10. 软件设计分为哪两个步骤?每一步骤的任务是什么?

答:软件设计分为总体设计和详细设计两个步骤。

总体设计将软件需求转化为数据结构和软件的系统结构,主要是仔细分析需求规格说明,设计软件的模块划分,形成模块组织结构,表示出模块间的控制关系,给出模块间的接口,并编写概要设计文档。

详细设计的任务是通过对结构表示进行细化,为结构设计中的各个模块设计过程细节,确定模块内部的数据结构和实现算法,产生描述各软件构件的详细设计文档。

11. 什么是模块独立性?简述保持模块独立性的重要性。

答:模块独立性是指每个模块只完成系统要求的一个相对独立的特定子功能,并且和其他模块之间的关系尽可能简单。

模块独立性的重要性:(1)有效的模块化(即具有独立的模块)的软件比较容易开发出来。这是由于能够分割功能而且接口可以简化,当许多人分工合作开发同一个软件时,这个优点尤其重要。(2)独立的模块比较容易测试和维护。这是因为相对说来,修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够“插入”模块。

12. 衡量模块独立性的两个标准是什么?它们各表示什么含义?

答:衡量模块独立性的两个标准是内聚和耦合。

内聚是一个模块内部各成分之间彼此结合的紧密程度的度量,也称为块内联系或模块强度。

耦合是对一个软件结构内不同模块之间相互联系的紧密程度的度量,也称为块间联系。

13. 结构化程序设计的基本内容是什么?

答:结构化程序设计的基本内容包括:

(1)程序的控制结构一般采用顺序、选择、循环3种结构来构成,确保结构简单。

(2)使用单入口单出口的控制结构。

(3)程序设计中应尽量少用GOTO语句,以确保程序结构的独立性。

(4)采用自顶向下逐步求精方法完成程序设计。

14. 简述对象、类、继承、封装和多态性的基本概念。

答:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成。

类是一组具有相同属性和服务的对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。

继承是表示类之间内在联系以及对属性和服务实现共享的一种机制,是指子类可以自动拥有父类的全部属性和服务。

封装是把对象的属性和服务结合成一个独立的系统单位,并尽可能地隐藏对象的内部细节。

多态性是指在父类中定义的属性或服务被子类继承后,可以具有不同的数据类型或表现出不同的行为。

15. 面向对象的软件开发过程包含哪些环节?它们的主要任务是什么?

答:面向对象的软件开发过程包含面向对象的分析、面向对象的设计、面向对象的编程和面向对象的测试等环节。

面向对象的分析的主要工作是明确用户的需求,并用标准化的面向对象模型规范地描述这一需求,形成面向对象的分析模型,即OOA模型

面向对象的设计在OOA模型的基础上引入任务管理、数据管理和界面设计等方面的内容,从而建立OOD模型。

面向对象的编程就是用选用合适的面向对象编程语言,把OOD模型中的每个成分编写出来,即编码实现。

面向对象的测试是用面向对象技术,进行以对象为中心的软件测试。

16. 简述软件测试的目标和任务。

答:软件测试的目标是:

(1)测试是为了发现程序中的错误而执行程序的过程。

(2)好的测试方案是发现迄今为止尚未发现的错误的测试方案。

(3)成功的测试是发现了至今尚未发现的错误的测试。

测试阶段的任务包括两部分:

(1)测试。采用一定的测试策略,发现程序中的错误。

(2)纠错,也称为调试。如果测试到错误,则定位程序中的错误并加以纠正。

17. 什么是黑盒测试和白盒测试?简述两者之间的比较。

答:黑盒测试是把测试对象看作一个不能打开的黑盒子,在完全不考虑程序内部结构和特性的情况下,检查程序的功能是否按照需求规格说明书的规定正常使用,是否能接收输入数据而产生正确的输出信息。

白盒测试是把测试对象看作是一个打开的盒子,它需要测试人员完全了解程序的内部结构和处理过程,设计或选择测试用例,检验程序中的主要执行通路是否都能按预定要求正确工作,通过在不同点检查程序的状态,确定实际的状态与期望的状态是否一致。

黑盒测试不关心软件内部设计和程序实现,只关心外部表现,即通过观察输入数据与输出结果即可知道测试的结果。白盒测试关注的是被测对象的内部状况,需要跟踪源代码的运行。一般来说,在测试的早期阶段,即单元测试时通常采用白盒测试,或白盒测试与黑盒测试相结合的方法。而在测试的后期阶段,包括集成测试、确认测试和系统测试中大多采用黑盒测试。

18. 软件测试分为哪几个阶段?简述每个阶段的任务。

答:软件测试的阶段包含单元测试、集成测试、确认测试和系统测试。

单元测试的任务在于发现模块内部可能存在的各种错误。

集成测试的任务是将通过单元测试的各个模块按照设计要求组装起来同时进行测试,发现与接口有关的各种错误。

确认测试主要是确认已组装的程序是否满足软件需求规格说明书的要求。

系统测试的任务是检查把确认测试合格的软件安装到系统中以后,能否与系统的其余部分协调运行,并且检查是否满足需求规格说明书中描述的要求。

19. 软件维护困难的原因是什么?

答:(1)读懂别人的程序很困难,而且难度随着文档的不足而迅速增加。

(2)文档的不一致性是导致维护困难的又一原因,主要表现在各种文档之间的不一致以及程序和文档之间的不一致,从而导致维护人员不知所措,很难进行修改。

(3)软件开发和软件维护在人员和时间上存在差异。

(4)绝大多数软件在设计时没有对将来的修改进行充分的考虑。

(5)软件维护不是一件吸引人的工作。

20. 简述软件复用的种类。

答:软件复用的种类包括:源代码复用;软件体系结构复用;应用程序生成器;领域特定的软件体系结构的复用。

软件工程试题及答案34385

软件工程期末试卷(A) 说明:本试卷为04级计算机专业(专升本)软件工程期末试卷,总计100分,时间100分钟 一、选择题:(每题1分,共20分)(将答案写在题号前的()中) ( C )1. 软件是()。 A. 处理对象和处理规则的描述 B. 程序 C. 程序及其文档 D. 计算机系统 ( B )2. 软件需求规格说明的内容不应包括()。 A. 主要功能 B. 算法的详细描述 C. 用户界面及运行环境 D. 软件的性能 ( B )3. 程序的三种基本控制结构是()。 A. 过程、子程序和分程序 B. 顺序、选择和重复 C. 递归、迭代和回溯 D. 调用、返回和转移 ( D) 4. 面向对象的分析方法主要是建立三类模型,即( )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型 D) 对象模型、动态模型、功能模型 ( C ) 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体 B) 控制、联系、对象 C) 实体、联系、属性 D) 实体、属性、操作 ( A ) 6. 各种软件维护的类型中最重要的是( )。 A) 完善性维护B) 纠错性维护C) 适应性维护D) 预防性维护 ( B ) 7.软件测试的目标是()。 A. 证明软件是正确的 B. 发现错误、降低错误带来的风险 C. 排除软件中所有的错误 D. 与软件调试相同 ( D )8.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测试 D.软件维护 ( C )9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是()A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法 ( D )10、详细设计的基本任务是确定每个模块的( )设计 A.功能 B.调用关系 C.输入输出数据 D.算法 ( A )11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:() A.模块化的根据B.逐步求精的根据C.抽象的根据D.信息隐藏和局部化的根据 ( D )12.下面几种白箱测试技术,哪种是最强的覆盖准则() A.语句覆盖B.条件覆盖C.判定覆盖D.条件组合覆盖

计算机公共基础(第三章)

第3章软件工程基础 经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是软件生命周期、软件设计的基本原理,软件测试的目的、软件调试的基本概念,读者应对此部分进行重点学习。 详细重点学习知识点: 1.软件的概念、软件生命周期的概念及各阶段所包含的活动 2.概要设计与详细设计的概念、模块独立性及其度量的标准、详细设计常用的工具3.软件测试的目的、软件测试的4个步骤、 4.软件调试的任务 3.1软件工程基本概念 考点1 软件定义与软件特点 考试链接: 考点1在笔试考试中,是一个经常考查的内容,考核的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件的定义,特点及其分类。 软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。数据是使程序能正常操纵信息的数据结构。文档是与程序的开发、维护和使用有关的图文资料。可见,软件由两部分组成: (1)机器可执行的程序和数据; (2)机器不可执行的,与软件开发、运行、维护、使用等有关的文档。 软件的特点: (1)软件是逻辑实体,而不是物理实体,具有抽象性; (2)没有明显的制作过程,可进行大量的复制; (3)使用期间不存在磨损、老化问题; (4)软件的开发、运行对计算机系统具有依赖性; (5)软件复杂性高,成本昂贵; (6)软件开发涉及诸多社会因素。 根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。 小提示:应用软件是为解决特定领域的应用而开发的软件;系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件;支撑软件是介于两者之间,协助用户开发软件的工具性软件。 考点2 软件工程过程与软件生命周期 考试链接: 考点2在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件生命周期的定义,主要活动阶段及其任务。 软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。一般包括

软件工程作业及参考答案(版)

软件危机与软件工程 3. 软件工程方法学的研究内容包含软件开发技术和软件工程管理两部分, 其期望达到的最终目标是 ()。 A ?消除软件危机 B ?软件开发工程化 C ?程序设计自动化 D ?实现软件重用 4?软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的( )。 A .工程管理 B .成本核算 C .人员培训 D .工具开发 5?软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是( )。 A ?设计人员和用户 B ?分析人员和用户 C .分析人员和设计人员 D .编码人员和用户 6 .软件工程的结构化生命周期方法是将软件开发的全过程划分为相互独立而又相互依存的阶段,软件的 逻辑模型形成 于( )。 A .开发阶段 B .计划阶段 C .分析阶段 D .设计阶段 7 .在软件工程中,软件生存期可分为计划、开发以及维护三个阶段,每个时期又分为若干更小的阶段。 通常,计划时期包括问题定义、可行性研究和 ①,开发时期包括 ②、详细设计、编码以及 ③。 ① A . 需求分析 B . 可行性研究 C . 经费预算 D . 质量保证 ② A . 需求分析 B . 可行性研究 C 总体设计 D 模块化设计 ③ A . 文档编制 B . 运行维护 C . 测试 D . 验收 &软件开发中常采用的生命周期方法,由于其特征而一般称其为() A .层次模型 B .瀑布模型 C .螺旋模型 D .对象模型 9.描述软件生存周期的瀑布模型包括计划、 (A ) 、设计、编码、测试、维护等阶段。其中,设计阶段又可 以分成(B )和(C )两个步骤。 A :①需求分析 ②可行性研究 ③需求调查 ④问题定义 B, C :①方案设计 ②代码设计 ③概要(总体)设计 ④数据设计 ⑤详细设计 10.什么是软件危机?软件危机产生的原因? ".生命周期阶段的划分?每个阶段的任务? 可行性研究 软件工程 1软件危机是指在开发和( A .运行 B .设计 2 ?造成软件危机的原因是: A. 用户使用不当 C .硬件不可靠 )过程中所遇到的一系列严重问题。 B .对软件的错误认识 D ?缺乏好的开发方法和手段

软件工程试题及答案

4. 面向对象的分析方法主要是建立三类模型,即( D )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性 D) 实体、属性、操作 9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[, ],现从输入的角度考虑一组测试用例:, , , . 设计这组测试用例的方法是( c ) A.条件覆盖法 B.等价分类法C.边界值分析法 D.错误推测法 10、详细设计的基本任务是确定每个模块的( d )A.功能B.调用关系C.输入输出数据 D.算法 11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( a ) A.模块化的根据 B.逐步求精的根据 C.抽象的根据 D.信息隐藏和局部化的根据13.面向数据流的设计方法把( D )映射成软件结构。 A.数据流 B.系统结构 C.控制结构 D.信息流 14.内聚程度最低的是( A.偶然 )内聚A.偶然 B.过程 C.顺序 D.时间 15.确定测试计划是在( D )阶段制定的.A.总体设计 B.详细设计 C.编码 D.测试 16.需求分析的产品是( D ) A.数据流程图案 B.数据字典 C.判定表D.需求规格说明书 17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C ) A.数据库设计 B.数据通信 C.数据定义 D.数据维护 18.( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。 A.增量模型 B.喷泉模型 C.原型模型D.螺旋模型 (×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。 (×)4、软件需求分析的任务是建立软件模块结构图。 (√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。 (×)7、进行总体设计时加强模块间的联系。(×)8、编码时尽量多用全局变量. (√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.(×)10、软件测试是要发现软件中的所有错误。 1. 软件生命期各阶段的任务是什么答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么 2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性 3、需求分析:系统必须做什么 4、总体设计:系统如何实现,包括系统设计和结构设计 5、详细设计:具体实现设计的系统 6、实现:编码和测试 7、运行维护:保证软件正常运行。 2、软件重用的效益是什么?

软件工程(第五版)--习题及答案--第三章

一、判断题 1、(√)软件需求分析阶段要确定软件系统要“做什么”。 2、(×)软件需求规格说明书可作为可行性研究的依据。 3、(√)需求分析员可以参加最后的需求评审工作。 4、(×)画数据流图时可以加少量的控制流,使加工之间有时序的关系。 5、(√)结构化分析模型的核心是数据词典。 6、(×)在数据流图中,带有箭头的线段表示的是控制流。 7、(×)在软件生产过程中,需求信息的来源是项目经理。 8、(√)需求分析阶段的任务是确定软件的功能。 二、选择题 1、需求分析最终结果是产生(B)。 A、项目开发计划 B、需求规格说明书 C、设计说明书 D、可行性分析报告 2、数据流图(DFD)是(A)方法中用于表示系统的逻辑模型的一种图形工具。 A、SA B、SD C、SP D、SC 3、需求规格说明书的作用不包括(C)。 A、软件验收的依据 B、用户与开发人员对软件要做什么的共同理解 C、软件可行性研究的依据 D、软件设计的依据 4、数据词典是用来定义(D)中的各个成分的具体含义。 A、流程图 B、功能结构图

C、结构图 D、数据流图 5、结构化分析方法(SA)是一种面向(B)的分析方法。 A、数据结构 B、数据流 C、结构化数据系统 D、对象 6、在数据词典中,以下哪一项表示允许重复0至任意次(A)。 A、{ } B、0{ } C、0{ }n D、{ }n 7、以下数据流图符号中哪一个表示加工(B)。 A、B、C、D、 8、软件开发的需求活动,其主要任务是(D)。 A、给出软件解决方案 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型 9、结构化分析的核心是(A)。 A、自顶向下的分解 B、用DFD建模 C、用DD描述数据需求 D、自底向上的抽象 10、需求分析的任务是(A)。 A、正确说明让软件“做什么” B、用DFD建模 C、用DD建立数学模型 D、给出需求规格说明书 11、对于分层的DFD,父图与子图的平衡是指(B)。 A、父图与子图的输入输出数据流必须相同 B、子图必须继承父图的输入与输出流 C、父图与子图相应的输入输出数据流名字保持一致

软件工程作业(答案参考)

软件工程第一次作业 1)软件工程适用范围? 答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。 2)软件工程如何控制系统开发的复杂性的? 答:可理解性(understandability)。系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。 3)以你的经验,举例说明一个成熟的软件通常采用什么方法来适应现实世界的变化的?答:以猎豹游览器为例,开始软件投入市场公测,软件自带收集错误报告的程式,当遇到问题软件错误,会将相关信息反馈到接受错误信息的服务器,已方便程序员及时发现问题加以修复,修复完成后提供程序更新,循环此法提供软件运行稳定性,另外还有用户反馈的相关功能,对软件的建议也会收集到服务器,按实用性需求程序员可在原有程序上开发调整更适合用户使用的程序。 4)假设某软件公司,能为同一个用户开发两个不同层次的软件:一个层次的软件功能非常强大,在满足用户所有需求的基础上,还能提供大大超过用户需求的其他更多更强的功能;另一个层次的软件仅仅能满足用户需求,但没有提供其他额外的功能。请问如果你是项目负责人,你会选择为客户开发那个层次的软件? 答:我会选择仅仅满足用户需求的软件。因为太多的功能,相对于非专业的人员,在用户体验上可能会造成困扰,太多的功能会导致难以操作。而且功能强大的软件还会给用户费用上带来不必要的投入,软件是以人为本,方便用户工作,达到提高工作效率的目的。若然日后此用户需要更多功能的时候,我们还是可以向其软件公司提供升级功能解决用户需求。

《软件工程》试题及参考答案(第6套)

第一部分选择题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A 软件过程 B 软件工具 C 质量保证 D 软件工程 2、在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,()是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。 A 业务需求 B 功能要求 C 非功能需求 D 用户需求 3、软件测试计划开始于需求分析阶段,完成于()阶段。 A 需求分析 B 软件设计 C 软件实现 D 软件测试 4.下面关于面向对象方法中消息的叙述,不正确的是( )。 A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息 B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息 C. 应用程序之间可以相互发送消息 D.发送与接收消息的通信机制与传统的子程序调用机制不同 5.美国卡内基—梅隆大学SEI提出的CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是( )。 A.工作无序,项目进行过程中经常放弃当初的计划 B.建立了项目级的管理制度 C.建立了企业级的管理制度 D.软件过程中活动的生产率和质量是可度量的 6.在McCall软件质量度量模型中,()属于面向软件产品修改。 A.可靠性B.可重用性C.适应性 D.可移植性 7.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测 试 D.软件维护 8.需求分析阶段的任务是确定() A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能

软件工程第三章习题及参考答案

第三章习题及参考答案 1.用逐步求精方法解决下述的更新顺序主文件的问题。 美国某杂志社需要一个软件,以更新存有该杂志订户姓名、地址等数据的顺序主文件。共有插入、修改和删除等3种类型的事务,分别对应于事务代码1、2和3。也就是说,事务类型如下: 类型1:INSERT(插入一个新订户到主文件中) 类型2:MODIFY(修改一个已有的订户记录) 类型3:DELETE(删除一个已有的订户记录) 事务是按订户名字的字母顺序排序的。如果对一个订户既有修改事务又有删除事务,则已对那个订户的事务排好次序了,以便使修改发生在删除之前。 2.分析图 3.1所示的层次图,确定每个模块的内聚类型。 3.分析图3.2,确定模块之间的耦合类型。 在图3.2中已经给模块之间的接口编了号码,表3.1描述了模块间的接口。

4. 假设你在一所职业高中工作,负责该校信息系统的建设与维护。财务科长请你研究用学校拥有的微型计算机生成工资明细表和各种财务报表的可能性。请详细描述你用结构化分析方法分析上述问题的过程。用面向数据流方法设计工资支付系统的软件结构。 5.用3种方法计算图3.3所示流图的环形复杂度。 6. 图3.4是用程序流程图描绘的程序算法,请把它改画为等价的盒图。

7. 某交易所规定给经纪人的手续费计算方法如下:总手续费等于基本手续费加上与交易中的每股价格和股数有关的附加手续费。如果交易总金额少于1000元,则基本手续费为交易金额的8.4%;如果交易总金额在1000元到10000元之间,则基本手续费为交易金额的5%,再加34元;如果交易总金额超过10000元,则基本手续费为交易金额的4%加上134元。当每股售价低于14元时,附加手续费为基本手续费的5%,除非买进、卖出的股数不是100的倍数,在这种情况下附加手续费为基本手续费的9%。当每股售价在14元到25元之间时,附加手续费为基本手续费的2%,除非交易的股数不是100的倍数,在这种情况下附加手续费为基本手续费的6%。当每股售价超过25元时,如果交易的股数零散(即,不是100的倍数),则附加手续费为基本手续费的4%,否则附加手续费为基本手续费的1%。 要求: (1)用判定表表示手续费的计算方法;

软件工程习题及参考答案

软件工程习题及部分参考答案 判断题 ?软件也会磨损和老化。(X) ?完善性维护是提高或完善软件的性能。(√) ?数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。 (X) ?软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。(X) ?软件模块之间的耦合性越弱越好。(√) ?如果通过软件测试没有发现错误,则说明软件是正确的。(X) ?快速原型模型可以有效地适应用户需求的动态变化。(√) ?模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高聚,低耦合度的软件产品。(√) ?集成测试主要由用户来完成。(X) ?确认测试计划应该在可行性研究阶段制定(X) ?白盒测试无需考虑模块部的执行过程和程序结构,只要了解模块的功能即可。(X) ?软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(√) ?软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。(√) ?系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。(╳)?模块越多,开发成本越小。(╳) ?软件测试的目的就是证明软件没有错。(╳) ?PAD图在设置了五种基本的控制结构后,还允许递归使用。(√) ?在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(×) ?SA法是面向数据流,建立在数据封闭原则上的需求分析方法。(√) ?HIPO 法既是需求分析方法,又是软件设计方法。(√) ?在面向对象的需求分析方法中,建立动态模型是最主要的任务。(×) ?加工小说明是对系统流程图中的加工进行说明。(×) ?判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。(×) ?需求分析的主要方法有SD 法、OOA 法及HIPO 法等。(×) ?分层的DFD 图可以用于可行性分析阶段,描述系统的物理结构。(×) ?信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R 图。(√) ?用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。(√) ?PDL经常表现为一种"混杂"的形式,他不允许自然语言如英语的词汇与某种结构化程序设计语言(如Pascal,C,Ada等)的语法结构交织在一起.(X) ?设计阶段的输出是编码阶段的输入.(√) ?通过软件测试,可以发现软件中所有潜伏的错误.(X) ?非结构化维护用于软件的配置中只有源代码维护.(√) ?系统规格说明是系统分析和定义阶段生成的一种文档.(√) ?数据流图的分解速度应保持较高.通常一个加工每次可分解为10~20个子加工.(X)

软件工程试题及答案

综合练习一答案 一.选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末 B.60年代初C.60年代末 D.70年代初 A.运筹学B.工程学 C.软件学 D.软件学 E.数字 2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用 5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护 B.测试 C.详细设计 D.概要设计 E.编码 F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员 D。用户和软件人员的领导 10.下列叙述中,_______不属于数据字典的作用。 A、作为编码阶段的描述工具 B、为用户与开发人员之间统一认识 C、作为概要设计的依据 D、为需求分析阶段定义各类条目 11.使用结构化分析方法时,采用的基本手段是____。 A.分解和抽象 B.分解和综合C.归纳与推导D.试探与回溯12.结构化系统分析主要是通过____进行分析的。 A.算法分解B.控制结构分解 C.数据结构分解D.处理功能分解13.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的____。 总貌B.细节C.抽象D.软件的作者 13.变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于____。 A.变换型 B 事务型 14.需求分析说明书不能作为______。

2016年全国计算机二级考试——第三章 软件工程基础

1.软件是指() A.程序 B.程序和文档 C.算法加数据结构 D.程序、数据与相关文档的完整集合[解析]软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。本题为D 2.下列描述中正确的是 A.程序就是软件 B.软件开发不受计算机系统的限制 C.软件既是逻辑实体,又是物理实体 D.软件是程序、数据和相关文档的集合 [解析]软件是与计算机操作相关的计算机程序、规程、规则,以及可能有的文件、文档及数据;软件开发要受到计算机系统的限制;软件是一个逻辑实体,不是物理实体,软件具有抽象性。因此本题为D 3.按软件的功能划分,需求分析工具软件属于 A.应用软件 B.系统软件 C.支撑软件 D.专用软件 [解析]p65 软件设计基本原理:模块化、模块独立性、抽象、信息隐蔽。所以本题为C 4.由于软件危机的出现,20实际70年代人们提出了“______”的思想和方法。 [解析]p44 结构化程序设计 5.______是应用于计算机定义、开发和维护的一整套方法、工具、文档、实践标准和工序。[解析]软件工程 6.下面软件工程要素中哪一项提供软件工程项目的软件开发的各个环节的控制、管理的支持? A.方法 B.工具 C.过程 D.技术 [解析]软件工程包含3个要素:方法、工具、过程。方法是完成软件开发各项任务的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的哥哥环节的控制、管理。本题选C 7.下面不属于软件工程的三个要素的是() A.工具 B.过程 C.方法 D.环境 [解析]本题选D 8.软件工程研究的主要内容包括:______和软件工程管理。 [解析]软件开发技术 9.下列哪一项不是软件设计的基本原理? A.抽象 B.完备性 C.模块化 D.信息隐蔽 [解析] p65 软件设计基本原理:模块化、模块独立性、抽象、信息隐蔽。所以本题为C 10.下面哪一项不符合软件工程的原则? A.把程序分解成独立的模块 B.采用封装技术把程序模块的实现细节隐藏起来 C.采用全局变量传递的方式,以简化模块之间的通信接口和通信量 D.程序的内外部接口保持一致,系统规格说明与系统行为保持一致 [解析]本题选C 11.软件工程的核心思想是把软件产品当作一个______产品来处理。 [解析]工程 12.把输入转化为输出的一组相关的资源和活动是______。 [解析]软件工程过程 13.在软件开发中,需求分析阶段产生的主要文档是() A.可行性分析报告 B.软件需求规格说明书 C.概要设计说明书 D.集成测试计划

软件工程课后习题_第1,2,3章

第一章: 一.判断题: 1.软件就程序,编软件就是编写程序。() 2.软件危机的主要表现是软件需求增加,软件价格上升。() 3.软件工程科学出现的主要原因是软件危机的出现。() 4.与计算机科学的理论研究不同,软件工程是一门原理性学科() 二.选择题 1.在下列选项中,()不是软件的特征 A系统性与复杂性 B 可靠性与一致性 C 抽象性与智能性 D 有形性与可控性 2.软件危机的主要原因是: A软件工具落后 B 软件生产能力不足 C 对软件的认识不够 D 软件本身的特点及开发方法 3.下列说法正确是的是 A 20世纪50年代提出了软件工程的概念 B 20世纪60年代提出了软件工程的概念 C 20世纪70年代提出了客户机/服务器技术 D 20世纪80年代软件工程学达到成熟 4.( )是将系统化的规范的可定量的方法应用于软件的开发,运行和维护的过程。它包括方法、工具和过程三个要素 A 软件生命周期 B 软件测试 C 软件工程 D 软件过程

5.在下列选项中,()不属于软件工程学科索要研究的基本内容。 A 软件工程材料 B 软件工程目标 C 软件工程原理 D 软件工程过程 6.软件工程的三要素是() A技术,方法和工具 B 方法,对象和类 C 方法,工具和过程 D 过程,模型和方法 7.用来辅助软件开发,运行,维护,管理,支持等过程中的活动的软件成为软件开发工具,通常也称为()工具 A CAD B CAI C CAM D CASE 三简答题 1.与计算机硬件相比,计算机软件有哪些特点? 2.软件就是程序吗?如何定义软件? 3.什么是软件危机?是什么原因导致了软件危机? 4.为什么说软件工程的开发能在一定程度上解决软件危机的各种弊端? 5.请简述软件工程的研究内容。 6.请简述软件工程的三要素。 7.请简述软件工程的目标,过程和原则。 8.请简述软件工程的基本原则。 9.请简述现代软件工程与传统软件工程显著的区别与改进。 第二章: 一判断题 1.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。

软件工程课后习题(含答案)

第一章练习题 一、填空题 1、软件工程三要素是:方法、工具、过程。 2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。 二、名词(术语)解释: 1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。 2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。 三、问答题 1、面向对象方法的优点是什么? 答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。 (2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。 2、可视化开发方法的优点有哪些? 答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。 (2)软件开发简单,易学、易上手。 (3)专业或非专业人员都能参与软件开发活动。 第二章练习题 一、填空题: 1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工 程活动。 2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。 3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。 4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。 二、简答题: 1、瀑布模型的优点有哪些? 答:1、强迫开发人员采用规范的技术方法; 2、严格地规定了每个阶段必须提交的文档; 3、每个阶段结束前必须正式进行严格的技术审查和管理复审。 2、瀑布模型的缺点是什么? 答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。 2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。 3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很 难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

软件工程试题库集及答案

综合练习一答案 选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末B.60年代初C.60年代末D.70年代初 A.运筹学B.工程学C.软件学D.软件学E.数字2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护B.测试C.详细设计D.概要设计E.编码F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员D。用户和软件人员的领导

软件工程考试试题(含答案)

一、填空题(每空1分,共25分) 1.软件生存周期一般可以划分为,问题定义、____________、____________、设计、 编码、测试和____________。 2.基于软件的功能划分,软件可以划分成__________、__________、__________三种。 3.可行性研究,应从、技术可行性、运行可行性、和开 放方案可行性等方面研究。 4.系统流程图是描绘的传统工具。它的基本思想是用图形符号以 描绘系统里面的每个部件。 5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、、 和。 6.结构化分析方法是面向________________进行需求分析的方法。结构化分析方法使 用________________与________________来描述。 7.是自动地共享类、子类和对象中的方法和数据的机制。 8.软件详细设计工具可分为3类,即________________、________________和 ________________。 9.为了在软件开发过程中保证软件的质量,主要采取下述措施:________________、 复查和管理复审、________________。 10.大型软件测试包括、、确认测试和 四个步骤。 1、可行性研究需求分析运行与维护 2、系统软件支撑软件应用软件 3、经济可行性法律可行性 4、物理系统黑盒子形式 5、加工数据流数据存储文件 6、数据流数据流图DFD 数据字典DD 7、继承性 8、图示工具、设计语言表格工具 9、审查测试 10、单元测试集成测试系统测试 二、单项选择题(每小题2分,共20分) 1 2 3 4 5 C C C A C 6 7 8 9 10 D D A C B 1.软件设计中划分模块的一个准则是()。 A、低内聚低耦合 B、低内聚高耦合 C、高内聚低耦合 D、高内聚高耦合 2.Jackson设计方法是由英国的M. Jackson提出的,它是一种面向()的软件 设计方法。

第3章 软件工程基础(习题答案)

第3章习题答案 3.1 什么是软件危机?为什么会出现软件危机? 解答: 软件危机是指落后的软件生产方式无法满足开发复杂软件的需求,从而导致软件开发与维护过程中出现一系列严重的问题,主要表现在:(1)软件开发费用和进度估计不准。(2)软件的正确性和可靠性难以保证。(3)文档不全,导致软件维护难度加大。 总之,可将软件危机归结为:成本、质量和生产率等问题。 到了20世纪50年代末和60年代初,随着计算机应用的普及,软件的规模和复杂度提高了,“家庭作坊”式的方法已经无法适应软件的开发。软件开发的周期变长、费用上涨,导致软件的生产效率下降、目标软件的正确性难于保证,即出现了“软件危机”。 3.2 软件工程的概念是什么?软件工程的目标和原则是什么? 解答: 软件工程是指导计算机软件开发和维护的一门学科。软件工程从管理和技术两个方面,研究如何更好地开发和维护计算机软件,内容主要包括:软件开发技术和软件工程管理。 软件工程的目标是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。 软件工程的原则,在软件开发各阶段,应遵循一些基本原则,包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。 3.3 什么是软件的生命周期?瀑布模型把软件生命周期划分成几个时期、几个阶段?每一个阶段的任务是什么?每个阶段产生的文档是什么? 解答: 软件从提出、开发、使用到退役的整个过程称为软件生命周期,软件生命周期可划分为

3.4 什么是结构化方法?结构化分析、结构化设计、结构化程序设计分别用在软件生命周期的哪一个阶段? 解答: 结构化开发方法是现有软件开发方法中最成熟、应用最广泛的方法。结构化方法最早起源于结构化程序设计。目前由结构化分析方法(SA)、结构化设计方法(SD)及结构化程序设计方法(SP)组成。 结构化分析方法主要应用于需求分析阶段,结构化设计方法主要应用于软件概要设计阶段,结构化程序设计方法主要应用于详细设计和编码阶段。 3.5软件需求分析阶段要解决的问题是什么?采用什么分析技术?需求分析常用工具有哪些?这些工具用于表述什么? 解答: 需求分析的任务是通过与用户广泛的交流,准确定义未来系统的目标,确定为了满足用户的需求系统必须做什么,用需求规格说明书规范地、准确地表达用户的需求。 需求分析要应得到如下内容:功能需求、性能需求、环境需求、界面需求、用户或人的因素、文档要求、数据需求、资源需求、安全保密要求、软件成本消耗与开发进度需求、质量保证。 需求分析的方法很多,如功能分析法、结构化分析法、信息建模法以及面向对象分析法等。最常用的是基于功能分析的结构化分析法。 结构化分析法常用工具有数据流图、数据字典、结构化英语、判定表和判定树等工具。 数据流图从数据传递和加工的角度,描述系统的数据从输入到输出的移动变换过程。数据字典用于对数据流图中包含的全体数据元素进行定义和说明。结构化语言用于描述数据流图中“加工”的处理步骤。判定表也称决策表,可用于处理结构化语言不易表述的复杂组合条件,是描述多条件、多条目动作的形式化工具。判定树是也称决策树,它的意义与判定表一样,表述比判定表更加直观。 3.6 数据流图有哪两类?分别表示什么意义? 解答: 根据“加工”的特征,可以将局部数据流图划分成两种类型,即变换型和事务型。 变换型数据流的特点是:“加工”是按照时间顺序对数据流进行处理的。事务型数据流的特点是:接受一项事务,根据事务处理的特点和性质,选择一个适当的处理单元,然后分别处理分别给出结果。 3.7 如何从数据流图导出软件结构图? 解答: 首先区分局部数据流图的类型,然后按照变换型和事务型数据流图的特点分别转换成对应的软件结构图,最后合成一个整体。

软件工程第1章作业

软件工程第1章作业 一、填空题(每小题1分,共15分) 1、软件与物质产品有很大的区别,软件是一种_____逻辑_______产品。 2、软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于建造一个软件系统____________________。 3、最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是_瀑布模型。 4、一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把这个漫长的时期称为_生存周期。 5、软件工程是指导计算机软件开发和维护的一门工程学科。 6、软件工程包括___软件开发技术_________和____管理________两方面的内容,是技术与管理紧密结合所形成的工程学科。 7、通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为_范型____________。 8、螺旋模型将瀑布模型和快速原型模型结合起来,加入了两种模型均忽略了的__风险分析_________,弥补了这两种模型的不足。 9、____瀑布_____模型不能适应需求可变的软件开发,只有到开发结束时才能见到整个软件系统。 10、将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是__瀑布________模型。 11、喷泉模型是一种以用户需求为动力,以__对象________为驱动的模型。 12、一个软件项目的开发中,要采用一种生存周期模型,要按照某种_开发方法__________,使用相应的工具来进行。 13、软件工程的出现主要是由于_ ____软件危机__________的出现而产生的。 14、软件工程知识体系指南SWEBOK将软件工程知识体系划分为___10____个知识域。 15、Rational统一过程RUP是_用例_______驱动的、以体系结构为核心的、迭代的增量的过程,其迭代过程分为初始、细化、___构建________、移交4个阶段。 二、选择题(每小题2分,共30分) 1、作坊式小团体合作生产方式的时代属于( C )时代。 A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程 2、软件工程与计算机科学性质不同,软件工程着重于( C )。 A.理论研究 B.原理探讨 C.建造软件系统 D.原理的理论 3、个体手工劳动生产方式的时代是( A )时代。 A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程 4、软件是一种( B )产品。 A、有形B、逻辑C、物质D、消耗 5、与计算机科学的理论研究不同,软件工程是一门( C )学科。 A、理论性B、工程性C、原理性D、心理性 6、软件工程学科出现的主要原因是( C )。 A、计算机的发展B、其他工程学科的影响

软件工程课后习题答案

软件工程课后习题答案 第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

相关文档
最新文档