软件工程复习题(1)

软件工程复习题(1)
软件工程复习题(1)

软件工程习题参考答案

第一章1﹑软件产品的特性是什么?

产品特性:⑴是一种逻辑产品,与物质产品有很大的区别。⑵软件产品的生产主要是研制,生产成本主要在开发和研制,开发研制完成后,通过复制就产生了大量软件产品。⑶软件产品不会用坏,不存在磨损,消耗。⑷生产主要是脑力劳动,还未完全摆脱手工开发方式,大部分产品是"定做"的⑸开发软件的费用不断增加,致使生产成本相当昂贵。

3﹑什么是软件危机?产生原因是什么?

软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。

产生原因:造成软件危机的原因是:(1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。(3)软件开发费用不断增加。(4)软件开发技术落后。(5)生产方式落后。(6)开发工具落后,生产率提高缓慢。

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

软件工程就是(参看IEEE的定义)。

软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

软件工程内容:研究内容包括开发技术和开发管理两个方面。

开发技术主要研究:软件开发方法,开发过程,开发工具和环境。

开发管理主要研究:软件管理学,软件经济学,软件心理学。

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

软件工程需要解决的问题:软件的费用,可靠性,可维护性,软件生产率和软件的重用。

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

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

包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。

7﹑什么是软件过程模型?有哪些主要模型?

软件过程模型主要有:瀑布模型,原型模型、快速应用开发模型、增量模型,螺旋模型,等。

第二章1、渐增模型有几种?各有何特点?

答:渐增模型有两种类型,一是增量构造模型,二是演化提交模型。增量构造模型是在瀑布模型基础上,对一些阶段进行整体开发,对另一些阶段进行增量开发。演化提交模型则是在瀑布模型的基础上,所有阶段都进行增量开发,不仅是增量开发,也是增量提交。

3、快速原型的开发步骤是什么?

答:快速原型的开发步骤是:(1)快速分析:在分析人员与用户的配合下,迅速确定系统基本需求并开始构造原型。(2)构造原型:在快速分析的基础上,根据基本需求说明尽快实现一个可运行的系统。(3)运行原型:通过运行快速原型,发现问题,消除误解,达到开发者也用户的充分协调。(4)评价原型:在运行的基础上,评价原型的特性,分析运行效果是否满足用户的需求,提出全面的修改意见。(5)修改:根据评价原型的活动结果进行修改,修改过程代替初始的快速分析,从而实现原型开发的循环过程。用户与开发者在这种循环过程中不断接近系统的最终要求。上述步骤在软件工具的支持下往往是互相交融在一起的,而不再象瀑布模型那样严格的阶段划分,线性推进。

4、评价快速原型模型的优缺点。

答:快速原型的优点是:(1)可及早为用户提供有用的产品。 (2)可及早发现问题,随时纠正错误。 (3)减少技术、应用风险,缩短开发时间,减少费用、提高生产率。 (4)通过实际运行原型,提供直接评价系统的方法,促使用户主动参与开发活动,加强了信息反馈,促进各类人员的协调,减少误解,适应需求变化,能有效提高系统质量。

快速原型的缺点是:(1)缺乏丰富而强有力的软件工具和开发环境。 (2)缺乏有效的管理机制,还未建立起自己的开发标准。 (3)对设计开发环境要求较高。 (4)在多次重复改变原型的过程中,程序员会感到厌倦。 (5)系统的易变性对测试有一定影响,难于做到彻底测试,更新文档较为困难。

5、对比瀑布模型与增量模型,指出增量模型的新思路。

答:瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。瀑布模型很难适应需求可变、模糊不定的软件系统的开发,而且在开发过程中用户很难参与进去,只有到开发结束才能看到整个软件系统。这种理想的、线性的开发过程缺乏灵活性,不适应实际的开发过程。

增量模型是在瀑布模型的基础上加以修改而形成的。属于非整体开发模型。

它的基本思路是为了使开发过程具有一定的灵活性和可修改性,在开发过程中推迟某些阶段或所有阶段中的细节,从而较早的产生工作软件。

第三章1.可行性研究的任务是什么?

可行研究的任务:首先需要进行概要的分析研究,初步确定项目的规模,目标,约束和限制。分析员再进行简要的需求分析,抽象出项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的解决方法,对每种解决方法都要研究它的可行性。

主要从三个方面考虑:⑴.技术可行性:一般要考虑的情况包括开发的风险即设计出的系统能否达到要求的功能和性能;资源的有效性;相关技术的发展是否支持;

⑵经济可行性进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资。

⑶.法律可行性:要开发的项目是否存在任何侵权问题,运行方式在用户组织内是否可行,现有管理制度﹑人员素质﹑操作方式是否可行。

4.成本--效益分析可用哪些指标进行度量?

⑴.投资回收率:通常把建立系统若干年后能取得的收益折算成现在的价值和开发系统所需的费用进行比较得出投资回收率。⑵.投资回收期:就是使累计的经济效益等于最初的投资费用所需的时间。⑶.纯收入:整个生存周期之内的累计经济效益(折成现在值)与投资之差。

第四章⒈什么是需求分析?需求分析阶段的基本任务是什么?

需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。

基本任务:

⑴问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。

⑵分析与综合,导出软件的逻辑模型

⑶编写文档:包括编写"需求规格说明书","初步用户使用手册","确认测试计划","修改完善软件开发计划"

⒉什么是结构分析方法?该方法使用什么描述工具?

结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。

⒊结构化分析方法通过哪些步骤来实现?

⑴了解当前系统的工作流程,获得当前系统的物理模型。⑵抽象出当前系统的逻辑模型。⑶建立目标系统的逻辑模型。⑷作进一步补充和优化。

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

数据流图(DFD):以图形的方式描述数据在系统中流动和处理的过程。只反映系统必须完成的逻辑功能,是一种功能模型。

⒍什么是数据字典?其作用是什么?共有哪些条目?

数据字典(DD)用来定义数据库流图中的各个成分的具体含义。有以下四类条目:数据流,数据项,数据文件,基本加工。

⒎描述加工逻辑有哪些工具?

加工逻辑的描述:一般用结构化语言,判定表,判定树

结构化语言是介于自然语言和形式语言之间的一种半形式化语言。它的结构可分里层和内层

⑴外层:用来描述控制结构,采用顺序,选择,重复三种基本结构。

①顺序结构:是一组祈使语句,选择语句,重复语句的顺序排列

②选择结构:一般用IF-THEN-ELASE-ENDIF,CASE-OF-ENDCASE等关键词。

③重复结构:一般用DO-WHILE-ENDDO,REPEAT-UNTIL等关键词。

⑵内层:一般采用祈使语句的自然语言短语,使用数据字典中的名词和有限的自定义词,其动词含义要具体,尽量不使用形容词和副词来修饰。

例:加工逻辑描述为,如果申请者的年龄在21岁以下,要额外收费;如果申请者是21岁以上并是26岁以下的女性,适用于A类保险;如果申请者是26岁以下的已婚男性,或者是26岁以上的男性,适用于B类保险;如果申请者是21岁以下的女性或是26岁以下的单身C类保险。附此之外的其他申请者都适用于A类保险。

⒐简述SA方法的优缺点。

SA方法是软件需求分析中公认的,有成效的,技术成熟,使用广泛的一种结构化分析方法。较适用于开发数据处理类型软件的需求分析。利用图形等半形式化工具表达需求,简明,易读,也易于使用。但也存在一些弱点,表现如下:⑴SA方法仅是一个静态模型,没有反映处理的顺序,即控制流程。

⑵SA方法使用DFD在分析与描述"数据要求"方面是有局限的,只有与数据库技术中的实体联系图(ER图)结合起来,才能较完整地描述用户对系统的需求。

⑶DFD不适合描述人机界面系统的要求,一些人机交互较频繁的软件系统。

⑷SA方法要与形式化方法结合起来,才能更精确地描述软件需求。

⑸要借助需求分析工具,提高需求分析的质量及效率。

10.某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工。20岁至40岁之间,中学文化程度,男性当钳工,女性当车工,大学文化程度都当技术员。年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。请用结构化语言﹑判定表或判定树描述上述问题的加工逻辑。

结构化语言:

CASE 年龄<20

CASE 文化程度初中

分配工种脱产学习

CASE 文化程度高中

分配工种电工

ENDCASE

CASE 年龄<=40.AND.>=20

CASE 文化程度初中.OR.高中

CASE 性别男

分配工种钳工

CASE 性别女

分配工种车工

ENDCASE

ENDCASE

CASE 文化程度大学

分配工种技术员

ENDCASE

ENDCASE

CASE 年龄>40

CASE 文化程度初中.OR.高中

分配工种材料员

CASE 文化程度大学

分配工种技术员

ENDCASE

ENDCASE

第五章(概要设计部分)

1. 什么是软件概要设计?该阶段的基本任务是什么?

把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。称为概要设计或结构设计。

基本任务:⑴设计软件系统结构,具体为:采用某种设计方法,将一个复杂的系统按功能划分为模块。确定每个模块的功能。

确定模块之间的调用关系。

确定模块之间的接口(模块之间传递的信息)

评价模块的结构质量

⑵进行数据结构及数据库的设计

⑶编写概要设计的文档

主要内容有:概要设计说明书,数据库说明书(DBMS的简介,概念模型,逻辑设计,结果)用户手册,修订测试计划(测试的策略﹑方法﹑步骤)

⑷评审:是否完整地实现了规定的功能﹑性能要求。设计方案是否可行。关键的处理及内部接口定义的正确性,有效性,各部分的一致性。

2.软件设计的基本原理包括哪些内容?

⑴模块化:模块是软件的组成部分,是具有独立功能且可命名的一段程序,所有模块组成整体,可以满足问题的要求。模块化即按照一定的原则,将软件划分成若干个模块,每个模块完成一个特定的功能,然后把这些模块按照某种方法组装成一个软件系统。(可降低复杂度、减少工作量)

模块具有以下几种特性:

接口:模块的输入输出。

功能:指模块实现什么功能。

逻辑:描述模块内部如何实现要求及所需的数据。

状态:该模块的运行环境,模块间调用与被调用关系。

⑵抽象:认识复杂现象过程所使用权的工具,只考虑事物本质的共同特性,忽略细节和其它因素。通过抽象确定组成软件的过程实体。

⑶信息隐蔽:将模块实现自身功能的细节与数据"隐蔽"起来。模块间仅交换为完成系统功能所必须的信息。

⑷模块独立性:每个模块只完成系统要求的独立的子功能。

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

内聚和耦合

内聚:又称为块内联系,指模块内部各成分之间相互关联的程度,以高内聚为设计目标。

耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,耦合性越强,独立性越差,以低耦合为设计目标。

4.模块的耦合性有哪几种?各表示什么含义?

⑴内容耦合:一个模块直接操作或修改另一模块的数据,或者不通过正常入口直接转入另一模块

⑵公共耦合:两个或多个模块通过共同引用一个全局数据环境相互作用

⑶控制耦合:模块之间通过传递控制信息相互作用

〔4〕数据耦合:模块之间通过传递数据交换信息

5.模块的内聚性有哪几种?各表示什么含义?

⑴偶然内聚:一个模块各个成分之间毫无关系

⑵逻辑内聚:将几个逻辑上相关的功能放在同一个模块中

⑶时间内聚:一个模块完成的功能在同一时间执行

⑷过程内聚:一个模块内部的处理成分是相关的,而且必须以特定的次序执行

⑸通信内聚:一个模块的所有成分都集中在同一个数据结构上

⑹顺序内聚:一个模块的各个成分同一个功能密切相关,而且一个成分的输出,作为另外一个成分的输入

⑺功能内聚:模块内的所有成分属于一个整体,完成单一的功能。(内聚最高)

6.简述软件结构设计的优化准则。

⑴改进软件结构,提高模块独立性首先设计出软件初始结构,评价该结构,通过模块分解或合并,力求降低耦合提高内聚。

⑵模块的规模应该适中

⑶模块结构的深度、宽度、扇出和扇入应适中

深度:软件结构中控制的层数

宽度:软件结构中同一层次上最大模块总数

扇入:某一模块有多少直接调用它的上级模块数目(越大越好)

扇出:一个模块直接控制(调用)下级模块的数目。(越少越好,3,4个为宜,不超过9个,

"顶层扇出较高,中间扇出较少,底层模块高扇入多"

⑷一个模块的作用域(范围),应处在这个模块的控制域(范围)之内

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

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

7.什么是模块的影响范围?什么是软件的控制范围?它们之间应建立什么关系?

模块的影响范围(作用域):受该模块内一个判定影响的所有模块的集合

模块的控制范围(控制域):这个模块本身以及所有直接或间接从属于它的模块的集合

一个模块的影响范围(作用域),应处在这个模块的模块的控制范围(控制域)内。

8.什么是"事务流"?什么是"变换流"?试将相应形式的数据流图转换为软件结构图

数据流图(DFD)一般可分为"变换流","事务流"两种。

"变换流":由输入﹑输出﹑变换(或称处理)三部分组成,是一顺序结构。

"事务流":它的某个加工,分离成许多发散的数据流,形成许多加工路径,并且根据输入值选择其中一个路径来执行。(这个加工称为事务处理中心)

9.试述"变换分析"﹑"事务分析"设计步骤。

变换分析设计步骤:⑴确定变换中心,逻辑输入和输出。

⑵设计软件结构的顶层和第一层--变换结构:顶层的功能是完成所有模块的控制(名称应是系统名,以体现完成整个系统功能)

第一层至少有三种功能模块:输入﹑输出和变换模块

⑶设计中﹑下层模块,对第一层的模块自顶向下分解。

输入模块由两部分组成:接收数据﹑转换成调用模块所需信息。

输出模块由两部分组成:将数据转换成下属模块所需的形式﹑发送数据

变换模块:对每个基本加工建立一功能模块

⑷设计的优化:输入部分求精,每个物理输入设置专门模块,以体现系统的外部接口。其它输入模块与转换数据模块都很简单时,可将它们合并。

输出部分求精:每个物理输出设置专门模块,其它也可适当合并。

变换部分求精:根据设计准则,对模块适当合并。

事务分析的设计步骤:

⑴确定事务中心和加工路径

⑵设计顶层(事务机构)和第一层顶层模块有两个功能:接收数据和根据事务类型调动相应处理模块。

⑶中下层模块的设计﹑优化工作与变换结构相同。

事务型软件结构包括两部分:接收分支发送分支出通常包括一调度模块,当事务类型不多时,可与主模块合并。

第五章(详细设计部分)

1、详细设计的基本任务是什么,有哪几种描述方法?

答:详细设计的基本任务包括:1、为每个模块进行详细的算法设计 2、为模块内的数据结构进行设计 3、对数据库进行物理设计 4、其他设计 5、编写详细设计说明书 6、评审

详细设计的描述方法有图形、表格和语言,其中图形常用结构化程序流程图、盒图和PAD(问题分析图)为描述工具,语言常用过程设计语言(PDL)来作为工具。

2、结构化程序设计的基本要点是什么?

答:主要有三个:(1)采用自顶向下、逐步求精的程序设计方法

(2)使用三种基本控制结构构造程序。任何程序都可以由顺序、选择、重复(循环)三种基本控制结构构造,这三种基本结构的共同点是单入口、单出口。

(3)主程序员组的组织形式。

3、简述Jackson方法的设计步骤。

答:Jackson方法的设计步骤如下:

(1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图表示这些数据结构。

(2)找出输入数据结构和输出数据结构中有对应关系的数据单元。

(3)按一定的规则由输入、输出的数据结构导出程序结构。

(4)列出基本操作与条件,并把它们分配到程序结构图的适当位置。

(5)用伪码写出程序。

第六章1、程序语言有哪些共同特征?

答:程序语言的共同特征(似为特性更符合题意)是指程序设计语言的语言特性,包括心理特性、工程特性和技术特性三个方面。语言的心理特性对人机通信的质量有主要的影响;语言的工程特性对软件开发成功一否有重要的影响,此外,语言的技术特性也会影响软件设计的质量。

2、在项目开发时选择程序设计语言通常考虑哪些因素?

答:通常要考虑的因素有:

项目的应用领域、软件开发的方法、软件执行的环境、算法和数据结构的复杂性以及软件开发人员的知识等。

4、举例说明各种程序设计语言的特点及适用范围?

答:以常见的一些编程语言为例:

FORTRAN语言,它不仅面向科学计算,数据处理能力也极强。适用于科学工程计算

Pascal语言,具有很强的数据和过程结构化能力,它语言简明,数据类型丰富,程序结构严谨。它是第一个体现结构化编程思想的语言。用于描述结构化算法和科学计算,操作系统的编写

C语言:功能强大,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及数据处理操作符,它还具有汇编语言的某些特征,使程序运行效率高。可用于许多领域,特别是在操作系统等方面有较大优势。SQL:结构化查询语言,用于对数据库进行存取管理。

汇编语言语言,主要用于实时处理和编写系统软件。

C++、Java语言,是面向对象的设计语言,用于面向对象的方开发软件。

5、什么是程序设计风格?为了具有良好的设计风格,应注意哪些方面的问题?

答:程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。

第七章1、软件测试的目的是什么?软件测试中,应注意哪些原则?

答:软件测试的目的是为了发现软件的错误。

软件测试中应注意的原则有:

(1)测试用例应由输入数据和预期的输出数据两部分组成。这样便于对照检查,做到有的放矢。

(2)测试且例不仅选用合理输入数据,还要选择不合理的输入数据。这样能更多地发现错误,提高程序的可靠性。对于不合理的输入数据,程序应拒绝接受,并给出相应的提示。

(3)除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。

(4)应制定测试计划并严格执行,排除随意性。

(5)长期保留测试用例。

(6)对发现错误较多的程序段,应进行更深入的测试。

(7)程序员应避免测试自己的程序。测试是一种"挑剔性"的行为,心理状态是测试自己程序的障碍。

2、什么是白盒测试法?有哪些覆盖标准?试对他们的检错能力进行比较?

答:白盒法测试法把测试对象看作一个打开的盒子,测试人员须了解程序内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。

白盒法有下列几种覆盖标准:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,点覆盖,边覆盖,路径覆盖,从上到下的覆盖标准其检错能力也从弱到强,其中条件组合发现错误的能力较强,凡满足其标准的测试用例,也必然满足前四种覆盖标准。在实际的逻辑测试中,一般以条件组合覆盖为主设计测试用例,然后再补充部分用例来达到路径覆盖的测试标准。

3、什么是黑盒测试法?采用黑盒技术测试用例有哪几种方法?这些方法各有什么特点?

答:黑盒测试法把被测试对象看成是一相黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。

采用黑盒技术测试用例的方法有:等价类的划分、边界值分析、错误推测和因果图。

等价类的划分,是将输入数据按有效的或无效的(也称合理的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试。这样就把漫无边迹的随机测试改为有针对性的等价类测试,用少量有代表性的例子代替大量测试目的相同的例子,能有效地提高测试效率。但这个方法的缺点是没有注意选择某些高效的、能够发现更多错误的测试用例。

边界值分析法一般与等价类划分结合起来。但它不是从一个等价类中任选一个例子做代表,而是将测试边界情况作为重点目标,选取正好等于、刚刚大于和刚刚小于边界值的测试数据。(边界情况是指输入等价类和输入等价类边界上的情况。)这种方法可以查出更多的错误,因为在程序中往往在处理边界情况时易发生错误。

错误推测法是在测试程序时,人们根据经验或直觉推测程序中可能存在的错误,从而有针对性地编写检查这些错误的测试用例。

因果图能够有效地检测输入条件的各种组合可能会引起的错误。它的基本原理是通过画因果图,把用自然语言描述的功能说明转换为判定表,最后为判定表的每一列设计一个测试用例。

这几种方法都不能提供一组完整的测试用例,在实际测试中应把各种方法结合起来使用。

综合策略:就是联合使用上述几种测试方法,尽可能多地发现程序中的错误。

4、软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?

答:软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。

单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计文档。

集成测试是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。

确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。

系统测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一起进行测试。以确定软件是否可以支付使用。

5、单元测试有哪些内容?测试中采用什么方法?

答:单元测试主要针对模块的以下五个基本特征进行测试:

(1)模块接口

(2)局部数据结构

(3)重要的执行路径

(4)错误处理

(5)边界条件

测试的方法是为被测试模块编写驱动模块和桩模块来实现被测试单元的可运行。通过驱动模块来模拟被测试模块的上级调用模块,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结构并输出。桩模块则用来代替被测试模块所调用的模块。它的作用是返回被测模块所需的信息。

6、什么是集成测试?非渐增式测试与渐增式测试有什么区别? 渐增式测试如何组装模块?

答:集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。

非渐增式测试是指首先对每个模块分别进行单元测试,再把所有模块组装成一个完整的系统进行的测试。而渐增式测试就是逐个把未经测试的模块组装到已经过测试的模块上去进行集成测试,每加入一个新模块进行一次集成测试,重复此过程直到程序组装完毕。渐增式测试有两种不同的组装方法:自顶向下和自底向上结合。

两者区别是:

(1)非渐增式方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试往往把单元测试和集成测试合在一起,同时完成。

(2)非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量少。

(3)渐增式可以较早地发现接口之间的错误,非渐增式最后组装时才发现。

(4)渐增式有利于排错,发生错误往往和最近新加入的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。

(5)渐增式比较彻底,已测试的模块和新的模块再测试。

(6)渐增式点用时间较多,但非渐增式所需更多的驱动模块和桩模块也占用一些时间。

(7)非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。

7、什么是确认测试?该阶段有哪些工作?

答:确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相符合。因而需求说明是确认测试的基础。确认测试阶段有两项工作:进行确认测试与软件配置审查。

8、调试的目的是什么?调试有哪些技术手段?

答:调试则是在进行了成功的测试之后才开始的工作。调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错(Debug)。调试的技术手段有简单的调试方法、归纳法、演绎法和回溯法等。

9、将正确答案的编号填入题目空白处:

在白盒测试用例中,有语句覆盖、条件覆盖、判定覆盖、路径覆盖等,其中(A)是最强的覆盖准则。为了对下图所示的程序进行覆盖测试,必须适当地选取测试数据。若X,Y是两个变量,可供选择的测试数据组共有I,II,

III,IV四组(如表中给出),则实现语句覆盖至少应采用的测试数据组是(B);实现条件覆盖至少应采用的测试数据组是(C);实现路径覆盖至少应采用的测试数据组是(D)或(E)。

可供选择的答案:

A:(1)语句覆盖 (2)条件覆盖 (3)判定覆盖 (4)路径覆盖

B~E:(1)I和II组 (2)II和III级 (3)III和IV组 (4)I和IV组 (5)I、II和III组 (6)II,III和IV组(7)I,III和IV组 (8)I、II和IV组

答:A:(4) B:(1) C:(4) D:(5) E:(8)

第八、九、十、十一章

1、说明对象、类、类结构、消息的基本概念。

答:(1)对象:对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。对象包括有形实体、作用、事件、性能说明等类型。对象具有状态和行为。一个对象用数据值来描述它的状态,对象的操作则用于改变状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。对象内的数据具有自己的操作,从而可灵活地专门描述对象的独特行为,具有较强的独立性和自治性,其内部状态不受或很少受外界的影响,具有很好的模块化特点。为软件重用奠定了坚实的基础。

(2)类:具有相同或相似性质的对象的抽象就是类。因此,对象的抽象就是类,类的具体化就是对象,也可以说类的实例是对象。

(3)类结构:类与类之间的结构关系,包括一般-具体结构关系和整体-部分结构关系。

一般-具体关系结构称为分类结构,也可以说是"或"关系或"is a"关系,类的这种层次结构可用来描述现实世界中的一般化的抽象关系,通常越在上层的类越具有一般性和共性,越在下层的类越具体、越细化。

整体-部分结构称为组装结构,它们之间的关系是一种"与"关系,或者是"has a"关系。类的这种层次关系可用来描述现实世界中的类的组成的抽象关系。上层的类具有整体性,下层的类具有成员性。

在类的层次结构中,通常上层的类称为父类或超类,下层类称为子类。

(4)消息:对象之间进行通信的构造叫做消息。在对旬的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。接收消息的对象经过解释,然后给予响应。这种通信机制称为消息传递。发送一条消息的格式是"对象名.方法名(参数)"。

2、说明面向对象的特征和要素。

答:面向对象的特征是:

(1)对象唯一性。每个对象都有自身唯一的标识,在对象生存期中,其标识不变,不同的对象不能有不同的标识。

(2)分类性。是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类

(3)继承性。是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。

(4)多态性。是指相同的操作或函数过程可以作用于多种类型的对象上并获得不同的结果。

面向对象的要素是:(1)抽象。 (2)封装性(信息隐蔽) (3)共享性。

3、说明对象模型的特征,举现实世界的例子,给出它的一般关系、聚集关系的描述。

答:对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述。表现了对象的相互关系。该模型的特征是用对象图来表现对象的结构、属性和操作,它是分析阶段三个模型的核心,也是其他两个模型的框架。

在对象模型中,定义了两种类的层次结构:一般化关系和聚集关系。

一般化关系是在保留对象差异的同时共享对象相似性的一种高度抽象方式,即"一般-具体"的关系。比如下图所示:

聚集关系是一种"整体-部分"关系。在这种关系中,有整体类和部分类之分。如下图所示:

附:选择题

1.软件生存周期包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、(C)、维护等活动。

A.应用 B 检测

C 测试

D 以上答案都不正确

2. 在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于(B)

A 维护时期

B 计划时期C运行时期 D 开发时期

3. 指出PDL语言是(A)

A 伪码

B 高级程序设计语言

C 中级程序设计语言

D 低级程序设计语言

4.两个模块都上用同一张表,这种耦合叫(C)

A 数据耦合

B 控制耦合

C 公共耦合

D 内容耦合

5.SD方法设计的结果是(D)

A 源代码

B 伪代码

C 模块

D 模块结构图

6.以下哪种覆盖是最强的覆盖(B)

A 条件覆盖

B 条件组合覆盖

C 语句覆盖

D 判定覆盖

7.概要设计中可以采用的工具是(D)

A HIPO和ACD

B ACD 和SC

C 结构图

D 层次图加输入\处理\输出图和结构图

8.在对数据流的分析中,主要是找到中心变换,这是从(C)导出结构图的关键。

A 数据结构

B 实体关系

C 数据流图

D E-R图

9.瀑布模型的存在问题是(B)

A 用户容易参与开发

B 缺乏灵活性

C 用户与开发者易沟通

D 适用可变需求

10.在数据流图中,椭圆代表(C)

A 源点

B 终点

C 加工

D 模块

11.使用软件时提出增加新功能就必须进行(C)维护。

A 校正性维护

B 适应性

C 完善性

D 预防性

12.计算机辅助软件工程,简称(D)

A SA

B SD

C SC

D CASE

13.面向对象分析的三个模型中对象模型描述了系统的(A)

A 数据结构

B 控制结构

C 功能

D 完整的数据变化

14.在多层次的结构图中,其模块的层次数称为结构图的(A)

A 深度

B 跨度

C 控制域

D 粒度

15.模块的内聚性最高的是(D)

A 逻辑内聚

B 时间内聚

C 偶然内聚

D 功能内聚

补充选择题:1、瀑布模型本质上是一种(A )。

A、线性顺序模型

B、顺序迭代模型

C、线性迭代模型

D、及早见产品模型

2、程序设计语言的工程特性之一为( B)。

A、数据结构的描述性

B、软件的可重用性

C、抽象类型的描述性

D、数据库的易操作性

3.软件生命周期中所花费用最多的阶段是(D )。

A.详细设计 B.软件编码 C.软件测试 D.软件维护4.程序的三种基本控制结构是( B )

A.过程、子程序和分程序 B.顺序、选择和循环

C.递归、堆栈和队列 D.调用、返回和转移

5.在详细设计阶段,经常采用的工具有( A )

A.PAD B.SA C.SC D.DFD

6.需求分析中开发人员要从用户那里了解(A )

A.软件做什么 B.用户使用界面

C.输入的信息 D.软件的规模

7.结构化程序设计主要强调的是( D )

A.程序的规模 B、程序的效率

C、程序设计语言的先进性

D、程序易读性

8.经济可行性研究的范围包括( C )

A.资源有效性 B.管理制度 C.效益分析 D.开发风险

9.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出( B )的回答。

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、软件是一种( C )。

A、程序

B、数据

C、逻辑产品

D、物理产品

15、在数据流图中,○(椭圆)代表( C )。

A、源点

B、终点

C、加工

D、模块

16、模块内聚度越高,说明模块内各成分彼此结合的程度越( B )。

A、松散

B、紧密

C、无法判断

D、相等

17、软件设计阶段的输出主要是( D )。

A、程序

B、模块

C、伪代码

D、设计规格说明书

18、软件需求分析是保证软件质量的重要步骤,它的实施应该是在( C )。

A、编码阶段

B、软件开发全过程

C、软件定义阶段

D、软件设计阶段

19、软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试( D )。

A、结构合理性

B、软件外部功能

C、程序正确性

D、程序内部逻辑

20、软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要建立( D )。

A、软件结构

B、软件过程

C、软件模型

D、软件模块

21、检查软件产品是否符合需求定义的过程称为( A )。

A、确认测试

B、集成测试

C、验收测试

D、验证测试

22、“软件危机”产生的主要原因是( B )。

A.软件日益庞大

B.开发方法不当

C.开发人员编写程序能力差

D.没有维护好软件

23、软件工程学的一个重要目标是( D )。

A.提高程序的执行效率

B. 降低程序对存储空间的要求

C.提高软件的可理解性

D. 提高软件的可维护性

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

A.确定系统的性能要求

B.确定系统的运行要求

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

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

25、按测试数据执行程序逻辑程度判断,条件覆盖( A )判定覆盖。

A.强于

B.弱于

C.等价于

D.不一定等价于

26.研究开发所需要的成本和资源是属于可行性研究中的( B )研究的一方面。

A.技术可行性

B.经济可行性

C.社会可行性

D.法律可行性

软件工程模拟题1带答案

软件工程期末试卷A 试题一、结构化分析与设计(共20分,每小题10分) 需求陈述: 高考录取统分子系统有如下功能: (1)计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件; (2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。 要求:用结构化方法学对高考录取统分子系统进行分析与设计,分别完成以下工作: (1)给出高考录取统分子系统的功能模型(用数据流图表示)。(10分) (2)给出高考录取统分子系统的软件体系结构(用H图或结构图表示)。(10分) 答案网上搜的答案 let计创 结构图即软件的模块

软件结构答案 试题二、F面是程序流程图,试分别用表示。(共20分) 答案: 我做的: do {

if( ! P) { g ; } while(q); 我自己做的,可以不太对 始 开 q 为真

执行 do nothing Else if(g 为假) return } Else if(p 为假) { Return }while(g 为真) 试题三、(共20分,每题10分) float calculateTotal( int N) { float count = 0.0; int i=1; while ( i<=N ) Do lf(p 为真) lf(g 为真) 阅读下面的程序段,回答后面的问题: //计算满足条件的N 个数的和

{ if( i % 4 == 0) cou nt += i; i++; } retur n count; } (1)画出上述程序的有向流图,并计算该函数的环形复杂度。 (每问5分,共10分) (2)请用基本路径的 测试技术完成该函数的 测试。要求给出 基本路径和测试用例。(每问5 分,共 10分) 答:这道题课本上没有知识点,从网上搜出来的,知识点见“测试基础” 对应的测试用例 N=1 对应的测试用例N=4 试用例N=0 对应的测试用例 N=1 (?? ?不太确定) 对应的测试用例 N=4 对应的测试用例 N=4 PPT 的P30页 白盒测试代码分支图的环形复杂度计算: 环形复杂度以图论为基础, 为我们提供了非常有用的软件度量。 算环形复杂度: (1)控制流图中环形区域的数量对应于环形复杂度。 可用如下三种方法之一来计 (2)给定控制流图 N 是控制 G 的环形复杂度 一V(G),定义为V(G) = E-N+2其中,E 是控制流图中边的数量, 流图中 的节点数量。 (3)给定控制流图 其中,P 是控制流图G 中判定节点的数量。 以上输出路径的节点。 环形复杂度V(G)=区域数=边-结点+2= 4 G 的环形复杂度 一V(G),也可定义为 V(G) = P+1 何为判定节点:即存在一个输入,两个或两个 判定结点+1 环形复杂度3 基本路径3条 路径 1 : 1-2-3-4-6-3-7 路径 2 : 1-2-3-4-5-6-3-7 路径3 : 1-2-3-7 对 路径 1 : 1-2-3-4-6-7 路径 2 : 1-2-3-4-5-6-7 路径 3 : 1-2-3-4-6-3-7

软件工程复习试题及答案.

一、填空题(在下划线上填写正确的答案,每题2分,共20分) 1.等价划分是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数。 2.数据流图和数据字典共同构成了系统的逻辑模型。 3.盒图也称为N-S图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。 4.软件有效性,指软件系统的时间和空间效率。 6.数据流图有四种基本成分:源、终点,处理,存储,数据流。 7 中数据项是组成数据流和数据存储的最小元素。 8.软件工程中的结构化分析SA是一种面向数据流的分析方法。 9.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个由下而上的过程。 10.耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚、低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。 1.常用的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型。2.软件生存周期一般可分为问题定义、可行性研究、需求分析、设计、编码、单元测试、运行与维护阶段。 3.软件测试的步骤:单元、集成、系统、验收。 4.数据流图的基本符号包括加工、数据流、数据存储文件、汇点。5.IPO图由输入、处理和输出三个框组成。这个图的特点是能够直观的显示三者之间的关系。 6.面向对象方法是一种运用类、实例、属性、重载、消息传送、多态性等概念来构造系统的软件开发方法。 7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程。8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动。 9.为了获得较高的模块独立性,尽量设计出具有高内聚和低藕合性能的模块。10.常用的测试方法有黑盒测试和白盒测试。 1.可行性研究,应从技术可行性、经济可行性、运行可行性和法律和社会效益

软件工程复习题

一、单选题 1.软件结构图的形态特征能反映程序重用率的是() a)A、深度 B、宽度C、扇入 D、扇出 2.在大型数据处理系统的功能分析和设计中,数据库的概念设计对应于系统开发的( ) a)A、需求分析 B、概要设计C、详细设计 D、程序设计 3.为了提高模块的独立性,模块内部最好是() a)A、逻辑内聚 B、时间内聚C、功能内聚 D、通信内聚 4.需求分析最终结果是产生() a)A、项目开发计划 B、需求规格说明书C、设计说明书D、可行行分析报告 5.软件是一种() a)A、程序 B、数据C、逻辑产品 D、物理产品 6.信息隐蔽概念与()概念有直接的关系 a)A、模块的独立性 B、模块类型的划分C、软件结构定义 D、软件生命周期 7.不属于序言性注释的有() a)A、模块设计者B、修改日期C、程序的整体说明D、语句功能 8.单元测试阶段主要涉及()的文档。 a)A、需求设计 B、编码和详细设计C、详细设计D、概要设计 9.在软件测试中,白盒测试方法是通过分析程序的()来设计测试用例的方法。( ) a)A、应用范围B、内部逻辑C、功能 D、输入数据 10.需求分析是系统分析师经了解用户的需求,认真仔细的调研、分析,最终建立目标系统 的逻辑模型并写出() a)A、模块说明书B、软件规格说明书C、项目开发计划 D、合同文档 11.系统因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为( ) a)A、系统软件B、容错软件C、测试软件 D、操作系统 12.产品管理包括版本管理和() a)A、质量管理 B、性能管理C、开发过程管理 D、配置管理 13.ISO9001质量管理体系认证等同于能力成熟度模型中的第几级() a)A、CMM1 B、CMM2 C、CMM3 D、CMM4 E、CMM5 14.ISO9001质量管理体系认证只做到() a)A、历史记录可查询B、错误原因可查询 15.为了克服软件危机,人们提出了用()的原理来设计软件,这就是软件工程诞生的基础。 a)A、数据B、软件学C、运筹学D、工程学 16.可行性研究的目标是() a)A、开发项目B、项目是否值得开发C、规划项目 D、维护项目 17.结构化程序设计思想的核心是要求程序只由顺序、循环和()三种结构组成A、 选择 B、单入口C、单出口D、有规则的GOTO 18.纠错是由()完成的

