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

软件工程复习题

软件工程复习题
软件工程复习题

【知识点:】

1.总体设计(概要设计)的目的是什么。(P56)

概要设计的主要任务是,通过仔细分析规格说明,适当地对软件进行功能分解,从而把软件划分为模块,并且设计出完成预定功能的模块结构;

2.时间内聚的含义。(P62)

如果一个模块包含的任务必须在同一段时间内执行(例如,模块完成各种初始化工作),叫做时间内聚。

3.软件危机的体现(P3)

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

●用户对“已完成的”软件系统不满意的现象经常发生;

●软件产品的质量往往靠不住;

●软件常常是不可维护的;

●软件通常没有适当的文档;

●软件成本在计算机系统总成本中所占的比例逐年上升;

●软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速

普及深入的趋势;

4.软件详细设计的任务

详细设计阶段详细地设计每个模块,确定完成每个模块功能所需要的算法和数据结构。

详细设计阶段的任务就是把解法具体化,也就是回答“应该怎样具体地实现这个系统”

这个关键问题。这个阶段的任务还不是编写程序,而是设计出程序的详细规格说明。5.软件结构图中,扇入和扇出分别是什么含义。(P64)

“扇入”表明了有多少个上级模块调用了它,扇入越多越好,代码量越少;

“扇出”是一个模块直接控制(调用)的模块数目,扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块;扇出过小也不好。经验表明,一个设计得好的典型系统的平均扇出通常是3或4;

6.模块的内聚最好是哪一类;(P62)

功能内聚是最高程度的内聚;

7.面向对象分析的任务是什么?(P168)

分析过程得出的最重要的文档资料是软件需求规格说明(在面向对象分析中,主要由对象模型、动态模型、和功能模型组成;)

面向对象的关键是识别出问题域内的对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。其中对象模型是最基本、最重要、最核心的。

面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。

8.程序的三种基本控制结构是什么?

顺序,选择,循环

9.可行性研究与需求分析的关系?(P14)

需求分析是在可行性研究的基础上进一步确定“系统必须做什么”的问题;

需求分析在可行性研究的基础上进行。前一阶段产生的文档,特别是数据流图,是需求分析的出发点。

10.软件危机产生的原因(P3)

一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关;11.瀑布模型中软件定义时期各个阶段的顺序

需求分析,规格说明,设计,编码,综合测试,维护,

1)模块化(2)抽象(3)信息隐藏(4)弱耦合(5)强内聚(6)可重用

12.软件维护活动包括哪几类(P15)

通常有四类维护活动:改正性维护,适应性维护,完善性维护,预防性维护;

13.可行性研究包括哪几类?(P43)

从以下三个方面分析研究每种解决方法的可行性。

(一)技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源

条件下,技术风险有多大,项目是否能实现。

(二)经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是

否值得投资开发。

(三)社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运

行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。14.系统逻辑模型包括那些内容()

功能与目标、数据流程图,数据字典,处理逻辑的说明。

15.耦合程度由强到弱依次是哪几个(P62)

内容耦合,公共环境耦合,特征耦合,控制耦合,数据耦合

16.详细设计阶段使用的工具有哪些?(P82)

分为:图形、表格、语言三类

HIPO图、程序流程图、盒图、PAD图、判定表、判定树、过程设计语言(PDL)

17.模块的作用域和模块的控制域之间的关系(P64)

模块的作用域应该在控制域之内(在设计的很好的系统中,所有受判定影响的模块应该都从属于做出判定的那个模块,最好局限于做出判定的那个模块本身以及它的直属下级模块)

模块的作用域定义为受该模块内一个判定影响的所有模块的集合;

模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合;

18.面向对象的类层次结构中,聚集关系是一种什么类型的关系(P163)

整体与部分的关系;

19.多态性是什么含义(P158)

多态是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。也就是说,在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为。

20.模块的独立程度可以由两个定性标准度量,分别是什么?

内聚和耦合

21.总体设计的主要任务是什么?(P56)

通过仔细分析软件规格说明,适当的对软件进行功能分解,从而把软件划分为模块,并且设计出完成预定功能的模块结构。

22.不同内聚类型的含义(P63)

偶然内聚:如果一个模块完成彝族任务,这些任务彼此间即使有关系,关系也是很松散;

逻辑内聚:如果一个模块完成的任务在逻辑上属于相同或相似的一类;

时间内聚:如果一个模块包含的任务必须在同一段时间内执行(例如,模块完成各种初始化工作);

过程内聚:如果一个模块内的处理元素和同一个功能密切相关,而且必须以特定次序执行;

通信内聚:如果模块中所有元素都使用同一个输入数据和产生同一个输出数据;

23.数据流图的分类???

数据流图有四种成分:源点或终点、处理、数据存储和数据流。

24.白盒测试及黑盒测试的定义(P103)

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

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

25.面向对象分析使用的模型

对象模型、动态模型、功能模型

26.面向对象分析的5个层次(P169)

主题层、类与对象层、结构层、属性层、服务层

27.不同逻辑覆盖的含义

语言覆盖:选择足够多的测试数据,使被侧程序中每个语句至少执行一次;

判定覆盖:又叫分支覆盖,不仅每个语句必须至少执行一次,而且每次判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次;

条件覆盖:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果;

判定/条件覆盖:既然判定不一顶包含条件覆盖,条件覆盖也不一定包含判定覆盖,自然会提出一种能同时满足这两种覆盖标准的逻辑覆盖;

