文档库 最新最全的文档下载
当前位置:文档库 › 软件工程习题1

软件工程习题1

软件工程习题1
软件工程习题1

习题

一、填空题

1. 可行性研究就是用最小的()在尽可能短的时间内确定问题是否能够解决

2. 要从以下三个方面分析研究中衡量解决方法的可行性:()、()、()。

3. 效益分析首先是估算将要开发的系统的(),然后与可能取得的效益进行()。

4. 需求分析的基本任务是准确的回答()。

5. 需求分析应交付的主要文档是()。

6. 数据流图的基本组成部分有()、()、()、()。

7. 数据流图和数据字典共同构成了系统的()模型,是需求规格说明书的主要组成部分。

8. 软件生存周期一般可分为问题定义.()、()、总体设计、()、()、综合测试、运行与维护阶段。

9. 数据字典的内容包括六项()、()、()、数据相、数据结构、外部实体。

10. 在需求分析阶段常用的图形工具有()、()、()。

二、单项选择题

1. 下列不属于成本-效益分析的度量指标是()。

A. 货币的时间价值

B. 投资回收期

C. 性质因素

D. 纯收入

2. 程序流程图(框图)中的箭头代表()。

A. 数据流

B. 控制流

C. 调用关系

D. 组成关系

3. 软件可行性研究实质上是要进行一次()需求分析、设计过程。

A. 简化、压缩的

B. 详细的

C.彻底的

D.深入的

4. 需求分析阶段最重要的技术文档之一是()。

A. 项目开发计划

B. 设计说明书

C. 需求规格说明书

D. 可行性分析报告

5. 在需求分析之前有必要进行()。

A. 程序设计

B. 可行性分析

C. ER分析

D. 3NF分析

6. 软件需求分析阶段建立原型的主要目的是()。

A. 确定系统的功能和性能要求

B. 确定系统的运行要求

C. 确定系统是否满足用户需要

D. 确定系统是否满足开发人员需要

7. 软件开发的需求活动,其主要任务是()。

A. 给出软件解决方案

B. 给出系统模块结构

C. 定义模块算法

D. 定义需求并建立系统模型

8. 需求分析阶段的研究对象是()。

A. 用户要求

B. 分析员要求

C. 系统要求

D. 软硬件要求

三、多项选择题

1.需求分析阶段结束后,应交出的文档中应该包括()

A.数据流图

B.数据字典

C.简明的算法描述

D.项目的经费预算

2.关于数据流图正确的描述是()

A. 数据流图的特性包括抽象性、概括性、层次性。

B. 数据流图是描述数据处理过程的工具。

C. 加工是以数据结构或数据内容作为加工对象的。

D. 数据流图的主图中必须包括全部四种基本元素。

3.关于数据字典正确的描述是()

A. 数据字典最重要的用途是作为分析阶段的工具。

B. 数据字典三种常见的方法有全人工过程、全自动过程、混合过程。

C. 数据字典应该容易更新和修改。

D. 可以采用卡片形式书写数据字典。

4.在需求分析阶段常用的图形工具中,正确的描述是()

A. IPO图的基本形式分左边框、中间框、右边框三种图框,其中左框中列出有关输入的数据。

B. 层次方框图的结构是一系列的矩形框描述数据的层次结构。

C. Warnier图可以表明信息的逻辑组织。

D. IPO图的中间框列出产生的输出数据。

四、判断题

1.可行性研究的最根本的任务是对以后的行动方针提出建议。

2.软件是一种逻辑实体,而不是具体的物理实体。

3.系统流程图可以描述系统的逻辑模型,它的基本思想是用图形符号以黑盒子形式描绘系统里的每个部件。

4.可行性研究的结果有可能将软件开发项目否定。

5.可行性研究的根本的目的不是解决问题,而是确定问题是否值得去解。

6.软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。

7.数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。

8.对与DFD图的划分,主要依赖设计人员的经验,一切都应该根据设计人员的经验确定。

9.Warnier方法也是一种面向数据结构的设计方法。其逻辑更严格。

五、问答题

1.什么是软件的生存周期?

2.什么是软件危机,软件危机有哪几种表现。

3. 什么是加工逻辑?

4. 需求分析的基本任务是什么?

5. 画数据流图的步骤。

6. 怎样建立目标系统的逻辑模型?

7. 什么是结构化分析?“结构化”体现在哪里?

8. 需求说明书由哪些部分组成?各部分之间的关系是什么?

9. 为什么数据流图要分层?

习题与答案

一、填空题