软件工程模拟试题1

《软件工程模拟试题及参考答案》(一) 一、单向选择题(四选一、每小题3分,共18分) 1、OO面向对象(Object Oriented)方法是将现实世界的事物以对象的方式( B )到计算机世界的方法。 对应 映射 反映 反射 2、盒图也称为(D)或Chapin图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。 流程图 框图 判定表 N-S图 3、面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的(A)结构。 程序 数据 逻辑 物理 4、人机界面的风格大致经过了(B)代的演变。 三 四 五 六 5、以下不属于白盒测试技术的是(D)。 逻辑覆盖 基本路径测试 循环覆盖测试 等价类划分 6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。 纠错性维护 适应性维护 改善性维护 预防性维护 二、填空题(每空2分,共18分) 1.文档—一种数据媒体和其上所记录的(数据)。 2.机器语言、汇编语言:依赖于机器,面向(机器)。 3.软件有效性,指软件系统的时间和(空间)效率。 4.软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。 5.软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。 6.为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。 7.一个软件的深度是指其控制的(层数)。 8.以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并

开始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 最终可运行的代码的过程叫(编码)过程。 9.软件维护是软件生命周期的(最后)一个阶段。 四、简答题(每小题4分,共20分) 1、计算机软件——与计算机系统操作有关的程序、规程、规则及任何与之有关的文档和数据。0101 2、需求分析的任务是什么? 需求分析的任务是确定待开发的软件系统“做什么”。具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册。 3、软件项目的成本管理——估算软件项目的成本,作为立项和签合同的依据之一,并在软件开发过程中按计划管理经费的使用。 4、快速原型技术的基本思想是什么? 在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,然后开发人员根据用户的意见对原型进行改进。 5、程序设计语言的有哪些特点? 1)一致性 2)二义性 3)紧致性 4)局部性 五、综合题(每小题10分,共20分) 1、可将软件生存周期划分为哪3个过程和哪9个阶段。 解:(1)3个过程是:软件定义过程、软件开发过程、软件使用与维护过程。 (2)9个阶段有:可行性研究、需求分析、概要设计、详细设计、实现、组装测试、验收测试、使用与维护、退役。 2、画出与图1所示的程序流程图对应的程序图,并试计算其巡回秩数V(G)。 解:(1)程序图如(图2)所示: (2)计算其巡回秩数:V(G)=E –N +2=13 –10 +2=5 (图一)(图二)