条件组合覆盖:更强的逻辑覆盖标准,它要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次;

28.面向对象设计的准则

模块化、抽象、信息隐藏、弱偶合、强内聚、可重用

29.什么是软件生命周期

由软件定义、软件开发、运行维护三个时期组成。

30.什么是模块(P57)

模块是由边界元素限定的相邻的程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符来代表它。因此,过程、函数、子程序和宏等,都可作为模块。面向对象范型中的对象是模块,对象内的方法也是模块。模块是构成程序的基本构件。

【简答】

1.什么是软件?(P5)

软件是程序,数据和相关文档的完整集合。

2.简述面向数据流的需求分析方法(结构化分析方法)。( 搜的)

结构化分析方法简称SA法,是需求分析中使用最多的方法之一,分析的策略是自顶向下、逐层加细,由抽象到具体的过程。

3.简述在编码风格上需要注意的四个问题。(P100)

应该遵循下述规则

●程序内部的文档所谓程序内部的文档包括恰当的标识符,适当的注解和视觉组织等等。

●数据说明数据说明的次序应该标准化。有次序就容易查阅,也就能够加速测试,调试

和维护的过程。(当多个变量名在一个语句说明时,应该按字母顺序排列这些变量。)●语句构造(每个语句都应该简单而直接,不能为了提高效率而使程序变得过分复杂。)●输入/输出

●效率效率主要是指处理机时间和存储器容量两个方面。效率是靠好设计来提高的。

4. 软件工程。(P6)

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它,这就是软件工程。

5 软件测试。(P102)

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

好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。

成功的测试是发现了至今为止尚未发现的错误的测试。

软件测试的目的是为了发现程序中的错误而执行程序的过程。

6. 试述对用户要求没有完整的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因。

7. 简述软件可靠性和可用性的定义,平均无故障时间的计算公式及应用。(P130)

软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的效率。

软件可用性是程序给定的时间点,按照规格说明书的规定,成功地运行的概率。

平均无故障时间MTTF是系统按规格说明书规定成功地运行的平均时间,它主要取决于系统的潜伏的错误的数目,因此和测试的关系什么密切。(自己抄吧)

8.说明软件测试在软件开发阶段的地位和作用。比较测试和调试的异同点。(P98)无论怎么强调软件测试的重要性和它对软件可靠性的影响也不为过。

软件测试的工作量往往占软件总工作量的40%以上。。

仅就测试而言,他的目标是发现软件中的错误,但是,发现错误并不是我们的最终目的。软件工程的根本目的是开发出高质量的完全符合用户需要的软件,因此,通过测试发现错误之后还必须诊断并修改错误,这就是调试的目的。调试是测试阶段最困难的工作。软件测试仍然是保证软件可靠性的主要手段。测试阶段的根本任务是发现并改正软件中的错误。在测试过程中发现的软件错误必须及时改正,这就是调试的任务。为了改正错误,首先必须确定错误的准确位置,这是调试过程中最困难的任务,需要审慎周密的思考和推理。改正错误往往需要修正原来的设计,必须通盘考虑而不能“头疼医头脚疼医脚”,应该尽量避免在调试过程中引进新的错误。

测试和调试是软件测试阶段中的两个关系极端密切的过程,它们常常交替进行。根据测试和调试过程中已经发现和改正的错误数,可以估计软件的平均无故障时间;反之,根据要求达到的软件平均无故障时间,可以估计应该发现和改正的错误数,从而能够判断测试阶段何时可以结束。

9.什么是面向对象方法?它有哪些优点?(P148)

概念:认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成;把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法;按照子类与父类的关系,把若干个对象类组成一个层次结构的系统;对象彼此之间仅能通过传递消息互相联系。

优点:与人类习惯的席位方法一致、稳定性好、可重用性好、较易开发大型软件产品、可维护性好

10.什么是需求分析?它的具体任务包括哪些?

发现、求精、建摸、规格说明和复审的过程;

任务:沿数据流图回朔、写出文档初稿、定义逻辑系统、细化数据流图、书写正式文档、技术审查和管理复审

11.画出软件开发的瀑布模型,螺旋模型和喷泉模型。

12.为保证模块的独立性,在确定系统的模块结构时对耦合与内聚分别把握什么原则?

高内聚,低耦合

耦合:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。内聚:设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。

实践表明内聚更重要,应该把更多注意力集中到提高模块的内聚程度上。

13.面向对象技术中,类和类之间的关系可能有哪些不同类型?

关联----关联表示两个类的对象之间存在某种语义上的联系。(1)普通关联(2)限定关联(3)关联类

聚集----聚集也称为聚合,是关联的特例。聚集表示类与类之间的关系是整体与部分的关系。(1)共享聚集(2)组合聚集

泛化----UML中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系。

【设计题】

1. 根据伪码程序画出程序流程图、盒图(N-S图)。

START

a

IF x1 THEN

REPEAT UNTIL x2

b

END REPEAT

ELSE

BLOCK

c

d

END BLOCK

END IF

STOP

2. 用Jackson图表示下图所示的二维表格:

该学生名册由表头和表体两部分组成。其中表头又顺序包括表名和字段名。表体可由任意行组成,每行包括学生的姓名、性别、年龄和学号。

3.对下列程序,给出其语句覆盖的测试用例,和判定覆盖的测试用例

int logicExample(int x, int y)

