当前位置:文档之家› 习题-1-软件工程概述

习题-1-软件工程概述

习题-1-软件工程概述

第一章习题

一、选择题

1、1968年北大西洋公约组织的计算机科学家召开国际会议,讨论问题,这次会议上正式使用了软件工程这个名词。

(A)系统设计(B)软件危机(C)设计模式(D) 软件开发

2、下面哪些不属于软件工程学的内容是:

A、软件开发方法

B、软件环境

C、成本估算

D、人员配置

3、下面哪个途径属于摆脱软件危机的方法:()

A、多安排软件人员进行编程

B、招聘编程水平高的人员

C、采用必要的组织管理措施

D、提高计算机硬件的配置

4 下面哪个是开发原型系统的目的:

(A)检验设计方案是否正确(B)画出系统的逻辑模型

(C)给出系统的最终用户界面(D)系统是否可行

5、在下列工具与环境中()属于较早期的CASE。

A.基于信息工程的CASE

B.人工智能CASE

C.集成CASE环境

D.交互编程环境

6、软件复杂性主要体现在()

A.数据的复杂性

B.程序的复杂性

C.控制的复杂性

D.问题的复杂性

7、用于设计阶段,考核实现方案是否可行的是()原型。

A.探索型

B.演化型

C.实验型

D.增量型

8、具有风险分析的软件生存周期模型是()

A.瀑布模型

B.喷泉模型

C.螺旋模型

D.增量模型

9、软件工程管理的具体内容不包括对_________管理。

A.开发人员B.组织机构

C.过程D.设备

10、在RUP开发过程模型的主要特征是_________。

A.迭代和原型 B.增量和原型

C.迭代和增量 D.瀑布和原型

二、问答题

1.在你平时开发软件时,遇到过类似于“软件危机”的现象吗?你通常是怎么解决的?2.通过对本章内容的学习,你认为软件工程主要研究哪些问题。谈谈你对这些问题的理解。3.假如你的客户需求很模糊,或者他不是很了解软件开发的一些概念,这时,你拟采取什么过程模型?为什么?

4. 假设你开发一个软件,它的功能是把73624.9385这个数开平方,所得到的结果应该精确到小数点后4位,一旦实现并测试完之后,该产品将被抛弃。你打算选用哪种生命周期模型,请说明理由。

第1章_软件工程学概述练习题

第一章练习题 一、判断题 1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(√) 2..软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开 发实际上就是编写程序代码。(X) 3.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是 生成类的模板。(X) 4.快速原型模型可以有效地适应用户需求的动态变化。(√) 5.类是关于对象性质的描述,由方法和数据组成。(√) 6.如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。(√) 二、名字解释: 1.软件:完成特定功能的程序+数据结构+文档。 2.软件危机:软件危机指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。 3.软件工程:指导计算机软件开发和维护的一门工程学。 4.软件生命周期:一个软件从定义、开发、使用和维护直至最终被废弃,要经历的漫长时 期。 5.软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任 务的工作步骤。 6.瀑布模型:是将软件生存各个活动规定为依线性顺序联接的若干阶段的模型。它包括可 行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试盒维护。它规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。 7.快速原型模型:是快速建立起来的可以再计算机上运行的程序,它所能完成的功能往往 是最终产品能完成的功能的一个子集。 8.增量模型:是在项目的开发工程中以一系列的增量方式开发系统。增量方式包括增量开 发和增量提交。增量开发是指在项目开发过程中以一定的时间间隔开发部分工作软件; 增量提交是指在开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档。增量开发和增量提交可以同时使用,也可以单独使用。 9.螺旋模型:是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模 型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。 对象。

软件工程概述习题及答案

第一章软件工程概述 一. 填空题 1. 软件的发展过程, , , . 2. 基于软件的工作方式,软件可以划分为, , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境. 4. 在计算机系统中,软件是, 而硬件是. 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,,. 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤, , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型, , , , , . 14. 软件工程面临的问题有, , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和. 16.基于软件的功能划分可以把软件划分为, ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则:, ,和, 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

(完整版)软件工程第一二三章习题参考答案

