软件工程基础(汇总资料-本科课程) 下载本文

8. IPO、HC

9. UML语义、UML表示法 10. 分析方法、非分析方法 11. 程序、文档 二、单项选择题 1. C 2. B 3. B 4. D 5. A

三、多项选择题 1. A、B、C、D 2. A、B、C、D 3. A、B、C 4. A、B、C、D 5. A、B、C

四、判断题 1. ╳ 2. ╳ 3. √ 4. √ 5. ╳ 6. ╳ 7. √ 8. √ 9. ╳ 10. √

五、问答题 1.

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

概括地说,软件危机包含下述两方面的问题:如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。具体地说,软件危机主要有下列表现:

产品不符合用户的实际需要。

软件开发生产率提高的速度远远不能满足客观需要,软件的生产率远远低于硬件生产率和计算机应用的增长,使人们不能充分利用现代计算机硬件提供的巨大潜力。

软件产品的质量差。

对软件开发成本和进度的估计常常不准确。 软件的可维护性差。

软件文档资料通常既不完整也不合格。

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

答:模块是数据说明、可执行语句等程序对象的集合,模块可以单独被命名的而且可通

过名字来访问,例如,过程、函数、子程序、宏等等都可作为模块。

模块化就是把程序划分成若干个模块,每个模块具有一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,实现问题的要求。

模块独立性是软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他的模块接口是简单的。

模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。 3.

答:编码风格又称程序设计风格或编程风格。编码风格实际上指编程的基本原则。 程序实际上也是一种供人阅读的文章。

编写程序时讲求程序的风格,将大量地减少人们读程序的时间。 良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量。

4.

答:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。

白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作,白盒测试又称为结构测试。

六、 分析题

1、 答

数据 A=3 B=1 Y=6 A=1 B=2 Y=0

注意:本题答案不唯一,学生给出的数字正确就应该算对。 2、

答:第二段程序优于第一段。

注释起到提示的作用,利于程序阅读者对程序段全貌的理解 缩进格式清晰的显示程序中逻辑判断的结构。 变量命名方式表明变量的含义。

软件工程习题解答 第一章 概述

1.软件产品的特性是什么? a.软件产品是一种逻辑产品。

b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。

c.软件产品不会用坏,不存在磨损、消耗问题。

覆盖路径 ce bd 覆盖分支 TT FF Y值 12 -10 d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是\定做\的。 e.软件费用不断增加,成本相当昂贵。

2.软件产品有几个阶段?各有何特征? 阶段 生产方式 工具 开发方法 硬件特征 软件特征 A.程序设计时代(1946-1956) B.程序系统时代(1956-1968) 个体手工劳动 机器语言、汇编 追求编和技巧,追求程序运行效率 价格贵、存储容量小、运行可靠性差 只有程序、程序设计概念,不重视程序设计方法 小集团合作生产 高级语言 个人技巧,开始提出结构化方法 C.软件工程时代(1968-今) 工程化的生产 数据库、开发工具、开发环境网络、 分布式、面向对象技术 速度、容量、工作可靠性有明显提向超高速、大容量、微型化以高,价格降低,销售有爆炸性增长 及网络化方 程序员数量猛增,已意识到软件开发的重要性,开发技术没有新的突破,大量软件开发的需求已提出,开发人员的素质和工程兵的开发技术不适应规模大、结构复杂的软件开发,产生了尖锐矛盾,导致软件危机的产生 开发技术有很大进步,但未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机

3.什么是软件危机?其产生的原因是什么?

软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。主要表现在以下几个方面:

a.经费预算经常突破,完成时间一再拖延。 b.开发的软件不通满足用户要求。 c.开发的软件可维护性差。 d. 开发的软件可靠性差。

软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:

a.软件的规模越来越大,结构越来越复杂。 b.软件开发管理困难而复杂。 c.软件开发费用不断增加。 d.软件开发技术落后。 e.生产方式落后。

f.开发工具落后,生产率提高缓慢。

4.什么是软件工程?它的目标和内容是什么?

软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。

软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标: a.付出较低的开发成本; b.面到要求的软件功能;

c.取得较好的软件性能; d.开发的软件易于移植; e.需要较低的维护费用;

f.能按时完成开发任务,及时交付使用; g.开发的软件可靠性高; 软件工程的内容:

1) 软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。 2) 软件开发管理:软件管理学、软件经济学、软件心理学。

5.软件工程面临的问题是什么? 软件工程面临的问题:

a.软件费用。b.软件可靠性。c.软件维护。d.软件生产率。e.软件重用。

6.什么是软件生存周期?它有哪几个活动?

软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。

软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等.

7.什么是软件生存周期模型?有哪些主要模型?

软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。)

软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等

9.什么是软件开发的方法?有哪些主要方法?

软件开发的方法:是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。 主要方法:结构方法、Jackson方法、维也纳开发方法(VDM)、面向对象的开发方法。

第二章 可行性研究

1.可行性研究的任务是什么? a.技术可行性:

考虑的因素(1).开发的风险(2)资源的有效性(3)技术(4)开发人员在主段技术可行性时,一旦估计错误,将会出现灾难性后果。 b.经济可行性。 c.社会可行性。

2、可行性研究有哪些步骤? a.确定项目规模和目标 b.研究正在运行的系统

c.建立新系统的高层逻辑模型 d.导出和评价各种方案 e.推荐可行的方案