{

int magic=0;

if(x>0 && y>0)

{

. magic = x+y+10; // 语句块1

. }

. else

. {

. magic = x+y-10; // 语句块2

. }

.

. if(magic < 0)

. {

. magic = 0; // 语句块3

. }

. return magic; // 语句块4

. }

开始

a b

c

d e

j

结束

f

g h

i

d

a

b

c f

h

g

e

i

j

R2

R1

R3

R4

R5

1

2

3

5

4

67

10

1112

13

89

一、语句覆盖

测试用例:

{x=3, y=3}可以执行到语句块1和语句块4,所走的路径:a-b-e-f

{x=-3, y=0}可以执行到语句块2、语句块3和语句块4,所走的路径:a-c-d-f 二、判断覆盖(分支覆盖)

数据P1P2路径

{x=3, y=3}T F a-b-e-f

{x=-3, y=0} F T a-c-d-f

4、画出与图1所示的程序流程图对应的程序图,并试计算其环形复杂度V(G)。解:(1)程序图如(图2)所示:

(2)计算其环形复杂度:V(G)=E –N +2=13 –10 +2=5

(图一)(图二)

软件工程试题与答案-(20)

软件工程期末试卷(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.条件组合覆盖 ( A )13.面向数据流的设计方法把()映射成软件结构。

软件工程 简答题复习题(带答案)

n n g a r 第一章 1,与计算机硬件相比,计算机软件有哪些特点? 软件的特点如下。 1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来 了解它的功能、特性和质量等。 2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过 程中,渗透了大量的脑力劳动。 3)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问 题。 4)软件的开发和运行必须依赖于特定的计算机系统环境。 5)具有可复用性。 3,什么是软件危机?什么原因导致了软件危机? 软件危机的现象如下。 1)预算,项目一再拖延。 2)需求,开发的软件不能满足用户的要求,项目成功率低。 3)软件工程方法,软件可维护性差、软件质量差、可靠性差。 4)开发工具落后,手工方式,开发效率低。 所有导致软件危机的原因,都与软件本身的产品特点相关。 1)软件是一个复杂的逻辑产品。如果没有解决复杂问题的有效方法,以及软 件产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升 高。 2)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。 3)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法 做到准确估算,生产过程不易控制。 4)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造成 本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得 多。 5,请简述软件工程研究的内容。

n d A i 软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。 软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实 施、系统维护、版本升级等。 常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。软件支持过程由所支持的CASE 工具组成,常用的CASE 工具有Power Designer 和Rational Rose 等。 7,请简述软件工程的目标、过程和原则。 目标、过程和原则是一切工程的三维框架,这里是以工程的观点来看待软件开 发。 1)软件工程的目标:降低成本、及时交付高质量的软件产品(高质量、高效 率、高效益)。2)实现目标的过程即完成产品加工的过程,包括:基本过程、支持过程和组 织过程。 3)进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的 开发范型、采用合适的设计方法、提供高质量的工程支持、重视开发过程 的管理。 9,请简述现代软件工程与传统软件工程显著的区别和改进。 1)传统的软件工程是基于结构化的软件开发方法,而现代软件工程是以面向 对象技术为标志。 2)不仅在编程技术上有很大的改进,而且在分析、设计等整个开发过程中, 采用面向对象的思维方式,更加完整、自然地反映客观世界。3)采用架构技术,开发效率、产品质量得到了极大提高。 4)更注重团队开发和管理,融入更多、更新的管理理念和手段,如RUP 模型、 XP 模型、过程改进、能力成熟度模型、配置管理等。 第二章 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.输入、输出、外部实体和加工 B.变换、加工、数据流和存储 C.加工、数据流、数据存储和外部实体 D.变换、数据存储、加工和数据流

软件工程导论简答题大全