2010软件工程复习题及参考答案

中南大学现代远程教育课程考试复习题及参考答案 软件工程 一、选择题: 1.下面哪些UML图描述系统行为() A.用例图 B.类图 C.对象图 2.属于概要设计活动的是() A.软件结构设计 B.数据结构设计 C.算法设计 3.属行为型设计模式的是() A.组合模式 B.工厂方法模式 C.观察者模式 4.下列说法正确的是() A.UML是软件开发方法 B.UML是系统描述语言 C.UML是软件开发过程 5. 根据程序流程图划分的模块通常是() A. 信息内聚的模块 B. 过程内聚的模块 C.逻辑内聚的模块 6.如果某程序中的比较个数是m,则其McCabe环形复杂度为() A.m-1 B.m C.m+1 7.按ISO9000-3的说明,下列属软件配置项的是() A.软件开发方法 B.软件开发组织管理制度 C.软件开发合同 8. 软件测试的目的是() A.证明软件无错 B.发现软件中的所有错误 C.尽可能发现软件系统中的错误 9.软件重构关注的是() A. 软件体系结构 B. 模块细节 C.软件性能 10.软件项目开发计划的内容有() A. 数据分析 B.风险分析 C.功能分析 11.在UML的类图中,描述整体与部分关系的有() A.泛化关系 B.聚合关系 C.依赖关系 12.软件过程能力成熟度模型CMM用以评价() A.软件过程能力 B.组织能力 C.学习能力 13. 因计算机硬件和软件环境的变化而作出的修改软件的过程称为() A. 完善性维护 B. 改正性维护 C.适应性维护 14. 对项目软件而言,软件功能需求信息主要由谁提供() A.软件用户 B.软件开发人员 C.软件项目管理人员 15. IDEF0图反映不出() A.系统做什么 B.系统功能由谁做 C.系统如何做 16. 原型模型是一种什么开发过程模型() A.自顶向上 B. 由外至内 C.增量式 17. 系统流程图描述() A.物理系统 B.逻辑系统 C.软件体系结构 18.需求规格说明书的内容不应该包括() A.软件确认准则 B.软件的性能描述 C.算法过程的详细描述 19.适合需求模糊或需求不确定系统开发的软件开发模型有() A. 瀑布模型 B. RAD模型 C.原型模型 20.UML图中描述系统结构的有() A. 组件图 B. 顺序图 C.状态图 21.面向对象方法是一种什么软件开发方法() A.层次化 B.迭代增量式 C.逐步求精 22.不可以用来衡量软件可维护性的有() A.可靠性 B.可用性 C.可行性 23. 系统分析员在需求分析最后负责编写()