1. 可行性研究就是用最小的(代价)在尽可能短的时间内确定问题是否能够解决

2. 要从以下三个方面分析研究中衡量解决方法的可行性:(经济可行性)、(操作可行性)、(技术可行性)。

3. 效益分析首先是估算将要开发的系统的(成本),然后与可能取得的效益进行(对比)。

4. 需求分析的基本任务是准确的回答(系统必须做什么?)。

5. 需求分析应交付的主要文档是(需求规格说明)。

6. 数据流图的基本组成部分有(外部实体)、(数据流)、(数据存储)、(数据处理)。

7. 数据流图和数据字典共同构成了系统的(逻辑)模型,是需求规格说明书的主要组成部分。

8. 软件生存周期一般可分为问题定义.(可行性研究)、(需求分析)、总体设计、(编码和单元测试)、综合测试、运行与维护阶段。

9. 数据字典的内容包括六项(数据流)、(数据项)、(数据结构)、数据存储、处理逻辑、外部实体。

10. 在需求分析阶段常用的图形工具有(层次方框图)、(Warnier 图)、(IPO图)。

二、单项选择题

1. 下列不属于成本-效益分析的度量指标是( C)。

A. 货币的时间价值

B. 投资回收期

C. 性质因素

D. 纯收入

2. 程序流程图(框图)中的箭头代表(A )。

A. 数据流

B. 控制流

C. 调用关系

D. 组成关系

3. 软件可行性研究实质上是要进行一次(A )需求分析、设计过程。

A. 简化、压缩的

B. 详细的

C.彻底的

D.深入的

4. 需求分析阶段最重要的技术文档之一是( C)。

A. 项目开发计划

B. 设计说明书

C. 需求规格说明书

D. 可行性分析报告

5. 在需求分析之前有必要进行( B)。

A. 程序设计

B. 可行性分析

C. ER分析

D. 3NF分析

6. 软件需求分析阶段建立原型的主要目的是(C )。

A. 确定系统的功能和性能要求

B. 确定系统的运行要求

C. 确定系统是否满足用户需要

D. 确定系统是否满足开发人员需要

7. 软件开发的需求活动,其主要任务是(D)。

A. 给出软件解决方案

B. 给出系统模块结构

C. 定义模块算法

D. 定义需求并建立系统模型

8. 需求分析阶段的研究对象是(A)。

A. 用户要求

B. 分析员要求

C. 系统要求

D. 软硬件要求

三、多项选择题

1.需求分析阶段结束后,应交出的文档中应该包括(ABC)

A.数据流图

B.数据字典

C.简明的算法描述

D.项目的经费预算

2.关于数据流图正确的描述是(ABCD)

A. 数据流图的特性包括抽象性、概括性、层次性。

B. 数据流图是描述数据处理过程的工具。

C. 加工是以数据结构或数据内容作为加工对象的。

D. 数据流图的主图中必须包括全部四种基本元素。

3.关于数据字典正确的描述是(ABCD)

A. 数据字典最重要的用途是作为分析阶段的工具。

B. 数据字典三种常见的方法有全人工过程、全自动过程、混合过程。

C. 数据字典应该容易更新和修改。

D. 可以采用卡片形式书写数据字典。

4.在需求分析阶段常用的图形工具中,正确的描述是(ABC)

A. IPO图的基本形式分左边框、中间框、右边框三种图框,其中左框中列出有关输入的数据。

B. 层次方框图的结构是一系列的矩形框描述数据的层次结构。

C. Warnier图可以表明信息的逻辑组织。

D. IPO图的中间框列出产生的输出数据。

四、判断题

1.可行性研究的最根本的任务是对以后的行动方针提出建议。√

2.软件是一种逻辑实体,而不是具体的物理实体。√

3.系统流程图可以描述系统的逻辑模型,它的基本思想是用图形符号以黑盒子形式描绘系统里的每个部件。×

4.可行性研究的结果有可能将软件开发项目否定。√

5.可行性研究的根本的目的不是解决问题,而是确定问题是否值得去解。√

6.软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。(√)

7.数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。(√)

8.对与DFD图的划分,主要依赖设计人员的经验,一切都应该根据设计人员的经验确定。(×)

9.Warnier方法也是一种面向数据结构的设计方法。其逻辑更严格。(√)

五、问答题

1.什么是软件的生存周期?

软件生存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。

2.什么是软件危机,软件危机有哪几种表现。

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

软件危机包含两方面的问题:如何开发软件、满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。具体有以下表现:

1)产品不符合用户的实际需要;

2)软件开发生产率提高的速度远远不能满足客观需要,软件的生产