1.软件工程的七条基本原理是什么? 答:软件工程的七条基本原理是: 用分阶段的是的生存周期计划严格管理; 坚持进行阶段评审; 严格实施的产品控制; 采用现代程序技术; 结果应能清楚地审查; 开发小组的成员应该少而精; 承认不断改进软件工程的必要性。 2.良好的编码风格应具备哪些条件? 答:应具备以下条件: (1)使用标准的控制结构; (2)有限制地使用GOTO语句; (3)源程序的文档化(应具备以下内容) ①有意义的变量名称——“匈牙利命名规则”。 ②适当的注释——“注释规范”。 ③标准的书写格式: ——用分层缩进的写法显示嵌套结构的层次(锯齿形风格); ——在注释段的周围加上边框; ——在注释段与程序段、以及不同程序段之间插入空行; ——每行只写一条语句; ——书写表达式时,适当使用空格或圆括号等作隔离符。 (4)满足运行工程学的输入输出风格。 3.简述文档在软件工程中的作用。 答: (1) 提高软件开发过程的能见度 (2) 提高开发效率 (3) 作为开发人员阶段工作成果和结束标志 (4) 记录开发过程的有关信息便于使用与维护; (5) 提供软件运行、维护和培训有关资料; (6) 便于用户了解软件功能、性能。 4.可行性研究包括哪几方面的内容? 答: (1)经济可行性:是否有经济效益,多长时间可以收回成本; (2)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足; (3)运行可行性:系统操作在用户内部行得通吗? (4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。 5.结构化的需求分析描述工具有哪些? 答:有数据流图(DFD)、数据字典(DD)、判定表、判定树、结构化语言(PDL)、层次方框图、Warnier图、IPO图、控制流图(CFD)、控制说明(CSPEC)、状态转换图(STD)和实体—关系图(E—R)等。 6.一般面向对象分析建模的工具(图形)有哪些?

软件工程课后习题测验简答题

第一章: 三、简答题 1.软件产品的特性是什么? 答:●软件是一种逻辑产品,具有无形性; ●软件产品的生产主要是研制;主要是脑力劳动; ●软件不存在磨损和老化问题,但存在退化问题; ●软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式; ● 软件具有“复杂性”,其开发和运行常受到计算机系统的限制。 2. 软件发展有几个阶段?各有何特征? 答:①程序设计阶段。 硬件特征:价格贵、存储容量小、运行可靠性差。 软件特征:只有程序、程序设计概念,不重视程序设计方法。 ②程序系统阶段。 硬件特征:速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长。 软件特征:程序员数量猛增,开发人员素质低。 ③软件工程阶段。 硬件特征:向超高速、大容量、微型化及网络化方向发展。 软件特征:开发技术有很大进步,但未获得突破性进展,软件价格不断上升,未完全摆脱软件危机。 3.什么是软件危机?其产生的原因是什么? 答:“软件危机”(Software Crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折。软件危机主要表现在两个方面: (1) 软件产品质量低劣,甚至开发过程就夭折。 (2)软件生产率低,不能满足需要。 4.什么是软件过程?有哪些主要的软件过程模型?它们各有哪些特点? 答:软件过程是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。软件过程模型是对软件开发实际过程的抽象和简化,是描述软件开发过程中各种活动如何执行的模型,因此又称为软件开发模型。 主要的软件过程模型有:瀑布模型、增量模型、螺旋模型、喷泉模型和基于知识的模型等。 ⑴瀑布模型是经典的软件开发模型,将软件开发活动中的各项活动规定为依线性顺序连接的若干阶段,它简单易用,在消除非结构化软件、降低软件的复杂性、促进软件开发工程化方面起了很大的作用。但在软件开发实践中也逐渐暴露出它的缺点。它将一个充满回溯的软件开发过程硬性分割为几个阶段,无法解决软件需求不明确或者变动的问题。 ⑵增量模型是一种非整体开发的模型。根据增量的方式和形式的不同,分为基于瀑布模型的渐增模型和基于原型的快速原型模型。该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。 ⑶螺旋模型将瀑布模型和增量模型结合起来,并加入了风险分析。螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期可分为4个工作步骤:制定计划、风险分析、实施工程、客户评估。 ⑷喷泉模型用于采用对象技术的软件开发项目。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。软件开发过程有4

软件工程试题库集及答案

综合练习一答案 选择题: 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。用户和软件人员的领导

软件工程题库及答案

一、选择题 软件(2) 1.在软件开发的各种资源中,( D )是最重要的资源。 A 开发工具 B 方法 C 硬件环境 D 人员 2.软件的复杂性是(A ),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A 固有的 B 人为的 C 可消除的 D 不可降低的 3.3:软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是(D )。 A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档 4.软件是一种(B )产品。 A、有形 B、逻辑 C、物质 D、消耗 软件危机(1) 5.1:开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C ) A.软件工程 B.软件周期 C.软件危机 D.软件产生 6.2:在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了 ( A ) A.软件危机B.软件工程C.程序设计革命D.结构化程序设计 7.3:以下哪一项不是软件危机的表现形式( C ) (A)成本高(B)生产率低 (C) 技术发展快(D)质量得不到保证 8.4:“软件危机”产生的主要原因是( A )。 A.软件日益庞大 B.开发方法不当 C.开发人员编写程序能力差 D.没有维护好软件 9.5:软件危机是指在软件开发和( C )过程中遇到的一系列严重问题。 A 开发 B 使用C维护D更新 软件工程(2) 10.1:为了解决软件危机人们提出了用(B )的原理来设计软件,这就是软件工程诞生 的基础。 (A) 运筹学(B) 工程学(C) 软件学(D) 数学 11.2.在软件工程时期,决定软件质量的主要因素是( A )

A.管理水平 B.个人程序技术C.小组技术水平 D.硬件的发展 12. 3. 软件管理工作涉及到的直接对象不包括( B )。 A.软件开发人员 B.硬件设备 C.项目经费 D.软件项目 13. 4. 软件工程方法学有三个要素,它们是(A ) A.方法、工具和过程 B.质量、进度和成本 C.顺序、分支和循环 D.入口、过程、出口生命周期及模型(5) 14.1:软件工程中描述生命周期的瀑布模型一般包括计划、( A )、设计、编码、测试、维 护等几个阶段。 A.需求分析 B.需求调查 C.可行性分析 D.问题定义 15. 2.瀑布模型把软件生存周期划分为软件计划、软件开发与(C )三个阶段,而每一阶 段又可分为若干更小的阶段。 A. 详细设计 B. 可行性分析 C. 运行与维护 D. 测试与排错 16.3:下列哪个模型没有采用迭代的思想(A ) A.瀑布模型 B.渐增模型C.螺旋模型 D.RUP模型 17.4:下列关于瀑布模型的描述正确的是( D )。 A.利用瀑布模型,如果发现问题修改的代价很低 B.瀑布模型的核心是按照软件开发的时间顺序将问题简化 C.瀑布模型具有良好的灵活性 D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开 18.5:瀑布模型本质上是一种(A )模型。 A.线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 19. 6. 快速原型模型的主要特点之一是( D ) A.开发完毕才见到产品 B.及早提供全部完整的软件产品 C.开发完毕后才见到工作软件 D.及早提供工作软件 20.7:瀑布模型的关键不足在于( B ) (A)过于简单(B)不能适应需求的动态变更 (C)过于灵活(D)各个阶段需要进行评审 21.8:瀑布模型存在的问题是( D )。 A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求 问题定义(1)

软件工程简答题复习题(带答案)

第一章 1,与计算机硬件相比,计算机软件有哪些特点? 软件的特点如下。 1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了 解它的功能、特性和质量等。 2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过程 中,渗透了大量的脑力劳动。 3)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问 题。 4)软件的开发和运行必须依赖于特定的计算机系统环境。 5)具有可复用性。 3,什么是软件危机?什么原因导致了软件危机? 软件危机的现象如下。 1)经费超出预算,项目一再拖延。 2)不重视需求,开发的软件不能满足用户的要求,项目成功率低。 3)没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性差。 4)开发工具落后,手工方式,开发效率低。 所有导致软件危机的原因,都与软件本身的产品特点相关。 1)软件是一个复杂的逻辑产品。如果没有解决复杂问题的有效方法,以及软件 产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升高。 2)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。 3)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法做 到准确估算,生产过程不易控制。 4)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造成 本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得 多。 5,请简述软件工程研究的内容。 软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。 软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级等。 常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。 软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer和