第一章软件工程概述 软件是计算机程序及其有关的数据和文档的结合。 软件危机是指在计算机软件开发和维护时所遇到的一系列问题。 软件危机主要包含两方面的问题:一是如何开发软件以满足对软件日益增长的需求;二是如何维护数量不断增长的已有软件。 软件工程是软件开发、运行、维护和引退的系统方法。 软件工程是指导计算机软件开发和维护的工程学科。软件工程采用工程的概念、原理、技术和方法来开发与维护软件。软件工程的目标是实现软件的优质高产。 软件工程学的主要内容是软件开发技术和软件工程管理。 软件开发方法学是编制软件的系统方法,它确定软件开发的各个阶段,规定每一阶段的活动、产品、验收的步骤和完成准则。常用的软件开发方法有结构化方法、面向数据结构方法和面向对象方法等。 习题参考答案: 1.什么是软件危机?为什么会出现软件危机? 答:软件危机是指在计算机的开发和维护过程中所遇到的一系列严重问题。这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。 出现软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。软件不同于硬件,它是计算机系统中逻辑件而不是物理部件。管理和控制软件开发过程相当困难。软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。目前相当多的软件专业人员对软件开发和维护还有不少糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。总结如下: 1)取得正确的用户需求和正确地描述需求很困难 2)开发人员对需求的正确理解也有困难 3)常常在没有正确理解之前就仓促开始编程 4)软件项目缺乏有效的组织、管理和内部交流 5)缺乏软件开发方法、模型和工具的支持 6)软件维护的困难性 2.假设你是一家软件公司的总工程师,当你把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件已经完成时再引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。 3.什么是软件工程?它有哪些本质特性?怎样用软件工程消除(至少是缓解)软件危机? 答:软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。

第01章软件工程概述

第一章软件工程概述 我们知道,计算机软件是整个计算机系统中具体实现各种功能和操作的核心部分。软件工程即采用工程的概念、原理、技术和方法来开发和维护软件,将工程管理技术成功的经验和思想与具体软件的开发过程、研究技术相结合,形成一整套适合于计算机软件开发的方法、规范和技术。因此,软件工程这门课程,对于从事软件开发研究的专业人员,特别是高层次的管理、分析、开发人员,显得比以往更加重要。 1.1 软件工程的基本概念、特点、分类 1.1.1软件的概念、特点 计算机软件是程序、数据及相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列,数据是使程序能正常操纵信息的数据结构,文档是与程序开发、维护和使用有关的图文材料。 要深入进行计算机软件的开发和研究,首先要了解计算机软件的特点和计算机软件开发的规律。计算机软件可归结具有如下几个共同特点: 1、软件是一种逻辑实体,而不是具体的物理实体。因此,它具有抽象性。 2、软件的生产与硬件不同,软件是由开发或工程化而形成的,它没有明显的制造过程。对软件的质量控制,必须立足于软件开发方面。软件成为产品之后,其制造只是简单的拷贝而已。 3、任何机械、电子设备在运行和使用过程中,其失效率大致遵循如图1-1所示的U型曲线(即浴盆曲线)。软件的情况与此不同,它不存在磨损和老化问题。然而,它存在退化问题,设计人员必须多次修改(维护)软件,图1-2(a)给出了软件故障率的理想曲线,图1-2(b) 给出了实际的软件故障率曲线。

4、软件的开发和运行往往受到计算机系统的限制,对计算机系统有着不同程度的依赖性。为了解除这种依赖性,在软件开发中提出了软件移植的问题。 5、迄今为止,软件的开发尚未完全摆脱手工艺的方式。 6、软件本身是复杂的。软件的复杂性可能来自它所反映的实际问题的复杂性,也可能来自程序逻辑结构的复杂性。 7、软件的成本相当昂贵。软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,它投入的成本是比较高的。 8、相当多的软件工作涉及到社会因素。许多软件的开发和运行涉及机构设置、体制运作及管理方式等问题,甚至涉及到人们的观念和心理,这些因素直接影响到项目的成败。 9、从市场上买到的软件,它本身就是一个完整的软件,而不能作为构件再组装成新的程序。但目前已有大量的支持“软件复用”的软件和中间件作为相对独立的构件。

第一讲软件工程概述.doc

第一讲:软件工程概述 软件的定义 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。 程序是按事先设计的功能和性能要求执行的指令序列 数据是使程序能正常操纵信息的数据结构 文档是与程序开发,维护和使用有关的图文材料 软件危机 软件危机是指计算机软件开发和维护过程中所遇到的一系列严重问题。概括的说即为:能否满足对软件日益增长的需求?能否维护数量日益增长的现有软件? 软件工程的定义 B o e h m:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料 I E E E:软件工程是开发、运行、维护和修复软件的系统方法 F r i t z B a u e r:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法 软件工程要素 三要素:方法、工具和过程(缺乏一个过程,洗厕所的都有方法和工具,但没有一个好的过程)软件工程方法为软件开发提供了“如何做”的技术 软件工具为软件工程方法提供了自动的或半自动的软件支撑环境 软件生命周期(Life Cycle) 软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生命周期 软件生存期的六个步骤,即制定计划、需求分析、设计、实现、测试及运行维护 软件生命周期:制订计划 确定要开发软件系统的总目标 给出功能、性能、可靠性以及接口等方面的要求 完成该软件任务的可行性研究 估计可利用的资源(硬件,软件,人力等)、成本、效益、开发进度 制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查 软件生命周期:需求分析 对用户提出的要求进行分析并给出详细的定义,得到系统逻辑模型,可用数据流程图、数据字典和简要算法加以表示。 编写软件需求说明书或系统功能说明书及初步的系统用户手册 提交管理机构评审 软件生命周期:软件设计 概要设计—把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应。 详细设计—对每个模块要完成的工作进行具体的描述,为源程序编写打下基础。通常用的H I P O (层次图加输入/处理/输出图)或P D L(过程设计语言)描述。 编写设计说明书,提交评审。 软件生命周期:实现编码