率远远低于硬件生产率和计算机应用的增长,使人们不能充分利用现代计算机硬件提供的巨大潜力;

3)软件产品的质量差;

4)对软件开发成本和进度的估计常常不准确;

5)软件的可维护性差;

6)软件文档资料通常既不完整也不合格;

7)软件的价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升。

3. 什么是加工逻辑?

加工逻辑是对数据结构或数据内容进行处理的过程。

4. 需求分析的基本任务是什么?

需求分析的基本任务是准确的回答“系统必须做什么?”这个问题。包括:

1)确定对系统的综合需求;2)分析系统的数据需求;3)导出系统的逻辑模型;4)修正系统开发计划;5)开发原型系统。

5. 画数据流图的步骤。

(1)确定系统的输入输出

(2)由外向里画系统的顶层数据流图

(3)自顶向下逐层分解,绘出分层数据流图

6. 怎样建立目标系统的逻辑模型?

首先确定目标系统与当前系统的逻辑差别;然后将变化部分看作是新的处理步骤,对功能图(一般为数据流图)及对象图进行调整;最后

由外及里对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。

7. 什么是结构化分析?“结构化”体现在哪里?

结构化分析方法是面向数据流自顶向下逐步求精进行需求分析的方法。

8. 需求说明书由哪些部分组成?各部分之间的关系是什么?

引言、任务概述、数据描述、功能要求、性能要求、运行需求、其他要求及附录。

9. 为什么数据流图要分层?

描述一个复杂的系统,不可能一下子引进太多的细节。否则用一张数据流图来出所有的数据流和处理逻辑,这张图将极其庞大而复杂,因而难以绘制,也难以理解。

《软件工程》期末考试及答案

《软件工程》 期末考试试卷 考生注意:1.本试卷共有五道大题,满分100分。 2.考试时间90分钟。 3.卷面整洁,字迹工整。 4.填写内容不得超出密封线。 一、名词解释题(每小题3分,共15分) 1.软件生存周期模型 2.数据字典DD

3.内聚性 4.JSP方法 5.多态性 二、填空题(每空2分,共20分) 1.在软件开发过程中要产生大量的信息,要进行大量的修改,能协调软件开发,并使混乱减到最低程度。

2.规定功能的软件,在一定程度上对自身错误的作用具有屏蔽能力,则称此软件具有的软件。 3.McCall提出的软件质量模型包括个软件质量特性。 4.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、、可使用性和效率。 5. 为了便于对照检查,测试用例应由输入数据和预期的两部分组成。 6. 程序设计语言的心理特性主要表现在、简洁性、传统性、局部性和顺序性。 7. 软件结构是以为基础而组成的一种控制层次结构。 8. 使用类创建对象的过程实际上是类的过程。 9. 结构化语言是介于自然语言和之间的一种半形式语言。 10.若年利率为i,不计复利,n年后可得钱数为F,则现在的价值P= 。 三、简答题(每小题5分,共20分)

2.以G.J.Myers的观点,简述对软件测试的目的。 3.就程序设计语言的工程特性而言,对程序编码有哪些要求? 4.模块的内聚性包括哪些类型?

四、理论应用题(每小题15分,共30分) PDL语言描述在数组A(1)~A(10)中找最大数的算法。 2.根据下列条件使用等价类划分法设计测试用例。某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065。

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