软件工程复习题

一、判断 1、文档是软件产品的一部分,没有文档的软件就不称其为软件。对 2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。错 3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。错 4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。错 5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。错 6、软件配置管理是一组标识、组织和控制修改源程序的活动。错 7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。错 8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。对 改错 (1).(×)在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。 改正:在软件开发的过程中,一个错误修复和改正得越晚,为此所花费的代价就会越高。 (2).(√)在需求分析中,分析员要从用户那里解决的最重要的问题是明确软件做什么。 (3).(×)软件需求规格说明书在软件开发中具有重要的作用,是软件可行性分析的依据。 改正:软件可行性分析应在需求分析之前,因此,软件需求规格说明书不应成为软件可行性分析的依据。 (4).(√)模型是对现实的简化,建模是为了更好地理解所开发的系统。 (5).(×)UML语言支持面向对象的主要概念,并与具体的开发过程相关。 改正:UML语言支持面向对象的概念,并独立于具体的开发过程。 (6).(√)用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。 (7).(×)好的测试用例应能证明软件是正确的。 改正:好的测试用例在于能发现至今未发现的错误。 (8).(√)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。 二、填空

《软件工程》期末复习题1

考试时间: 16周周一5,6节 考试地点: 二教419 406 408 考试题型: 选择题:20分 简答题:30分 应用题:50分 各章内容及题型总结: 第1,2章本章的主要题型是选择题和简答题。 1. 软件危机的主要表现是什么?答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。 2. 软件工程的定义?答:软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。 IEEE的定义:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。 3. 软件工程研究的主要内容是什么?答:软件开发技术和软件开发管理两个方面。软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。 4. 软件工程的7条基本原理是什么?答:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。 5. 什么是软件生命周期?答:指一个软件从提出开发要求开始到该软件报废为止的整个时期。通常将软件的生命周期划分为可行性研究、需求分析、设计、编码、测试、集成、维护阶段。 6. 软件过程的定义?答:软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。 7. 你能举出几个典型的软件过程模型吗?答:主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。模型的选择是基于软件的特点和应用领域。 8. 目前,主流的软件开发方法有哪些?答:结构化方法和面向对象方法。 9. 软件工程师职业道德规范的8组关键词是什么?1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP)联合工作组制订了《软件工程师职业道德规范》,规范含有8组由关键词命名的准则:公众、客户和雇主、产品、判断、管理、专业、同行、自身。 10. 职业化软件工程师要注意的十大问题是什么?答:①高质量地完成任务②遵守行业标准,不能肆意按照自己的想象来发挥③积极帮助他人④版权意识敏感⑤严格遵守计划⑥公私分明⑦注意知识更新⑧善于沟通⑨遵守职业规则⑩诚实和正直。 第3章本章的题型主要是选择题。 1. 可行性研究的目的是什么?答:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2. 可行性研究的四大要素是:经济上可行,技术可行,法律允许、社会环境可行。 3. 可行性研究的实质:是要进行一次简化了的系统分析和设计过程。首先要分析和澄清问题定义,导出系统的逻辑模型,探索若可供选择的方案,对每种方案仔细研究它的可行性。推荐一个较好的解决方案和一个初步的计划。 第4,5章本章的题型有选择题。 2. 什么是需求工程?需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。