软件工程复习题及答案

2006-2007-2软件工程复习 一、单项选择题(20选10) 1. 结构化分析的主要描述手段有( B )。 A. 系统流程图和模块图 B. DFD图、数据词典、加工说明 C. 软件结构图、加工说明 D. 功能结构图、加工说明 2. 用于表示模块间的调用关系的图叫( D )。 A.PAD B.SC C.N-S D.HIPO 3. 在( B )模型中是采用用例驱动和架构优先的策略,使用迭代增量建造方法,软件“逐渐”被开发出来的。 A.快速原型 B. 统一过程 C.瀑布模型 D. 螺旋模型 4. 常用的软件开发方法有面向对象方法、面向( A )方法和面向数据方法。 A. 过程 B. 内容 C. 用户 D. 流程 5 从工程管理的角度来看,软件设计分两步完成( D )。 A. ①系统分析②模块设计 B. ①详细设计②概要设计 C. ①模块设计②详细设计 D. ①概要设计②详细设计 6. 程序的三种基本结构是( B )。 A. 过程、子程序、分程序 B.顺序、条件、循环 C.递归、堆栈、队列 D.调用、返回、转移 7. 程序的三种基本结构是( B )。 A. 过程、子程序、分程序 B.顺序、条件、循环 C.递归、堆栈、队列 D.调用、返回、转移 8. SD方法衡量模块结构质量的目标是( C )。 A. 模块间联系紧密,模块内联系紧密 B. 模块间联系紧密,模块内联系松散 C. 模块间联系松散,模块内联系紧密 D. 模块间联系松散,模块内联系松散 9.为提高软件测试的效率,应该( C )。 A.随机地选取测试数据 B.取一切可能的输入数据作为测试数据 C.在完成编码后制定软件测试计划 D.选择发现错误可能性大的数据作为测试数据 10.( D )测试用例发现错误的能力较大。 A.路径覆盖 B.条件覆盖 C.判断覆盖 D.条件组合覆盖 11.软件需求分析应确定的是用户对软件的( A )。 A. 功能需求和非功能需求 B. 性能需求 C. 非功能需求 D. 功能需求 12.下列各种图可用于动态建模的有( C )。 A.用例图 B. 类图 C. 序列图 D. 包图 13.软件过程模型有瀑布模型、( B )、增量模型等。 A. 概念模型 B. 原型模型 C. 逻辑模型 D. 物理模型 14.面向对象的分析方法主要是建立三类模型,即( D )。 A. 系统模型、ER模型、应用模型 B. 对象模型、动态模型、应用模型 C. E-R模型、对象模型、功能模型 D. 对象模型、动态模型、功能模型 15.测试的分析方法是通过分析程序( B )来设计测试用例的方法。 A.应用范围 B.内部逻辑 C.功能 D.输入数据 16. 软件工程是研究软件( B )的一门工程学科。 A. 数学 B. 开发与管理 C. 运筹学 D. 工具 17. 需求分析可以使用许多工具,但( C )是不适合使用的。 A.数据流图 B.判定表 C.PAD图 D.数据字典 18.划分模块时,一个模块内聚性最好的是( A )。 A. 功能内聚 B. 过程内聚 C. 信息内聚 D. 逻辑内聚 19.软件可移植性是用来衡量软件的( D )的重要尺度之一。 A.效率 B. 质量 C. 人机关系 D. 通用性 20.软件配置管理是在软件的整个生存周期内管理( D )的一组活动。 A.程序 B.文档 C.变更 D.数据 二、判定题(20选10) 1统一过程是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。(×) 2当模块中所有成分结合起来完成一项任务,该模块的内聚是偶然内聚。(×) 3SD方法衡量模块结构质量的目标是模块间联系松散,模块内联系紧密(√) 4当模块中所有成分结合起来完成一项任务,该模块的内聚是功能内聚。(√) 5在进行需求分析时,就应该同时考虑软件的可维护性问题。(√) 6需求分析可以使用许多工具,但数据流图是不适合使用的。(×)