第一章练习题 一、填空题 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、随机地选取测试数据 B、取一切可能的输入数据作为测试数据 C、在完成编码后制定软件的测试计划 D、选择发现错误可能性大的数据作为测试数据 2. 与设计测试数据无关的文档是。 A、需求说明书 B、设计说明书 C、源程序 D、工程开发设计 3. 结构设计是一种应用最广泛的系统设计方法,是以为基础、自顶向下、逐步求精和模块化的过程。 A、数据流 B、数据流图 C、数据库 D、数据结构 4. 概要设计的结果是提供一份。 A、模块说明书 B、框图 C、程序 D、数据结构 5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出。 A、模块说明书 B、软件规格说明书 C、工程开发计划 D、合同文档 6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。 A、1/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD(Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助 9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出

软件工程期末考试

━ ━ ━ ━ ━ ━ ━ ━ ━ 装 ━ ━ ━ ━ ━ ━ ━ 订 ━ ━ ━ ━ ━ ━ ━ 线 ━ ━ ━ ━ ━ ━ ━ ━ ━ 防灾科技学院 2011 ~ 2012 学年 第二学期期末考试 __软件工程_试卷 (A) 使用班级__0950411/0950412__ 答题时间__120分钟 _ 题号 一 二 三 四 五 总分 阅卷教师 得分 孙旭光 一、 选择题(本大题共20小题,每题2分,共40分。) 请把选择题的答案填写于下列的表格中: 题号 1 2 3 4 5 6 7 8 9 10 答案 D B C A B C B C A C 判卷 题号 11 12 13 14 15 16 17 18 19 20 答案 B A A D B A A C B A 判卷 1、 软件生命周期可以分为若干个阶段,下面哪个正确的描述了软件生命周期?( ) A. 可行性研究、需求分析、问题定义、概要设计、详细设计、编码和单元测试、综合测试、软件维护 B. 问题定义、可行性研究、需求分析、详细设计、编码和单元测试、综合测试、概要设计、软件维护 C. 可行性研究、需求分析、问题定义、概要设计、详细设计、编码和单元测试、软件维护、综合测试 D. 问题定义、可行性研究、需求分析、概要设计、详细设计、编码和单元测试、综合测试、软件维护 2、 在软件生命周期中对目标系统的实现提出几种可能的方案并综合权衡利弊,最终确定一种解决方案的阶段是( ) A. 编码 B. 概要设计 C. 需求分析 D. 详细设计 3、 在软件生命周期中确定目标系统能否在预定的时间、资源下完成的阶段是( ) A. 可行性研究 B. 问题定义 C. 需求分析 D. 概要设计 4、在软件过程模型中,快速原型法适合( )的系统。 A. 需求不确定性高的 B. 需求确定的 C. 管理信息 D. 决策支持 5、必须等前一个阶段的工作完成后才能开始后一阶段的工作,前一阶段的输出文档是后一阶段的输入文档,每个阶段结束前都要对所完成的文档进行评审,这种软件过程模型我们称之为( ) A. 螺旋模型 B. 瀑布模型 C. 增量模型 D.喷泉模型 6、某大企业最近决定采用高性能微机开发人事管理系统,该系统可供操作员和程序员使用,也可供人事处负责人和主管人事的副厂长等查询人事信息用。人事管理系统通过录入人事数据和修改、删除等操作,产生和更新各类人事文件,通过搜索这些文件进行各类人事信息的查询。考虑到人事处有大量的查询信息要求、频繁的人事信息修改和文件存档、查阅等特点,系统设计师决定认真设计人机交互界面,首先设计好在终端上的交互式会话的方式。系统工程师张某通过调查收集到如下4条意见,请问下面4条意见中哪条是不可接受的:( ) A. 某程序员认为:系统在屏幕格式、编码等方面应具有一致性和清晰性,否则会影响操作人员的工作效率。 B. 某操作人员认为:在交互式会话过程中,操作人员可能会忘记或记错某些事情,系统应当提供HELP 功能。 C. 某程序员认为:终端会话也应当符合程序员编制程序时的习惯,这样可以更高效地维护人事管理系统。 D. 教育科干部乙认为:尽管操作人员的指法已经强化训练但在交互式会话时应尽可能缩短和减少操作员输入的信息,以降低出错概率。 阅卷教师 孙旭光 得 分 试卷序号: 班级: 0950411 学号: 095041103 姓名: 谢英杰

软件工程习题及参考答案

软件工程习题及部分参考答案 判断题 ?软件也会磨损和老化。(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.“软件危机”产生的主要原因是( B )。 A.软件日益庞大 B.开发方法不当 C.开发人员编写程序能力差 D.没有维护好软件 2.软件工程中描述生存周期的瀑布模型一般包括计划、( 需求分析)、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成(概要设计)和(详细设计)两步。 ①需求分析②需求调查③可行性分析④问题定义⑤方案设计 ⑥代码设计⑦概要设计⑧数据设计⑨运行设计⑩ 3.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是(程序、数据、文档)。A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档 4.在软件工程时期,决定软件质量的主要因素是( ) A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展 5.下列哪个模型没有采用迭代的思想(A ) A.瀑布模型 B.渐增模型C.螺旋模型 D.RUP模型 6.下列关于瀑布模型的描述正确的是( D ) A.利用瀑布模型,如果发现问题修改的代价很低 B.瀑布模型的核心是按照软件开发的时间顺序将问题简化 C.瀑布模型具有良好的灵活性 D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开 7.瀑布模型的关键不足在于(B ) (A)过于简单(B)不能适应需求的动态变更 (C)过于灵活(D)各个阶段需要进行评审 8.瀑布模型把软件生存周期划分为软件定义、软件开发与(D )三个阶段,而每一阶段又可分为若干更小的阶段。 A. 详细设计 B. 可行性分析 C. 运行及维护 D. 测试与排错

二、判断题 1.软件工程是指导计算机软件开发和维护的工程学科。( ) 2.在软件工程时期,决定软件质量的主要因素是管理水平. ( ) 3.软件生存期是从软件项目需求定义直至软件开始使用为止。() 4.常用的软件生存周期模型有瀑布模型和结构化模型。() 5.瀑布模型是一种线形的、顺序的软件开发模型( ) 6.瀑布模型的关键不足在于不能适应需求的动态变更.( ) 7.快速原型模型是为了克服瀑布模型的缺点而提出来的。() 8.快速原型模型可以有效地适应用户需求的动态变化。() 9.风险分析是螺旋模型的优点,因此螺旋模型适合任何大系统的开发。() 三、简答题 1、什么软件工程?什么是软件过程? 2、软件工程学的主要内容是什么? 3、什么是软件生命周期?软件生命周期为什么要划分阶段?划分阶段的原则是什么?第二章可行性研究与软件开发计划 一、选择题 1.经济可行性研究的范围包括( C ) A.资源有效性 B.管理制度 C.效益分析 D.开发风险 2.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出( B )的回答。 A.确定 B.行或不行 C.正确 D.无二义 3.原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于( A )系统。A.需求不确定的 B.需求确定的 C.管理信息 D.决策支持 4.一个项目是否开发,从经济上来说是否可行,归根结底是取决于对( A ) A.成本的估算B.项目计划C.工程管理D.工程网络图 5. 可行性研究的目标是( B )

软件工程习题及答案

软件工程习题及答案

软件工程习题及答案 一、选择题: 1. 为了提高测试的效率,应该。 A、随机地选取测试数据 B、取一切可能的输入数据作为测试数据 C、在完成编码后制定软件的测试计划 D、选择发现错误可能性大的数据作为测试数据 2. 与设计测试数据无关的文档是。 A、需求说明书 B、设计说明书 C、源程序 D、项目开发设计 3. 结构设计是一种应用最广泛的系统设计方法,是以为基础、自顶向下、逐步求精和模块化的过程。 A、数据流 B、数据流图 C、数据库 D、数据结构 4. 概要设计的结果是提供一份。 A、模块说明书 B、框图 C、程序 D、数据结构 5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出。 A、模块说明书 B、软件规格说明书 C、项目开发计划 D、合同文档 6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。 A、1/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD(Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助 9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出

软件工程课后习题参考答案

1.简述软件开发的本质。 答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。P19 2.简述实施软件开发的基本途径。 答:实施软件开发的基本途径是系统建模。所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。P19 3.简述何谓模型以及软件开发中所涉及的模型。 答:模型是一个抽象。该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。 软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。 4.简述软件开发所涉及的两大类技术。 答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。 5、简述需求与需求规约的基本性质。 答:需求的基本性质:1) 必要的,该需求是用户所要求的。2)无歧义的,该需求只能用一种方式解释。3)可测的,该需求是可进行测试的。4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。5)可测量的,该需求是可测量的。 需求规约的基本性质:1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。 3)完整的:没有被遗漏的需求。4)一致的:不存在互斥的需求。 6、简述软件需求的分类。