软件工程练习题目及答案

1.某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱 产学习,高中文化程度当电工;年龄在20岁至40岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员;年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。请用PDL语言、判定表和判定树分别描述上述问题。 答:PDL语言描述: If(年龄<20){ If(文化程度=”初中”){ 脱产学习; } Else if (文化程度=”高中”){ 当电工; } } Else if (年龄<40){ If(文化程度=”初中” ||文化程度=”高中”){ If(性别=”男”){ 当钳工; } Else { 当车工; } }

Else{ 当技术员; } } Else{ If(文化程度=”初中” ||文化程度=”高中”){当材料员; } Else { 当技术员; } } 判定表

判定树 ---20<=<40----???? ?? ???????????? ?? ??????? 初中文化程度脱产学习 年龄<20高中文化程度电工女性车工中学文化程度年龄男性钳工大学文化程度技术员中学文化程度材料员年龄>=40大学文化程度技术员 2. 某考务管理系统有如下要求: (1)对考生送来的报名表进行检查; (2)对合格的报名表编好准考证号码后将准考证送给考生,并将汇总后的考生 名单送给阅卷站; (3)对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合 格者; (4)填写考生通知单(内容包含考试成绩及合格∕不合格标志),送给考生; (5)按地区、年龄、文化程度、职业、考试级别等进行成绩分类统计及试题难 度分析,产生统计分析表。 画出该系统的分层数据流图。