历年全国自学考试软件工程试题简答题答案

历年全国自学考试软件工程试题简答题答案

全国 10月自学考试软件工程试题 简答题(本大题共6小题,每小题5分,共30分) 31. 什么是需求规约?简述需求规约的基本性质。 答:需求规约是一个软件项/产品/系统所有需求陈述的正式文档,它表示了一个软件产品/系统的概念模型。需求规约一般需要满足一下4个基本性质: 1.重要性和稳定性程度:按需求的重要性和稳定性,对需求进行 分级; 2.可修改性:在不影响其它需求的前提下可容易修改一个单一 需求; 3.完整性:设备被遗漏的需求; 4.一致性:不存在互斥的需求。 32.什么是模块耦合?简述常见的模块耦合类型及其设计原则。答:模块耦合:是指不同模块之间相互依赖程度的度量; 几中常见模块耦合类型为:内容耦合、公共耦合、控制耦合、标记耦合、数据耦合等; 设计原则:如果模块间必须存在耦合,就尽量使用数据耦合,少用控制耦合,限制公共耦合,避免内容耦合。 33.UML给出了那些表示关系的术语?简述它们的概念。 答:1.为了表示各类事物之间的关系,UML给出了表示关系的术

语:关联、泛化、细化、依赖; 2.关联是类目之间的一种结构关系,是对一组具有相同结构、相同链的描述; 3.泛化是一般性类目和它的较为特殊类目之间的一种关系; 4.细化是类目之间的语义关系,其中一个类目规约了保证另一个类目执行的契约; 5.依赖是一种使用关系,用于描述一个类目使用另一类目的信息和服务。 34.简述RUP的定义和特点。 答:RUP是基于一种过程框架,为软件开发,即为进行不同抽象层之间映射安排其开发活动的次序,制定任务和需求开发的制品,提供了指导;并为对项目中的制品和活动进行监督与度量,提供了相应的准则; RUP特点是:以用况为驱动,以体系结构为中心,迭代、增量式开发。 35.简述软件测试步骤及关注的内容。 答:软件测试步骤及关注的内容有以下几点: 1.由于软件错误的复杂性,在软件工程测试中应综合运用测试 技术,实施合理的测试步骤:单元测试、集成测试、有效性测试和系统测试;

软件工程简答题66339

简答题: 1、什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? 软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究把工程应用于软件中提到的途径。 软件工程的本质特征: (1)软件工程关注于大型程序的构造; (2)软件工程的中心课题是控制复杂性; (3)软件产品交付使用后仍然需要经常修改; (4)开发软件的效率非常重要; (5)和谐地合作是成功开发软件的关键; (6)软件必须有效地支持它的用户 (7)在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人开发产品。 消除软件危机的途径: (1)对计算机软件有一个正确的认识(软件≠程序) (2)必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目 (3)推广使用在实践中总结出来的开发软件的成功技术和方法 (4)开发和使用更好的软件工具 2、简述结构化范型和面向对象范型的要点,并分析它们的优缺点。 1. 传统方法学:也称为生命周期方法学或结构化范型。优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。 3、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型

软件工程试题及答案

软件工程 一、选择题 1、软件需求规格说明的内容不包括(B) A、主要功能 B、算法的详细描述 C、用户界面及运行环境 D、软件的性能 2、面向对象的分析方法主要是建立三类模型,即(D) A、系统模型、ER模型、应用模型 B、对象模型、动态模型、应用模型 C、ER模型、对象模型、功能模型 D、对象模型、动态模型、功能模型 3、在ER模型中,包括以下基本成分(C) A、数据、对象、实体 B、控制、联系、对象 C、实体、联系、属性 D、实体、属性、操作 4、各种软件维护的类型中最重要的是(A) A、完善性维护 B、纠错性维护 C、适应性维护 D、预防性维护 5、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-2.0,2.0],现从输入的角度考虑一组测试用列-2.001,-2,20,2.001,设计这组测试用列的方法是(C) A、条件覆盖法 B、等价分类法 C、边界值分析法 D、错误推测法 6、下列白盒测试法,哪种是最强的覆盖准则(D) A、语句覆盖 B、条件覆盖 C、判定覆盖 D、条件组合覆盖 7、确定测试计划是在(A)阶段制定的。 A、总体设计 B、详细设计 C、编码 D、测试 8、数据字典是软件需求分析阶段最重要的工具之一,其最基本的功能是(C) A、数据库设计 B、数据通信 C、数据定义 D、数据维护 9、软件开发当中,抽取和整理用户需求并建立问题域精确模型的过程(D) A、生成期 B、软件意向 C、结构化程序设计 D、面向对象分析 10、以下不属于IT企业当中过程管理和过程改进模型的是(D) A、ISO9001 B、CMMI C、软件企业文化 D、UML 11、适合互联网上编程并可供不同平台运行的面向对象程序设计的语言是(java) 12、软件结构图中,模块之间用直线连接,则表示他们之间存在(A )。 A、调用关系 B、组成关系 C、链接关系 D、顺序执行关系 13、生命周期方法设计软件的过程中,画用例图属于(A)阶段的工作。 A、需求分析 B、概要设计 C、详细设计 D、软件维护 14、PDL属于(B)语言。 A、高级程序设计语言 B、伪码 C、中级程序设计语言 D、低级程序设计语言 15、成功的测试是(发现至今尚未发现的错误) 16、软件开发的瀑布模型典型的刻画了软件生成周期的阶段划分,与其想适应的软件开发方法是(即瀑布模型采用什么样的软件开发方法?)(B)。 A、构建化方法 B、结构化方法 C、面向对象方法 D、快速原型方法 17、软件结构图的形态特征能反应程序重用率的是(C) A、深度 B、宽度 C、扇入 D、扇出 18、维护过程的本质是(D)的过程。 A、修改程序 B、修改文档 C、修改位置 D、压缩的修改软件定义和开发 19、软件危机的表现: 答:由于软件特点和长期以来一直没有发明一种高校的开发方法,导致软件生产效率非常低,交付期一拖再拖,最终交付的软件产品在质量上很难保障。这种现象早在20世纪60年代被定义为“软件危机”。它的具体表现如下:

软件工程简答题

软件工程简答题 三、简答题(简要回答下列问题) 1、什么是软件工程?它目标和内容是什么? 软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科。 软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。 软件工程内容:包括开发技术和开发管理两个方面。 2、软件开发中有哪几种过程模型?哪些适用于面向对象的软件开发? 软件开发中常见的软件过程模型有瀑布模型、原型模型、螺旋模型、喷泉模型、统一软件过程等。 其中喷泉模型、统一软件过程适用于面向对象的软件开发。 3、什么是结构分析方法?该方法使用什么描述工具? 结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。 4、什么是软件概要设计?该阶段的基本任务是什么? 把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。称为概要设计或结构设计。 基本任务: ⑴设计软件系统结构 ⑵进行数据结构及数据库的设计 ⑶编写概要设计的文档 ⑷评审 5、软件维护有哪些内容? (1)校正性维护。在软件交付使用后,一些隐含的错误在某些特定的使用环境下会暴

露出来。为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。 (2)适应性维护。为了使应用软件适应计算机硬件、软件环境及数据环境的不断发生的变化而修改软件的过程称为适应性维护。 (3)完善性维护。为增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。 (4)预防性维护。为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。 6、软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系? 软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。 单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计文档。 集成测试是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。 确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。 系统测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一起进行测试。以确定软件是否可以支付使用。 7、什么是软件生存周期?它有哪几个活动? 软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。 包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。 8、衡量模块独立性的两个标准是什么?各表示什么含义? 内聚和耦合。 内聚:又称为块内联系,指模块内部各成分之间相互关联的程度,以高内聚为设计目标。 耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,耦合性越强,独立性越差,以低耦合为设计目标。

软件工程考试题库完整

类型一: 1. 软件定义时期包括两个阶段,它们是(可行性研究)和(需求分析)两个阶段。 2. 数据流图有(4)种基本符号,数据流图中,箭头表示(数据流)。 3. 数据流图有变换型结构和(事务)型结构两种类型。 4. 4个人之间的通信量是(6) 5. 评定模块的独立性的标准是耦合和聚。(耦合)是对软件部块间联系的度量, 按照由弱到强的顺序,可以把它分为(7)类。其中,最弱的是(非直接耦合), 最强的是(容耦合) 6.程序结构的复杂性度量值V(G)取决于程序控制流的复杂程度。顺序结构的V(G)值为(1),选择结构的为(2)。 7. 在模块结构图中,(扇入)是指直接调用该模块的模块数 8.模块的独立性可用耦合和聚的高低来评定,设计较好的模块要求(聚)高、耦合(低)。 9. 语句覆盖测试技术是(白盒测试)方法的一种 10. 等价类划分技术是属于(黑盒测试)方法的 11. 按维护的起因,可以将维护活动分为4类:(改正性维护)、(适应性维护)、完善性维护和预防性维护。完善性维护占总维护量的(50%以上)。 12.软件项目的可行性研究要进行一次(简化的、压缩的)需求分析。 13、系统流程图用于可行性分析中的(当前运行系统)的描述。 14、程序的三种基本控制结构的共同特点是(只有一个入口和一个出口) 15、维护中,因误删除一个标识符而引起的错误是(编码)副作用。 16、(技术评审)是以提高软件质量为目的的技术活动。 17、面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。因此面向对象方法有许多特征,如软件系统是由对象组成的;(把对象划分成类,每个对象类都定义一组数据和方法);对象彼此之间仅能通过传递消息互相联系;层次结构的继承。 18、原型化方法是用户和设计者之间执行的一种交互构成,适用于(需求不确定性高的)系统。 19.在下列工具与环境中(结构的基于图形CASE )属于较早期的CASE。 20.Putnam成本估算模型是一个(动态多变量)模型。 21.在McCall软件质量度量模型中,(适应性)属于面向软件产品修改。 22.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是(SQDC )23.软件复杂性度量的参数包括(规模) 24.对象实现了数据和操作的结合,使数据和操作(封装)于对象的统一体中。25.软件调试技术包括(演绎法) 26.瀑布模型的存在问题是(缺乏灵活性) 27.软件测试方法中的静态测试方法之一为(计算机辅助静态分析) 28.软件生命周期中所花费用最多的阶段是(软件维护) 29.第一个体现结构化编程思想的程序设计语言是(PL/1语言) 30.程序的三种基本控制结构是(顺序、选择和重复) 31.在详细设计阶段,经常采用的工具有(PAD ) 32.详细设计的结果基本决定了最终程序的(质量) 33.需求分析中开发人员要从用户那里了解(软件做什么) 34.结构化程序设计主要强调的是(程序易读性)

软件工程试题库