答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可 7、举例说明功能需求和非功能需求之间的基本关系。 答: 非功能需求可作用于一个或多个功能需求,例如 非功能需求可作用于一个或多个功能需求 其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。P24 8、有哪几种常用的初始需求发现技术 答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。P26 9、简述需求规约的3种基本形式。 (1) 非形式化的需求规约。非形式化的需求规约即以一种自然语言来表达需求规约,如同使用一种自然语言写了一篇文章。(2) 半形式化的需求规约。半形式化的需求规约即以半形式化符号体系(包括术语表、标准化的表达格式等)来表达需求规约。(3)形式化的需求规约。形式化的需求规约即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。 P29 10、简述软件需求规约的内容和作用。 答:软件需求规约的内容有:引言、总体描述、特定需求、附录、索引。P28 需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求规约是一个管理控制点。3)对于产品/系统的设计,需求规约是一个正式的、受控的起始点。4)需求规约是创建产品验收测试计划和用户指南的基础。P31 11、简述需求规约在项目开发中的基本作用。 答:需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求

软件工程习题200题

软件工程习题200题 1、什么是软件危机?产生软件危机的原因?怎样消除? 2、什么是软件工程?包括哪些内容? 3、软件生存周期包含哪些内容? 4、软件开发模型有几种?各有什么特点? 5、软件技术审查和管理复审的作用是什么? 6、软件开发与写程序有什么不同? 7、在软件开发的早期阶段,为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性? 8、一个软件开发系统的可行性研究报告应如何编写? 9、数据流图有哪几种基本符号? 10、画数据流图原则是什么? 11、数据流图在软件分析中的作用是什么? 12、数据字典的作用? 13、什么是数据字典?有几个定义?各自特点是什么? 14、有几种效益的分析方法? 15、需求分析的任务是什么? 16、需求分析通常采用哪些分析技术? 17、什么是结构化分析?他的结构化体现在哪里? 18、简述面向对象分析技术的主要步骤? 19、原型开发技术的目的,特点是什么? 20、简述总体设计的一般过程? 21、什么叫软件结构?什么叫软件工程?二者之间关系? 22、解释深度、宽度、扇出、扇入对软件的影响。 23、什么叫模块化?M代表的含义是什么? 24、模块化的三个重要特征是什么?阐明各自的作用。 25、举例说明各种耦合情况和各种内聚情况。 26、简述设计准则的内容。 27、简述层次方框图与软件结构图的异同点。