软件工程复习题及答案

二、填空题 1.为了支持软件人员开发和维护活动而使用的软件一般是指___软件工具_____。 3.在软件结构的设计中,各个模块之间要力求降低耦合性,提高__内聚性_____。 5.数据流图(DFD)一般可分为变换型和__事务性_____两类。 6.软件维护的内容包括校正性维护、适应性维护、__完善性维护__和预防性维护。 7.软件的生产经历了三个阶段,分别是程序设计时代、程序系统时代和___软件工程时代___。8.渐增模型是瀑布模型的变种,分为两类:增量构造模型和__演化提交模型__。 9.状态图反映了_事件与状态____的关系。 10.软件项目管理过程一个关键的活动是__制定项目计划__,它是软件开发工作的第一步。11.组成软件的两个部分是:____程序和文档________。 14.变换型数据流图是由输入、__变换(或处理)_____和输出三部分组成的。15.Jackson方法是一种面向___数据结构_____的开发方法。 16.结构化语言是介于___自然语言_____和形式语言之间的一种半形式语言。 17.软件产品在交付使用之前一般要经过___单元测试___、集成测试、确认测试和系统测试。18.不采用软件工程的方法开发软件,软件只有程序而无文档,从而导致维护工作困难,这是一种__结构化______的维护。 19.子类自动共享父类数据结构和方法的机制是___继承性_____,这是类之间的一种关系。21.软件生产的发展经历了三个阶段,分别是程序设计时代、程序系统时代和___软件工程____时代。 22.可行性研究从以下三个方面研究每种解决方法的可行性:经济可行性、社会可行性和__技术可行性____。 23.HIPO图的H图用于描述软件的层次关系,矩形框表示一个模块,矩形框之间的直线表示模块之间的____调用_____关系。 24.数据流图描绘数据在系统中___流动和处理___的过程。 25.为了便于对照检查,测试用例应由输入数据和预期的___输出结果(输出数据)____两部分组成。 26.软件详细设计阶段常采用的工具有图、表和____语言_______。 28.实现容错技术的主要手段是__冗余_____。 29.软件开发环境的目标是提高软件开发的生产率和__降低软件的费用__。 32.软件工程管理中的控制包括进度控制、人员控制、经费控制和_____质量控制______。33.软件开发的原型模型可以分为三类,它们是:探索型原型、实验型原型和_演化型原型34.软件复杂性主要表现在程序的复杂性。程序的复杂性主要指___模块内___程序的复杂性。35.白盒法中,__基本路径测试_______首先以详细设计或源程序为基础,导出控制流程图的拓扑结构(程序图)。 36.在软件的详细设计中,根据控制流程从上到下,从左到右展开的设计工具是__PAD图。37.一个模块通过传递开关、标志对某一模块的多种功能进行选择,则这两个模块之间的耦合方式是__控制耦合______。 38.结构化分析是面向__数据流_____进行需求分析的方法。