习题-1-软件工程概述

第一章习题 一、选择题 1、1968年北大西洋公约组织的计算机科学家召开国际会议,讨论问题,这次会议上正式使用了软件工程这个名词。 (A)系统设计(B)软件危机(C)设计模式(D) 软件开发 2、下面哪些不属于软件工程学的内容是: A、软件开发方法 B、软件环境 C、成本估算 D、人员配置 3、下面哪个途径属于摆脱软件危机的方法:() A、多安排软件人员进行编程 B、招聘编程水平高的人员 C、采用必要的组织管理措施 D、提高计算机硬件的配置 4 下面哪个是开发原型系统的目的: (A)检验设计方案是否正确(B)画出系统的逻辑模型 (C)给出系统的最终用户界面(D)系统是否可行 5、在下列工具与环境中()属于较早期的CASE。 A.基于信息工程的CASE B.人工智能CASE C.集成CASE环境 D.交互编程环境 6、软件复杂性主要体现在() A.数据的复杂性 B.程序的复杂性 C.控制的复杂性 D.问题的复杂性 7、用于设计阶段,考核实现方案是否可行的是()原型。 A.探索型 B.演化型 C.实验型 D.增量型 8、具有风险分析的软件生存周期模型是() A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 9、软件工程管理的具体内容不包括对_________管理。 A.开发人员B.组织机构 C.过程D.设备 10、在RUP开发过程模型的主要特征是_________。 A.迭代和原型 B.增量和原型 C.迭代和增量 D.瀑布和原型 二、问答题 1.在你平时开发软件时,遇到过类似于“软件危机”的现象吗?你通常是怎么解决的?2.通过对本章内容的学习,你认为软件工程主要研究哪些问题。谈谈你对这些问题的理解。3.假如你的客户需求很模糊,或者他不是很了解软件开发的一些概念,这时,你拟采取什么过程模型?为什么? 4. 假设你开发一个软件,它的功能是把73624.9385这个数开平方,所得到的结果应该精确到小数点后4位,一旦实现并测试完之后,该产品将被抛弃。你打算选用哪种生命周期模型,请说明理由。

软件工程概论复习题(答案)[1]汇编

软件工程概论复习题答案 一、单选题 1.软件工程的纵向分解是把软件开发分为几个(B) A.模块B.阶段C.子系统D.过程 2.McCall软件质量度量模型中属于面向软件产品操作的是(D) A.适应性B.可重用性C.可测试性D.可用性 3.快速原型模型中,用于及早向用户提交一个原型系统的是(D) A.实验型原型B.探索型原型C.提交型原型D.演化型模型4.软件维护中,因重新初始化控制标志或指针而引起的错误是以下哪一项的副作用(B)A.文档B.数据C.编码D.设计 5.软件维护费用高的主要原因是(B) A.生产率高B.生产率低C.人员多D.人员少 6.根据对软件开发机构调查的结果可知,各类维护活动所占的比重是(A)A.完善性占50%,适应性占25%,校正性占21%,其他维护占4% B.完善性占25%,适应性占50%,校正性占21%,其他维护占4% C.完善性占21%,适应性占25%,校正性占50%,其他维护占4% D.完善性占21%,适应性占50%,校正性占25%,其他维护占4% 7.下列属于用白盒技术设计测试用例的是(B) A.错误推测B.逻辑覆盖C.等价类划分D.因果图 8.有助于培养良好的编程风格并且第一个体现了结构化编程思想的程序设计语言的是(A) A.PASCALB.FORTRAN C.DL/1D.C 9.在软件详细设计过程中不采用的工具为(C) A.判定表B.PDL C.数据流图D.IPO图 10.根据输入输出的数据结构产生程序结构的设计方法是(B) A.PARNAS方法B.JACKSON方法C.WIRTH方法D.DIJKSTRA方法11.在软件设计中,为解决一个大而复杂的问题把软件系统划分为一个个完成某一特定的子功能的方法称为(C) A.细化B.结构化C.模块化D.抽象化 12.结构化方法在建立软件系统的结构模块时按照以下哪种方法进行?(B) A.由底向上B.自顶向下C.随机D.回归 13.两个模块之间传递的是同一个数据结构的地址,这种耦合方式称为(C ) A.控制耦合B.公告耦合C.标记耦合D.数据耦合 14.结构化设计是以哪个阶段产生的DFD图为基础,按一定的步骤映射成软件结构?(B)A.可行性分析B.需求分析C.概要设计D.详细设计 15.结构化方法的基本原则是功能的分解和( C ) A.模块化B.信息隐藏C.抽象D.细化 16.数据字典和数据流图共同构成了系统的(B) A.物理模型B.逻辑模型C.原型D.目标模型

相关主题
文本预览
相关文档 最新文档