28、事物型软件结构图有什么特点?原因是什么? 29、详细设计的任务是什么? 30、什么是结构化程序设计?用N-S图表示三种基本结构。 31、简述Jackson程序设计方法的主要内容。 32、简述Wariner程序设计方法的主要内容。 33、McaHei(Muahe,笔记有些模糊,未校正)方法的核心是什么?有何用途? 34、简述程序设计语言两次本质性变化的内容及意义。 35、C语言属于第几代语言?第四代语言特点是什么? 36、简述高级语言的应用特点和内在特点。 37、试分析程序设计语言特点及软件可靠性、可理解性、可修改性、可测试性及成本的关系。 38、选择一种语言的实用标准是什么? 39、简述开发环境、计算机体系结构、软件设计方法、软件开发过程与程序设计语言之间的促进和制约作用。 40、程序的编码风格主要体现在哪几个方面? 41、软件测试的基本任务是什么?测试与调试区别是什么? 42、软件测试的目标是什么? 43、软件测试分几个步骤进行?每个步骤解决什么问题? 44、软件测试有几种方法?每种方法的特点是什么? 45、软件出错有几种类型?验证其程序正确性有几种方法? 46、什么是单元测试和集成测试?他们各有什么特点? 47、简述渐增式测试方法与非渐增式测试方法的优劣。 48、简述存根程序驱动程序的作用。 49、编最大、最小公倍数程序,并为它设计测试用例。 50、测试的具体任务是什么?为什么说调试是软件开发过程中最艰巨的任务? 51、举出几种常用的测试工具,说明他们的用法。 52、MTTF的含义是什么?如何计算Et值? 53、假设有一个由1000行Pascal语句构成的程序(编译后约有5000条机器指令),请估算对它进行测试期间将发现多少错误。为什么? 54、什么叫软件维护?软件维护的基本内容是什么? 55、软件维护分几类?每类的基本内容是什么?占软件维护总工作量的百分比是多少?

《软件工程》期末考试及答案

的年 值