软件工程期末试题及答案

软件工程期末试题及答案 选择题 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)如何组织软件评审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)编码

软件工程复习题及答案

软件工程复习题(一) 一、选择题 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、开发完毕才见到产品 B、及早提供全部完整的软件产品 C、开发完毕后才见到工作软件 D、及早提供工作软件 7、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( ) A、条件覆盖法 B、等价分类法 C、边界值分析法 D、错误推测法 8、软件详细设计主要采用的方法是( ) A、模块设计 B、结构化设计 C、PDL语言 D、结构化程序设计 9、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( ) A、.软件工程 B、软件周期 C、软件危机 D、软件产生 10、按软件生命周期方法设计软件的过程中,画数据流图属于下面哪个阶段的工作() A、需求分析 B、概要设计 C、详细设计 D、软件维护 11、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是() A、探索型模型 B、演化型模型 C、实验型模型 D、提交型模型 12、程序设计语言的工程特性之一为( ) A、软件的可重用性 B、数据结构的描述性 C、抽象类型的描述性 D、数据库的易操作性 13、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( ) A、可用性 B、可靠性 C、正确性 D、完整性 14、模块设计中,最不希望的内聚是() A、功能内聚 B、通信内聚 C、过程内聚 D、偶然内聚 15、实施快速原型模型方法开发软件的关键在于() A、CASE工具的支持 B、如何开发演化型模型 C、项目主管的支持 D、开发人员的素质 16、程序流程图(框图)中的箭头代表( )。 A、数据流 B、控制流 C、调用关系 D、组成关系 17、一个只有顺序结构的程序,其环形复杂度是( )。 A、0 B、1 C、3 D、不确定的

软件工程期末复习题参考答案

软件工程期末复习题 选择题 1.软件设计中划分模块的一个准则是(C)。 A低内聚低耦合 B低内聚高耦合 C高内聚低耦合 D.高内聚高耦合 2.(A)是用户和设计交换最频繁的方法。 A、原型化方法 B、瀑布模型法 C、螺旋模型方法 D、构件组装模型 3.试判断下列叙述中,哪个些是正确的(C)。 a、软件系统中所有的信息流都可以认为是事务流 b、软件系统中所有的信息流都可以认为是变换流 c、事务分析和变换分析的设计步骤是基本相似的 A、a B、b C、c D、b和c 4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C) A、硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、开发人员的素质 5.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言(D) A、PASCAL B、VISUAL BASIC C、C++

D、汇编语言 6.软件测试的目的是?(D) A.软件的正确性 B.找出软件系统中存在的所有错误 C.证明软件系统中存在错误 D.尽可能多的发现软件系统中的错误 7.使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。 A、程序的内部逻辑 B、程序的复杂程度 C、该软件的编辑人员 D、程序的功能 8.软件维护工作的最主要部分是(C)。 A、纠正性维护 B、适应性维护 C、完善性维护 D、预防性维护 9.PDL是(B)语言。 A.高级程序设计语言 B、伪码式 C、中级程序设计语言 D、低级程序设计语言 10.软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要建立(C)。 A、软件结构 B、软件过程 C、软件模型 D、软件模块 11.在数据流图中,○(椭圆)代表(B) A、数据流 B、转换 C、数据源 D、外部实体

《软件工程》模拟试卷 (1)

软件工程概论考试模拟试卷 科目:软件工程概论 专业: 一、 单项选择题:在每小题列出的四个备选答案中只有一个....答案.. 是符合题目要求。请将正确答案填入“单项选择题答题表”对应的格中。未填入答题表、 (每小题1分,本题共计20分) 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. 数据库设计 B. 数据通信 C. 数据定义 D. 数据维护 7. 使用实体-联系图(ER图)建立的概念性数据模型中包含3种互相关 联的信息:()。 A.数据对象,属性,方法 B.数据对象,属性,联系 C.数据表,属性,联系 D.数据表,实体,联系 8. 模块的内聚性最高的是( )。 A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚 9. 在软件工程中,描绘软件结构的图形工具不包括()。 A. 层次图 B. HIPO图 C.PAD图 D.H图 10. 提高程序可读性的手段包括( )。 A.使用三种标准控制结构 B.采用有实际意义的变量名 C. 给程序加注释 D.以上都是 11. 结构化设计又称为( )。 A. 概要设计 B. 面向数据流的设计 C. 面向对象设计 D. 详细设计 12. 在结构化设计方法中全面指导模块划分的最重要的原则是 ( )。 A.程序模块化 B. 模块高内聚 C. 模块低耦合 D. 模块独立性 13. 为了提高软件的可维护性,在编码阶段应注意( )。 A.保存测试用例和数据 B.提高模块的独立性 C.文档的副作用 D.养成好的程序设计风格 14. 下列属于维护阶段的文档是 ( )。 A.软件规格说明 B.用户操作手册 C.软件问题报告 D.软件测试分析报告 15. 软件测试中,黑盒法是通过分析程序的()来设计测试用例的。 A.应用范围 B.内部逻辑 C.功能 D.输入数据16. 为了满足用户在使用过程中对软件提出的新的功能与性能要求,需要 对原来的软件的功能进行修改或扩充。这种维护的维护类型是()。 A.改正性维护 B.适应性维护 C.完善性维护 D.预防性维护17. 软件调试技术包括()。 A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试18. 在整个软件维护阶段所花费的全部工作中,哪种维护所占比例最大? () A.改正性维护 B.适应性维护 C.完善性维护 D.预防性维护

软件工程习题(附(附答案))

第一章概述 1.软件产品具有哪些特性? 答:软件是一种逻辑案件,而不是具体的物理实体,具有抽象性 软件是通过人的智力活动,将知识和技能转化成为信息的一种产品,是在研制,开发中被创造出来的 a.软件产品是一种逻辑产品. b.软件产品的生产主是研制,软件产品的成本主要体现在软件的... c.开发的软件可维护性差. d. 开发的软件可靠性差 ⑴是一种逻辑产品,与物质产品有很大的区别. ⑵软件产品的生产主要是研制,成本主要在开发和研制,开发完成后,通过复制就产生了大量软件产品. ⑶软件产品不会用坏,不存在磨损,消耗. ⑷生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是"定做"的 ⑸开发软件的费用不断增加,致使生产成本相当昂贵. (6)其质量往往靠不住,缺乏可见性 2.简述什么是软件工程? 答: 软件工程软件工程是开发、运行、维护和修复软件的系统方法,其中“软件” 的定义为计算机程序、方法、规则、相关的文档资料以及计算机上运行时所必须 的数据;软件工程是一门科学,其目的是生产无故障的、软件,且交付及时,不 超过预算,并满足用户要求; 3.软件生命周期可分为哪三个时期?GB 8567中规定可分为哪几个阶段? 答:定义时期:问题的定义(客户需求)、可行性研究(为什么做); 开发时期:需求分析(做什么)、总体设计(怎么做—抽象)、详细设计(怎么实现—具体)、编码(程序设计语实现)测试.。 运行时期:软件维护。 4.依下列叙述确定软件生命周期模型。 M公司的软件产品以开发实验型的新软件为主。用瀑布模型进行软件开发已 经有近十年了,并取得了一些成功。若你作为一名管理员刚加入M公司,你认 为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告简要阐 明你的理由。 答:瀑布模型的缺点在于只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。另外瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要,它已不适宜开发实验型的软件。根据快速原型法的特点,原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。开发人员通过建立原型系统已经学到了许多东西,因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。说明它特别适合于开发探索型、实验型的软件。 5.依下列叙述确定软件生命周期模型。 假设要求你开发一个软件,该软件的功能是

软件工程期末考试复习题