“软件开发与管理”试题库 第一章:软件开发与管理概述 一、填空题 1.软件是由、、三部分组成。 2.软件作为人工生产的产品,主要是由人进行“开发”而来,与硬件比较起来没有明显的制造过程。 3.软件开发过程复杂,但一般包括、、、 等主要阶段。 4.软件的是软件的生命。 5.在软件团队开发中由于人数的增加、成员间的交互与合作,所以除了技术问题外,还存在问题。 6.软件开发方法学包括和两种开发方法。 7.软件项目进度计划主要包括、、和。 二、思考与简答题 1.举例说明程序、软件、系统的区别和联系。 2.软件有什么特点?软件开发有什么特点? 3.说说程序、软件、系统的设计与应用的不同。 4.软件开发过程主要有哪几个典型任务活动,请说说它们各自的内容。 5.软件开发过程模型是什么含义?一般有哪几种开发过程模型? 6.软件开发方法有哪两类?它们各自的优缺点是什么? 7.请说说管理在软件开发中的重要作用。软件项目管理有哪些内容。 8.软件质量是如何管理的? 第二章:需求分析 一、填空题 1.软件的需求是用户对该软件在、等方面的期望与要求。 即软件的需求、需求和其它需求。

2.需求分析的任务是需求分析师通过与用户的交流、、,得到用户对系统完整、准确、清晰、具体的要求。 3.需求分析过程中建立的模型有:、和。 而传统结构化的需求分析模型包括:图、图、 图。 4.传统的需求分析模型中,的建立是今后数据库设计的基础,而的建立是今后软件功能结构设计的基础。 5.软件的需求最终要通过表达出来。 二、思考与简答题 1.需求分析的任务和作用是什么? 2.需求分析的步骤有哪些? 3.什么是数据模型?实体、属性、联系之间的关系是什么? 4.什么是功能模型?处理的描述包括哪些内容? 5.什么是动态模型?它与功能模型的区别是什么?系统的状态是如何转换的? 6.软件需求规格说明书你认为重点包括哪些方面? 第三章:软件设计 一、填空题 1.软件的需求分析解决了软件应该“做什么”的问题,而软件设计则解决软件应该的问题。 2.软件设计能指导软件的编码实现,没有设计的编码其结果很难预料与保证,所以说软件设计是软件开发的关键,直接影响软件的。 3.软件需求分析、软件设计、软件编码之间既有区别又有联系,它们是软件在不同层次的。从,从 是软件开发两个重要的过程进阶。 4.软件设计内容包括、、等方面。 5.传统结构化软件设计,是从E-R图出发设计,从数据流图出发设计。 6.详细设计是对软件模块的设计,它更接近于编码,所以详细设计又称为过程设计或算法设计。

软件工程简答题——答案

38.就程序设计语言的工程特性而言,对程序编码有哪些要求? 就程序设计语言的工程特性而言,对程序编码有如下要求: (1)可移植性(2)开发工具的可利用性(3)软件的可重用性(4)可维护性 39.模块的内聚性包括哪些类型? 模块的内聚性包括: (1)偶然内聚(2)逻辑内聚(3)时间内聚(4)通信内聚(5)顺序内聚(6)功能内聚 36.可行性研究报告的主要内容有哪些? 解:一个可行性研究报告的主要内容如下: (1)引言:说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。 (2)可行性研究前提:说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。 (3)对现有系统的分析:说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设备;现有系统存在什么问题。 (4)所建议系统的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价。 (5)所建议系统的经济可行性分析:说明所建议系统的各种支出,各种效益;收益投资比;投资回收周期。 (6)社会因素可行性分析:说明法律因素,对合同责任、侵犯专利权、侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理、工作制度、人员素质的要求。 (7)其他可供选择方案:逐一说明其他可供选择的方案,并说明未被推荐的理由。 (8)结论意见:说明项目是否能开发;还需要什么条件才能开发;对项目目标有什么变动等。 37.系统设计的内容是什么? 解:系统设计阶段先从高层入手,然后细化。系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。 (1)系统分解。系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。每次分解的各子系统数目不能太多,最底层子系统称为模块。 (2)确定并发性。分析模型、现实世界及硬件中不少对象均是并发的。系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。后者可以放在一起,而综合成单个控制线或任务。 (3)处理器及任务分配。各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,

软件工程简答题复习题(带答案)

软件工程简答题复习题(带 答案) -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

第一章 1,与计算机硬件相比,计算机软件有哪些特点 软件的特点如下。 1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了 解它的功能、特性和质量等。 2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过程 中,渗透了大量的脑力劳动。 3)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问 题。 4)软件的开发和运行必须依赖于特定的计算机系统环境。 5)具有可复用性。 3,什么是软件危机什么原因导致了软件危机 软件危机的现象如下。 1)经费超出预算,项目一再拖延。 2)不重视需求,开发的软件不能满足用户的要求,项目成功率低。 3)没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性差。 4)开发工具落后,手工方式,开发效率低。 所有导致软件危机的原因,都与软件本身的产品特点相关。 1)软件是一个复杂的逻辑产品。如果没有解决复杂问题的有效方法,以及软件 产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升 高。 2)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。 3)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法做 到准确估算,生产过程不易控制。 4)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造成 本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得 多。 5,请简述软件工程研究的内容。 软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。 软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级等。 常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。 软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer和Rational Rose等。 7,请简述软件工程的目标、过程和原则。

相关文档