1.简述容错技术的四种主要手段, 并解释。 2. 3. 就程序设计语言的工程特性而 言,对程序编码有哪些要求? 4. 模块的内聚性包括哪些类型? 四、理论应用题(每小题15分,共30分) 1. 请使用PAD图和PDL语言描述在 数组A(1)~A(10)中找最大数的 算法。 2.根据下列条件使用等价类划分法 设计测试用例。某一8位微机,其八 进制常数定义为:以零开头的数是八 进制整数,其值的范围是-177~177, 如05,0127,-065。 五、实践应用题(每小题15分,共15分) 1.某电器集团公司下属的厂包括技 术科、生产科等基层单位。现在想建立一个计算机辅助企业管理系统,其中: 生产科的任务是: (1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。 (2)根据车间实际生产日报表、周报表调整月生产计划 (3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。 (4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间 技术科的任务是: (1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。 (2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。试写出以上

系统中生产科和技术科处理的软件结构图。 软件工程期末答案一、名词解释题(每题3分,共15分)。 1.是描述软件开发过程中各种活动如何执行的模型。 2.数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。3.内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。 4.JSP方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它根据输入,输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。 5.指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。或(不同的对象,收到同一消息可以产生不同的结果。) 二、填空题(每空2分,共20分)。 1.软件配置管理 2.容错功能 3.11 4.可移植性 5.输出结果 6.歧义性 7.模块 8.实例化 9.形式语言 10.F/(1+(n*i)) 三、简答题(每小题5分,共20分)。1.结构冗余:包括静态冗余、动态冗余和混合冗余。 信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。 时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。

软件工程复习题库带答案完整版

一、选择题 1、白盒测试法是通过分析程序的(C)来设计测试用例的。 A.应用范围 B.功能 C.内部逻辑 D.输入数据 2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。 A.风险产生的原因 B.风险监控技术 C.风险能否消除 D.风险发生所产生的后果 3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。 A.好的计划 B.不断的发布 C.反馈和勇气 D.持续集成 4、等价分类法的关键是(C)。 A.确定等价类的边界条件 B.按照用例来确定等价类 C.划分等价类 D.确定系统中相同和不同的部分 5、下列不属于黑盒测试的技术是(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 6、为了提高模块的独立性,模块之间最好是(D)耦合。 A.控制耦合 B.公共耦合 C.内容耦合 D.数据耦合 7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。 A.角色 B.活动 C.制品 D.工作流 8、功能性注释嵌入在源程序内部,它是用来说明(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 9、在结构化分析方法中,数据字典是重要的文档。对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。 A.只有结构化语言 B.有结构化语言和判定树 C.有结构化语言、判定树和判定表 D.有判定树和判定表 10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。 A.正确性 B.适应性 C.完善性 D.预防性 11、软件危机的主要原因是(A)。 A软件本身特点与开发方法B对软件的认识不够 C软件生产能力不足D软件工具落后 12、DFD是常用的进行软件需求分析的图形工具,其基本符号是(C)。 A.输入、输出、外部实体和加工

-软件工程习题答案参考

软件工程 绪论 1.什么是软件危机?为什么会产生软件危机? 答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。 (2).软件生产技术进步缓慢 2.什么是软件生产工程化?工程化生产方法与早期的程序设计方法 主要差别在哪里? 答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。 3.分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管 理的相互关系。 答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于一

个理想的软件工程环境,应该同时具备技术和管理两个方面。 4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。 答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。 5.什么是软件工程环境?谈谈你对环境重要性的认识。答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。 6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。 答:以面向对象程序设计为基础。 7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。 答:按规模分为极小、小、中、大、甚大、极大。(1)中小型软件:

软件工程试题库集及答案

综合练习一答案 选择题: 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)及答案

软件工程综合习题(1)及答案 一、选择题 1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。 A.软件工程 B.软件周期 C.软件危机 D.软件产生 2.瀑布模型本质上是一种(A )模型。 A.线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 3.瀑布模型存在的问题是(B )。 A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求 4.螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。 A.增量模型B.专家系统C.喷泉模型D.变换模型 5.原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。 A.需求不确定性高的 B.需求确定的C.管理信息 D.实时 6.下列有关软件工程的标准,属于国际标准的是(D ) A.GB B.DIN C.ISO D.IEEE 7.结构化方法是一种基于(D)的方法。 A.数据结构 B.程序结构 C.算法 D.数据流 8.软件可行性研究实质上是要进行一次( A)需求分析、设计过程。 A、简化、压缩的 B、详细的 C、彻底的 D、深入的 9.可行性研究的目的是(D) A、分析开发系统的必要性 B、确定系统建设的方案 C、分析系统风险 D、确定是否值得开发系统 10.设年利率为i,现存入p元,不计复利,n年后可得钱数为(C)。 A、P×(1+i*n) B、P× (i+1)*n C、p×(1+i)n D、p×(i+n) 11.可行性研究是在(A)之前 A、系统开发 B、测试 C、试运行 D、集成测试 12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的 (C)。 A、1% B、20% C、8% D、50% 13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。 A.《计算机软件保护条例》 B.《中华人民共和国计算机信息系统安全保护条例》 C.《中华人民共和国著作权法》

软件工程期末考试参考试题

软件工程期末考试参考试题 一、填空题 1、软件生存周期一般可分为问题定义、可行性研究、需求分析、设计编码、测试、运行与维护阶段。 2、按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。 3、可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和抉择。 4、用户界面的可使用性是用户界面设计最重要的也是最基本的目标。 5、常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的结 构化设计方(SD),以数据结构为基础构造模块的Jackson方法,以对象、类、继承和通信为基础的面向对象设计方法(OOD)。 6、数据流图和数据字典共同构成系统的逻辑模型。 7、软件测试的方法有分析方法和非分析方法(即黑盒法)。 8、单元测试一般以白盒测试为主,黑盒测试为辅。 9、成本估计方法主要有自底向上估计、自顶向下估计和算法模型估计三种类型。 10. 文档(document)—一种数据媒体和其上所记录的(数据)。 11 机器语言、汇编语言:依赖于机器,面向(机器) 12. 软件有效性(efficiency),指软件系统的时间和(空间)效率。 13. 软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。 14. 软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。 15. 为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。

16. 一个软件的深度是指其控制的(层数)。 17. 以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程叫(编码)过程。 18. 软件维护是软件生命周期的(最后)一个阶段 19. 软件工程由(方法)、工具和过程三部分组成,称软件工程的三要素。 20. 基于计算机系统的软件要素中的软部件由程序、数据和(文档)组成。 21. 数据流图就是用来刻画数据流和转换的信息系统建模技术。它用简单的图形记号分 别表示数据流、转换、(数据源)以及外部实体。 22. 被继承的类我们称之为基类(父类),在基类的基础上新建立的类我们称之为派生 类子类。 23. 流程图也称为程序框图是最常用的一种表示法,它有顺序、分支和(循环)三个基 本控制构件。 24. 机器语言和汇编语言,也称为(低级)语言。 25. 软件测试是执行程序发现并排除程序中潜伏的(错误)的过程。 26. 软件可维护性,是指软件产品交付使用后,在实现改正潜伏的错误、改进性能等属 性、适应环境变化等方面工作的(难易)程度。 27. 软件可理解性,指系统具有清晰的结构,能直接反映问题的(需求)。 28 在实体-关系图简称E-R图中,数据对象实体用长方形、关系用(菱形)、属性用椭圆表示。 29. 建立数据流模型要遵循的原则包括:每个加工至少应有一个输入数据流以反映被处理数据的来源和一个(输出)数据流来反映加工的结果

软件工程课后习题答案

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

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

软件工程课后习题答案第五版

软件工程课后习题答案第五版 《软件工程导论》课后习题答案 第一章软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面: (1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 2.为什么会产生软件危机? (1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 3.怎样克服软件危机? (1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。 (3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 4.构成软件项目的最终产品: 应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。 5.什么是软件生存周期? 软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 6.软件生存周期为什么划分成阶段? (1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。

软件工程习题集一

一、判断题 判断以下叙述的正误。正确的叙述请在答题纸上的相应题号后打“√”,错误的打“×”。 1.编码时应尽可能使用全局变量。 2.为了提高程序的易读性,尽可能使用高级语言编写程序。 3.只要模块之间的接口关系不变,各模块的内部实现细节的修改不会影响别 的模块。 4.为了加快软件维护作业的进度,尽可能增加维护人员的数目。 5.尽可能用GOTO语句 6.程序的注释并不是可有可无的。 7.尽可能在软件生产过程中保证各阶段文档的正确性。 8.在进行总体设计时应加强模块间的联系。 9.程序的模块划分得越大越好。 10.模块越小,模块化的优点越明显,一般说来,模块的大小都在10行以下。 11.软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个 复杂问题进行分解,将软件生存的时期分为若干阶段。 12.在可行性研究中最难决断和最关键的问题是经济可行性。 13.在软件开发中,采用原型系统策略的主要困难是时间问题。 14.数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输 出的传输变换过程。 15.模块越多,开发成本越小。 16.耦合是指一个模块内各个元素彼此结合的紧密程度。 17.内聚是指一个软件结构内各个模块之间互连程度的度量。 18.模块分解时应注意不要降低模块的独立性。 19.总体设计阶段完成的主要文档是总体设计说明书。 20.详细设计是在总体设计之后进行的,它利用总体设计的结果,对系统中的 每个模块给出足够的过程性描述。 21.程序设计语言中应绝对禁止使用GOTO语句。 22.PAD图在设置了五种基本的控制结构后,还允许递归调用。 23.程序中嵌套的层数应加以限制。 24.程序的书写格式最好所有语句都左对齐,这样也可以节省纸张。 25.在编写程序时尽可能对程序代码进行优化。 26.使用可以看得出意义的标识符。 27.在进行需求分析时需同时考虑维护问题。 28.完成测试作业后,为了缩短源程序的长度应删去源程序的注释。 29.重视程序结构的设计,使程序具有较好的层次结构。 30.使用括号以改善表达式得清晰性。 31.尽可能把程序编得短一些。 32.不要修补不好的程序,要重新写。 33.程序中的注解越少越好。 34.程序的书写格式应有助于读者阅读与理解。 35.软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个 复杂问题进行分解,将软件生存的时期分为若干阶段。()

相关文档