《软件工程》选择题 一、选择题(在每小题得四个备选答案中,选出一个正确答案,并将正确答案得序号填在题干得括号内,每小题1分) 软件工程 1、软件产品得开发主要就是(D )。 A、复制B、再生产C、拷贝 D、研制 2、作坊式小团体合作生产方式得时代就是(C )时代。 A、程序设计B、软件生产自动化 C、程序系统 D、软件工程3、软件工程与计算机科学性质不同,软件工程着重于(C )。 A、理论研究 B、原理探讨 C、建造软件系统 D、原理得理论 4、与计算机科学得理论研究不同,软件工程就是一门(C)学科。 A、理论性B、原理性C、工程性D、心理性 5、软件工程得出现主要就是由于( C )。 A、程序设计方法学得影响 B、其它工程科学得影响 C、软件危机得出现 D、计算机得发展 6、在软件工程项目中,不随参与人数得增加而使软件得生产率增加得主要问题就是( D ) A、工作阶段间得等待时间 B、生产原型得复杂性 C、参与人员所需得工作站数 D、参与人员之间得通信困难 7、软件工程方法学得目得就是:使软件生产规范化与工程化,而软件工程方法得以实施得 主要保证就是(C ) A、硬件环境 B、软件开发得环境 C、软件开发工具与软件开发得环境D、开发人员得素质 8、下列不属于软件工程方法学三要素得就是( D ): A、方法 B、工具 C、过程 D、操作 周期 1、将每个模块得控制结构转换成计算机可接受得程序代码就是(A )阶段得任务。 A、编码 B、需求分析 C、详细设计 D、测试 2、可行性研究得目得就是决定( B )。 A、开发项目 B、项目值得开发否 C、规划项目 D、维护项目 3、据国家标准GB8566-8计算机软件开发得规定,软件得开发与维护划分为八个阶段,其中组装测试得计划就是在( C )阶段完成得? A、可行性研究与计划 B、需求分析 C、概要设计D、详细设计4、初步用户手册在( B )阶段编写。 A、可行性研究B.需求分析C.软件概要设计D.软件详细设计 5、在软件得可行性研究中,可以从不同得角度对软件得可行性进行研究,其中就是从软件得 功能可行性角度考虑得就是(B ) A、经济可行性 B、技术可行性C、操作可行性D、法律可行性 6、瀑布模型把软件生命周期划分为八个阶段:问题得定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试与运行、维护。八个阶段又可归纳为三个大得阶段:计划阶段、开发阶段与( C )。 A、详细计划 B、可行性分析 C、运行阶段D、测试与排错

《软件工程》期末考试题及答案++精华版!!

《软件工程》期末考试样题 一、填空题 1.软件开发模型有(瀑布模型)(螺旋模型)第四代技术模型(原型模型)构件组装模型、混合模型。 2.可行性研究一般可以从(经济)可行性、(技术)可行性、运行可行性、法律可行性和开发可行性等方面来研究。 3.现在向银行存款,年利率为i,若希望在n年后从银行得到F元,现在应该存入的钱数为(F/(1+i)n)。 4.数据流图的基本符号包括(数据输入的源点和数据输出的汇点)、(加工)、(数据流)、(数据存储文件)。 5.Jackson图除了可以表达程序结构外,还可以表达(数据结构),它首先要分析(数据结构),并用适当的工具来描述。 6.详细设计的工具有图形工具)、表格工具和(语言工具)。 7.IPO图由(输入)、处理和(输出)三个框组成。这个图的特点是能够直观的显示三者之间的关系。 8.面向对象技术是一整套关于如何看待(软件系统)和(现实世界)的关系,以什么观点来研究问题并进行分析求解,以及如何进行系统构造的软件方法学。面向对象方法是一种运用(对象)、(类)、(继承)、(封装)、聚集、消息传送、多态性等概念来构造系统的软件开发方法。 二、单项选择题 1.下列( A )属于系统软件。 A.WINDOWS 2000 B.Word C.Flash D.3D MAX 2.下列哪个图是N-S图的构件( C )。 A. B. C. D. 3.对于螺旋模型,下列( D )不是利用笛卡尔坐 标表达的活动。 A. 制定计划 B. 实施工程 C. 风险分析 D. 程序编码 三、多项选择题 1.软件危机可以表现为(ABXD )。 A.产品不符合用户的需要 B.软件产品的质量差 C.软件的可维护性差 D.软件的价格昂贵 2.Jackson图中一般可能包括(ABCD )。 A.表头 B.表体 C.表名 D.字段名 3.关于内容耦合的描述正确的是(AD )。 A、内容耦合是最高程度的耦合 B、应该尽量使用内容耦合 C、高级语言一般设计成允许内容耦合的形式 D、如果一个模块有多个入口,可能发生内容耦合 4.下列属于不标准的书写格式(BCD )。 A、书写时适当使用空格分隔 B、一行写入多条语句 C、嵌套结构不使用分层缩进的写法 D、程序中不加注释 四、判断题(正确的在括号内打上“√”,错误的打上“×”) 1.软件生存周期是从软件开始开发到开发结束的整个时 期。() 2.系统流程图是一个典型的描述逻辑系统的传统工具。 () 3.数据流图和数据字典共同构成系统的逻辑模型。 (1) 4.扇出是一个模块直接调用的模块数目,一般推荐的扇出 为3或4。( 1 ) 5.耦合用于衡量一个模块内部的各个元素彼此结合的紧 密程度。()

软件工程复习题及答案

一、画出实际的瀑布模型p16 三、画出增量模型p18 五、可行性研究的工作过程及内容p36 答:1).复查系统规模和目标; 2).研究目前正在使用的系统; 3).导出新系统的高层逻辑模型; 4).进一步定义问题; 5).导出和评价供选择的解法; 6).推荐行动方针;7).草拟开发计划;8.书写文档提交审查。 六、可行性研究的目的是什么?要如何进行?p35 答:目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。 首先,需要进一步分析和澄清问题定义。之后,分析员应该导出系统的逻辑模型。从系统逻辑模型出发,探索若干可供选择的主要解决方法(即系统实现方案)。对每种解法都应该仔细研究它的可行性,一般来说,至少应该从下述三方面研究每种解法的可行性:(1)技术可行性;(2)经济可行性;(3)操作可行性。必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。 二、画出快速原型模型p17 四、画出简化的螺旋模型p20 软件工程考试复习题

七、需求分析的任务是什么?进行需求分析时要重点考虑哪些方面的问题?p56 答:1、确定对系统的综合要求:1).功能需求——指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。2).性能需求——性能需求指定系统必须满足的定时约束或容量约束,如速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等。3).可靠性和可用性需求——可靠性是指确保各应用及其相关的所有交易的完整性和一致性的能力;可用性是指一个系统应确保一项服务或者资源永远都可以被访问到。4).出错处理需求——说明系统对环境错误应该怎样响应。5).接口需求——描述应用系统与它的环境通信格式。6).约束——在设计或实现应用系统时应遵守的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。7).逆向需求——说明软件系统不应该做什么。8).将来可能提出的要求——应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。 2、分析系统的数据要求。 3、导出系统的逻辑模型。 4、修正系统开发计划。 八、典型的总体设计过程包括哪些步骤?p92 答:典型的总体设计过程包括九个步骤: 1)、设想供选择的方案;2)、选取合理的方案;3)、推荐最佳方案;4)、功能分解;5)、设计软件结构;6)、设计数据库;7)、制定测试计划;8)、书写文档;9)审查和复查。 九、总体设计的主要任务是什么?总体设计的主要过程有哪些?p91 答:主要任务: 总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素—程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。总体设计的另一项重要的任务是设计软件的结构,也就是要确定系统中每个程序是由哪个模块组成,以及这些模块相互间的关系。 主要过程: ①寻找实现目标系统的各种不同的方案。②从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素。③进行成本/效益分析,并且制定实现这个方案的进度计划。从中选出一个最佳方案。④进一步为这个最佳方案设计软件结构。⑤进行必要的数据库设计,确定测试要求并且制定测试计划。 十、何谓耦合?有哪些类型?软件设计应该取哪种类型?p97 答:耦合是对一个软件结构内不同模块之间互连程度的度量。 类型:数据藕合、控制藕合、公共环境藕合、内容耦合 设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。 十一、何谓内聚?有哪些类型?软件设计应该取哪种类型?p98 答:内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。 低内聚有如下几类:偶然内聚、逻辑内聚、时间内聚。中内聚主要有两类:过程内聚、通信内聚。高内聚也有两类:顺序内聚、功能内聚。 设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。

相关文档
最新文档