当前位置:文档之家› 《软件工程》期末考试复习题及参考答案

《软件工程》期末考试复习题及参考答案

《软件工程》期末考试复习题及参考答案
《软件工程》期末考试复习题及参考答案

软件工程复习题

(课程代码252258)

一、填空题(本大题共60小题)

1.数据项是指__不可再分解的___数据单元。

2.软件概要设计的主要任务就是___软件结构的设计___。

3.软件维护的内容包括校正性维持,适应性维护、____完善性维护_____和预防性维护。

4.在建立对象的功能模型时,使用的数据流图中包含有处理、数据流、动作对象和___数

据存储对象___。

5.规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此

软件具有容错功能的软件。

6.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植

性、可使用性和效率。

7.为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。

8.软件结构是以模块为基础而组成的一种控制层次结构。

9.在结构化分析中,用于描述加工逻辑的主要工具有结构化语言、判定表和判定表三种。

10.软件工程是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,

它包括方法、工具和过程三个要素。

11.PDL是一种介于___自然语言___和形式化语言之间的半形式化语言。

12.从软件的功能角度划分,协助用户开发软件的工具性软件称为_支撑__软件

13.消除软件结构中高扇入扇出的做法是______增加中间层次的控制模块_____。

14.如果一个软件系统的全部实际加工都由原子模块来完成,而其他所有非原子模块仅仅执

行控制或协调功能,这样的系统就是____完全因子分解_____的系统。

15.软件的可移植性是指当把软件移植到不同的运行环境时,不需改变其__规格___就能照

原样工作的特性。

16.为满足用户对软件提出的新的要求而对软件进行扩充、改进的维护称为____完善性__

维护。

17.将整个软件划分成若干单独命名和可编址的部分,称之为___模块___。

18.软件需求的____物理视图_____给出处理功能和数据结构的实际表示形式。

19.在面向对象的开发技术中,__类___是一组具有相同数据结构和相同操作的对象的集合。

20.软件不存在磨损和老化问题,但却存在着____退化__问题。

21.软件工程的各个阶段中,________概要设计__________阶段是将软件需求转化为数据结

构和软件的系统结构。

22.需求分析需要依赖_____分析员、程序员和用户_____三类人员才能完成。

23.OMT是指_____对象模型技术_____。

24.可行性研究主要集中在经济可行性、技术可行性、法律可行性和抉择四个方面。其中___

技术___可行性是最难决断的方面。

25.在JSD方法中,TGM是一种能够用于____同步进程__的机制,它是一个数据记录,表

明一个特别时间间隔的存在。

26.需求分析方法由对软件的____数据域和功能域_____的系统分析过程及其表示方法组

成。

27.瀑布模型最突出的缺点是____缺乏灵活性____。

28.JSD方法是一种面向____数据结构____的分析和设计方法。

29.SC图中____模块____是用矩形框来表示的。

30.一个面向对象的程序的每一成分应是___对象___,计算是通过新的对象的建立和对象之

间的通信来执行的。

31.系统分析的第一步就是____识别用户要求____。

32.Goto语句对程序的_____清晰性___有很大的破坏作用。

33.规定功能的软件,如果在一定程序上对自身错误的作用具有屏蔽能力,则称此软件为具

有___容错___功能的软件。

34.软件的___可靠___性表明了一个程序按照用户的要求和设计的目标,执行其功能的正确

程度。

35.从一些错误征兆着手,通过分析它们之间的关系来找出错误的方法叫做__归纳__法。

36.一般技术可行性主要考虑___开发的风险____、资源的有效性和技术三个方面。

37.软件实现阶段中,___编码__的任务就是将软件的详细设计转换成用程序设计语言实现

的程序代码。

38.按软件的功能分类,设备驱动程序属于___系统__软件。

39.SA方法是面向____数据流____进行需求分析的方法,适合于数据处理类型软件的需求

分析。

40._____软件工程过程_____是为获得软件产品,在软件工具支持下由软件工程师完成的一

系列软件工程活动。

41.在软件合成技术中,有三种方式将构件合成更大的构件,它们是连接、消息传递和继承

以及____管理机制____。

42.提高存储器效率的关键是____程序的简单性____。

43.为了解除软件的开发和运行对计算机系统的依赖性,在软件开发中提出了___软件移植

__的问题,并将其作为衡量软件质量的因素之一。

44.在___过程设计____阶段,要决定各个模块的实现算法。

45.测试用例是指输入数据及其___预期的输出结果___。

46.度量模块独立性的两个准则是模块间的____耦合____和模块的__内聚___。

47.在需求分析过程中___数据模型___是首先要集中考虑的问题。

48.Goto语句对程序的___清晰性____有很大的破坏作用。

49.___数据结构____是数据的各个元素之间的逻辑关系的一种表示。

50.第一个真正广泛使用的高级语言是___PL/1___

51.成本效益分析是从____经济____角度评价开发一个新的软件项目是否可行。

52.模块间共享同一全局变量的耦合称为___外部___耦合。

53.按记录的组织方式,文件分为顺序文件、直接存取文件、索引顺序文件、分区文件和虚

拟存储文件以及___倒排文件__六种。

54.DFD的中文名称为数据流程图,它以图形的方式刻画数据流从____输入到输出____的

移动变换过程。

55.所有软件定义与开发工作最终是为了解决____数据处理____问题,也就是将一种形式的

数据转换成另一种形式的数据。其转换过程必定经历___输入___、加工数据和产生结果数据。

56.___耦合___是模块之间的相对独立性(相互连接的紧密程度)的度量。

57.自顶向下,逐步细化的过程实际上是一个___反复推敲____的过程。

58.机器语言和汇编语言都称为面向___机器___的语言。

59.软件的特点之一是开发过程中没有明显的____制造过程____。

60.如果数据设计得好,往往能产生很好的____模块独立性____,具有很强的___和较低的

___程序复杂性____。

二、单项选择题(本大题共65小题)

1.快速原型模型的主要特点之一是( )

A)开发完毕才见到产品B)及早提供全部完整的软件产品

C)开发完毕后才见到工作软件 D)及早提供工作软件

参考答案:D

2.对象模型技术的三个模型中最关键的一个模型是()。

A)功能模型 B)行为模型 C)动态模型 D)对象模型

参考答案:D

3.以下内聚性最强的是()

A)逻辑内聚 B)时间内聚 C)功能内聚 D)通信内聚

参考答案:C

4.结构化分析(SA)方法是一种()的分析方法。

A)面象对象 B)面象数据流 C)面象数据结构 D)面象过程

参考答案:B

5.软件结构图中,模块框之间若有直线连接,表示它们之间存在()

A)调用关系 B)组成关系 C)链接关系 D)顺序执行关系参考答案:A

6.结构化分析(SA)方法是一种()的分析方法。

A)面向对象 B)面向过程 C)面向数据结构 D)面向数据流

参考答案:D

7.软件生存周期中重要的一步,也是决定性的一步是()。

A)需求分析 B)软件设计 C)程序编写 D)软件测试

参考答案:A

8.在以下度量模块独立性的内聚准则的部分内聚类型中,内聚性最强的是()。

A)逻辑内聚 B)时间内聚 C)功能内聚 D)通信内聚

参考答案:C

9.α测试和β测试是在()阶段进行的。

A)单元测试 B)组装测试 C)确认测试 D)系统测试

参考答案:C

10.软件工程的三要素是()。

A)方法、工具和文档 B)方法、工具和过程

C)方法、文档和人 D)方法、过程和人

参考答案:B

11.允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有

逻辑路径进行测试的测试用例设计方法是()。

A)黑盒测试 B)白盒测试 C)选择测试 D)穷举测试

参考答案:B

12.模块的基本属性是()。

A)名称、功能和逻辑 B)名称、逻辑和状态

C)功能、逻辑和状态 D)名称、逻辑和状态

参考答案:C

13.又称为有效性测试的是 ( )。

A)单元测试 B)组装测试 C)确认测试 D)系统测试

参考答案:C

14.在结构化设计(SD)方法中全面指导模块划分的最重要的原则是( )

A)程序模块化 B)模块高内聚 C)模块低耦合 D)模块独立性

参考答案:D

15.选择程序设计语言时()是最重要的因素。

A)项目的应用范围 B)算法复杂性 C)软件执行环境 D)开发人员水平参考答案:A

16.使用程序设计的控制结构导出测试用例的测试方法属于()

A)黑盒测试 B)白盒测试 C)边界测试 D)系统测试

参考答案:B

17.N-S图,也称盒图,是()时使用的一种图形工具。

A)系统结构设计 B)过程设计 C)数据设计 D)接口设计

参考答案:B

18.需求分析最终结果是产生()

A)项目开发计划 B)需求规格说明书

C)设计说明书 D)可行性分析报告

参考答案:B

19.软件模块结构改进的几种试探性原则中,控制范围和作用范围原则是指()。

A)控制范围在作用范围之外B)作用范围在控制范围之外

C)作用范围在控制范围之内D)控制范围在作用范围之内

参考答案:C

20.在一个类中,每个对象都是类的()。

A)实例 B)子集 C)元素 D)成员

参考答案:A

21.以下不是软件需求分析时进行系统动态分析的图形工具是()。

A)状态迁移图 B)时序图 C)Petri网 D)E-R图

参考答案:D

22.数据流图(DFD图)中表示“加工”的图形符号是()。

A)箭头 B)双横线 C)矩形框 D)圆

参考答案:D

23.以下不是软件需求分析时进行系统动态分析的图形工具是()。

A)状态迁移图 B)时序图 C)Petri网 D)E-R图

参考答案:D

24.软件结构图(SC图)中一个模块的扇入是指()。

A)该模块的所有上层模块数 B)该模块的所有下层模块数

C)直接调用该模块的所有上层模块数 D)该模块直接调用的所有下层模块数参考答案:C

25.版本控制是属于()的一项技术。

A)软件分析 B)软件配置管理 C)软件设计 D)软件编码

参考答案:B

26.结构化程序设计的原则中要求每一个控制结构()。

A)只能有一个入口和一个出口 B)可以有一个入口和多个出口

C)可以有多个入口和一个出口 D)可以有多个入口和多个出口

参考答案:A

27.软件开发的资源中,()是最重要的资源。

A)人力资源 B)硬件资源 C)软件资源 D)软件复用性及软件部件库参考答案:C

28.软件是一种抽象的()

A)程序 B)数据 C)逻辑产品 D)物理产品

参考答案:C

29.内聚和藕合是用于度量模块的()的两个指标。

A.独立性 B.复杂性 C.规模 D.可维护性

参考答案:A

30.软件结构图(SC图)中一个模块的扇出是指()。

A)该模块的所有上层模块数 B)该模块的所有下层模块数

C)直接调用该模块的所有上层模块数 D)该模块直接调用的所有下层模块数参考答案:D

31.因计算机硬件和软件环境的变化而作出的修改软件的过程称为( )

A)纠正性维护 B)适应性维护 C)完善性维护 D)预防性维护

参考答案:B

32.软件项目计划的第一项活动是确定软件的()。

A)定义 B)范围 C)用户 D)成本

参考答案:B

33.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入

的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( )

A)条件覆盖法 B)等价分类法 C)边界值分析法 D)错误推测法

参考答案:C

34.以下不属于McCall软件质量模型中的质量特性的是()。

A)结构性 B)完整性 C)正确性 D)效率

参考答案:A

35.软件详细设计的主要任务是确定每个模块的()

A)算法和数据结构 B)外部接口 C)功能 D)编程语言

参考答案:A

36.软件测试的策略将测试过程按4个步骤进行,以下与程序编码阶段同一阶段进行的测试

是 ( )。

A)单元测试 B)组装测试 C)确认测试 D)系统测试

参考答案:A

37.可行性研究主要集中在以下四个方面,其中()是最难决断的方面。

A)经济可行性 B)技术可行性 C)法律可行性 D)抉择

参考答案:B

38.如果一个软件系统是使用类、对象、()和通信这4个概念设计和实现的,则可以

认为这个软件系统是面向对象的。

A)继承 B)复用 C)重载 D)多态

参考答案:A

39.数据流图(DFD图)是()中使用的图形表达工具。

A)JSD方法 B)OMT方法 C)SA方法 D)Booch方法

参考答案:C

40.JSD方法的需求分析阶段不包括()。

A)功能描述 B)实体动作分析 C)实体结构分析 D)定义初始模型参考答案:A

41.以下不属于面向对象开发方法的是 ( )

A)SA/SD方法 B)Coad与Yourdon方法 C)OMT方法 D)Bootch方法

参考答案:A

42.以下不是调试的任务的是()。

A)找出程序是否有错 B)找出错误的位置

C)找到程序错误原因 D)纠正找到的错误

参考答案:A

43.若有一个计算型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的

角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是()。

A)条件覆盖法 B)等价分类法 C)错误推测法 D)边界值分析法

参考答案:D

44.软件需求分析就是把软件功能和性能总体概念描述为具体的( B )。

A)项目开发计划 B)软件需求规格说明 C)设计说明书 D)可行性分析报告

45.目前流行的C语言属于第( C )代程序设计语言。参看: P192

A)一 B)二 C)三 D)四

46.软件开发的资源中,(C )是最重要的资源。

A)人力资源 B)硬件资源 C)软件资源 D)软件复用性及软件部件库47.数据流图(DFD图)中表示“加工”的图形符号是( D )。

A)箭头 B)双横线 C)矩形框 D)圆

48.N-S图,也称盒图,是( B )时使用的一种图形工具。

A)系统结构设计 B)过程设计 C)数据设计 D)接口设计

49.结构化程序设计的原则中要求每一个控制结构( A )。

A)只能有一个入口和一个出口 B)可以有一个入口和多个出口

C)可以有多个入口和一个出口 D)可以有多个入口和多个出口

50.可行性研究主要集中在以下四个方面,其中( B )是最难决断的方面。

A)经济可行性 B)技术可行性 C)法律可行性 D)抉择

51.允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有

逻辑路径进行测试的测试用例设计方法是( B )。

A)黑盒测试 B)白盒测试 C)选择测试 D)穷举测试

52.软件需求分析的主要任务是解决目标系统的( A )的问题。

A)做什么 B)怎么做 C)是否做 D)对谁做

53.以下不是软件需求分析时进行系统动态分析的图形工具是( D )。

A)状态迁移图 B)时序图 C)Petri网 D)E-R图

54.CASE是( D )的英文简称。

A)计算机软件 B)软件工程 C)计算机工程 D)计算机辅助软件工程

55.因计算机外部环境或数据的变化而做出的修改软件的过程称为( C )。

A)纠正性维护 B)完善性维护 C)适应性维护 D)预防性维护

56.版本控制是属于( B )的一项技术。

A)软件分析 B)软件配置管理 C)软件设计 D)软件编码

57.软件项目计划的第一项活动是确定软件的(B )。

A)定义 B)范围 C)用户 D)成本

58.α测试和β测试是在( C )阶段进行的。

A)单元测试 B)组装测试 C)确认测试 D)系统测试

59.数据流图(DFD图)是( C )中使用的图形表达工具。

A)JSD方法 B)OMT方法 C)SA方法 D)Booch方法

60.数据字典是对数据定义信息的集合,它所定义的对象都包含于( A )

A)数据流图 B)程序框图 C)软件结构 D)方框图

61.以下不是软件需求分析时进行系统动态分析的图形工具是(D )。

A)状态迁移图 B)时序图 C)Petri网 D)E-R图

62.以下过程设计表达工具中,不是图形工具的是( D )。

A)PFC B) N-S C)PAD D)PDL

63.软件度量各种方法中的LOC度量法是一种( B )。

A)面向规模的间接度量 B)面向规模的直接度量

C)面向功能的间接度量 D)面向功能的直接度量

64.在以下度量模块独立性的内聚准则的部分内聚类型中,内聚性最弱的是( A )。

A)逻辑内聚 B)时间内聚 C)功能内聚 D)通信内聚

65.软件模块结构改进的几种试探性原则中,控制范围和作用范围原则是指( C )。

A)控制范围在作用范围之外B)作用范围在控制范围之外

C)作用范围在控制范围之内D)控制范围在作用范围之内

三、名词解释(本大题共10小题)

1.软件工程

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

2.数据词典(DD)

数据字典的任务是对于数据流图中出现的所有被命名的图形元素在数据词典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。数据词典中所有的定义应是严密的、精确的,不可有半点含混,不可有二义性。

3.软件生存周期模型

软件生存周期模型是从软件项目需求定义直到软件经使用后废弃为止,跨越整个生存期的

系统开发、动作和维护所实施的全部过程,活动和任务的结构框架。目前有多种软件生存期模型,如瀑布模型、演化模型、螺旋模型、喷泉模型等。

4.SA方法

SA是指结构化分析方法。结构化分析方法是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。基本思想是采用自顶向下,逐步分解的方法分析整个系统,有效地控制系统开发的复杂性。

5.可行性研究

可行性研究是指综合研究一个软件项目是否可以进行或者是否值得进行。可行性研究的主要内容包括经济可行性,技术可行性,社会可行性(法律可行性)以及可行方案的选择等方面。

6.文档

文档是指记录软件生产和维护过程的文字资料。在软件工程中,文档常常用来表示对活动、需求、过程或结果进行描述、定义、规定、报告或认证的任何书面或图示的信息。它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令。文档也是软件产品的一部分,没有文档的软件就不成其为软件。

7.软件工程的三要素

软件工程的三要素是:方法、工具和过程

软件工程方法为软件开发提供了“如何做”的技术;软件工具为软件工程方法提供了自动或半自动的支撑环境;软件工程的过程是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。

8.容错软件

容错软件的定义很多,归纳起来有以下4种:

1)在一定程度上对自身错误的作用具有屏蔽能力

2)在一定程度上能从错误状态自动恢复到正常状态

3)在因错误而发生错误时,仍然能在一定程度上完成预期的的功能

4)在一定程序上具有容错能力

9.模块的独立性

模块独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。一般采用模块间的耦合和模块的内聚这两个准则来度量模块的独立性。

10.SADT

SADT是结构化分析设计技术的英文简称。是D.T.Ross等人于1977年提出来的一种结构化分析与设计的技术,已广泛用于系统定义,软件需求分析,系统设计与软件设计。

四、简答题.

1、什么是软件危机?产生原因是什么?

参考答案:

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

产生原因:

⑴软件规模越来越大,结构越来越复杂。

⑵软件开发管理困难而复杂。

⑶软件包开发费用不断增加。

⑷软件开发技术落后。

⑸生产方式落后,仍采用手工方式。

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

2、什么是软件开发方法?有哪些主要方法?

参考答案:

使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。通过使用成功的软件开发方法,在规定的投资和时间内,开发出符合用户需求的高质量的软件。软件开发方法是克服软件危机的重要方面之一,对软件工程及软件包产业的发展起了不可估量的作用。

主要有:结构化方法,JACKSON方法,维也纳开发方法﹙VDM﹚,面向对象开发方法。

3、软件的一生会经历哪几个阶段?各个阶段的任务是什么?。

参考答案:

正如同任何事物一样,软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程。一般称其为计算机软件的生存期。软件生存周期的六个步骤:

1)制定计划。确定系统目标,给出它的功能、性能、可靠性以及接口等方面的要求,研究完成软件任务的可行性,制定完成开发任务的实施计划。

2)需求分析和定义。对待开发软件提出的需求进行分析并给出详细的定义,然后编写出软件软件需求说明书或系统功能说明书。

3)软件设计。由设计人员把已确定了的各项需求转换成一个相应的体系结构,并进一步对每一个模块要完成的工作进行具体的描述。

4)程序编写。把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的源程序清单。

5)软件测试。在设计测试用例的基础上检验软件的各个组成部分。

6)运行/维护。软件投入正式使用并对软件在运行过程中可能由于多方面的原因,需要对它进行修改。

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

参考答案:

⑴.投资回收率:通常把建立系统若干年后能取得的收益折算成现在的价值和开发系统所需的费用进行比较得出投资回收率。

⑵.投资回收期:就是使累计的经济效益等于最初的投资费用所需的时间。

⑶.纯收入:整个生存周期之内的累计经济效益(折成现在值)与投资之差。

5、软件设计的基本原理包括哪些内容

参考答案:

软件设计的基本原理包括:

⑴模块化:模块是软件的组成部分,是具有独立功能且可命名的一段程序,所有模块组成

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

模块具有以下几种特性:

接口:模块的输入输出。

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

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

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

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

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

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

6、项目开发计划有哪些内容?

参考答案:

⑴.项目概述:说明项目的各项主要工作;说明软件的功能﹑性能;为完成项目应具有的条件;用户及合同承包者承担的工作完成的期限及其他条件限制;应交付的程序名称;所使用的语言及程储形式;应交付的文档。

⑵.实施计划:说明任务的划分,各任务责任人,项目开发进度,项目的预算,各阶段的费用支出,各阶段应完成的任务,用图表说明每项任务的开始和完成时间。

⑶.人员组织及分工:所需人员类型﹑数量﹑组成结构。

⑷.交付期限:最后完工日期。

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

点?。

参考答案:

黑盒测试法把被测试对象看成是一相黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。采用黑盒技术测试用例的方法有:等价类的划分、边界值分析、错误推测和因果图。

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

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

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

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

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

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

8、什么是需求分析?需求分析阶段的基本任务是什么?

参考答案:

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

基本任务:

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

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

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

9、在编码阶段将详细设计转换成源程序代码后,算法效率反映为程序的执行速度和存

储容量的要求。简述编码时为了提高源程序的效率,在转换时应遵守哪些指导原则?

参考答案:

在编码阶段实现算法的指导原则是:

1)在编程序前,尽可能化简有关的算术表达式和逻辑表达式;

2)仔细检查算法中的嵌套的循环,尽可能将某些语句或表达式移到循环外面;

3)尽量避免使用多维数组;

4)尽量避免使用指针和复杂的表;

5)采用“快速”的算术运算;

6)不要混淆数据类型,避免在表达式中出现类型混杂;

7)尽量采用整数自述表达式和布尔表达式;

8)选用等效的高效率算法。

10、画数据流图应注意什么事项?

参考答案:

命名:不能使用缺乏具体含义的名字,加工名应能反映出处理的功能。

画数据流而不是控制流。数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。

一般不画物质流。

每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。

编号:某个加工分解成加一张数据流图时,上层图为父图,下层图为子图。子图应编号子图上的所有加工也应编号,子图的编号应与父图的编号相对应。

父图与子图的平衡:子图的输入输出数据流同父图相应加工的输入输出数据流必须一致

局部数据存储:当某慨数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。

注意数据流图的易理解性。

11、可行性研究报告有哪些主要内容?

参考答案:

可行性分析报告的主要内容包括:

⑴.引言:编写本文档的目的;项目名称﹑背景;本文档用到的专门术语和参考资料。

⑵.可行性研究前提:说明开发项目的功能﹑性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。

⑶.对现有系统的分析:说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需各类专业技术人吧和数量;所需各种设备;向有系统存在什么问题。

⑷.所建议的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有系统比较的优越性;采用所建议系统对用户的影响;对各种设备﹑现有软件﹑开发环境﹑运行环境的影响;对经费支出的影响;对技术可行性的评价。

⑸.所建议系统的经济可行性分析:说明建议系统的确良各种支出,各种效益;收益投资比;投资顺收周期。

⑹.社会因素可行性分析:说明法律因素,对合同责任﹑侵犯专利权﹑侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理﹑工作制度﹑人吧素质的要求。

⑺.其它可供选择方案:逐一说明其他可供选择的方案,并说明未被推荐的理由。

⑻.结论意见:说明项目是否能开发;还需什么条件才能开发;对项目目标有何变动等。

12、系统工程师在需求分析中扮演着什么样的角色?系统工程师应具备什么样的素

质?

参考答案:

系统工程师处于用户和高级程序员之间,负责沟通用户和开发人员的认识和见解,起着桥梁的作用。

系统工程师应当具备如下的素质:

1)能够熟练地掌握计算机硬、软件的专业知识,具有一定的系统开发经验。

2)善于进行抽象的思维和创造性的思维,善于把握抽象的概念,并把它们重新整理成为各种逻辑成份,并给出简明、清晰的描述。

3)善于从相互冲突或混淆的原始资料中抽出恰当的条目来。

4)善于进行调查研究,能够很快学习用户的专业领域知识,理解用户的环境条件

5)能够倾听他人的意见,注意发挥其它人员的作用。

6)具有良好的书面和口头交流表达能力。

13、什么是软件?软件有哪些特点?

参考答案:

软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。

软件的特点有:

1)软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性。

2)软件的生产与硬件不同,它没有明显的制造过程,是通过人们的智力活动,把知识

与技术转化成信息的一种产品。

3)在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。

4)软件的开发与运行深沉受到计算机系统的限制,对计算机系统有着不同程度的依赖

性。

5)软件的开发尚未摆脱手工开发方式。

6)软件是复杂的。

7)软件的开发成本非常昂贵。

8)相当多的软件工作涉及到社会因素。

14、什么是软件结构?简述软件结构设计的优化准则。

参考答案:

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

⑵模块的规模应该适中

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

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

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

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

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

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

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

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

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

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

参考答案:

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

16、试述Pressman对数据规格说明的原则。

参考答案:

Pressman定义的用于数据规格说明的7条原则包括:

1)用于软件的系统化方法也适用于数据

2)要确定所有的数据结构和在每种数据结构上施加的操作

3)应当建立一个数据字典并用它来定义数据和软件的设计

4)低层数据设计的决策应推迟到设计过程的后期进行

5)数据结构的表示只限于那些必须直接使用该数据结构内数据的模块才能知道

6)应当建立一个存放有效数据结构及相关操作的库

7)软件设计和程序设计语言应当支持抽象数据类型的定义和实现

17、软件生存周期中应该具备哪些必要的文档?每种文档的主要作用是什么?。

参考答案:

在软件生存周期中,随着各个阶段工作的开展,应适时地编制如下13种文档:

1)可行性研究报告:说明该软件项目的实现在技术上、经济上和社会因素上的可行性,评述为合理地达到开发目标可供选择的各种可能的实现方案,说明并论证所选定实施方案的理由。

2)项目开发计划:为软件项目实施方案制定出的具体计划。

3)软件需求说明书:对所开发软件的功能键、性能超群、用户界面及运行环境等作出详细的说明。

4)数据要求说明书:给出数据逻辑描述和数据采集的各项要求,为生成和维护系统的数据文件做好准备。

5)概要设计说明书:说明系统的功能分配、模块划分、程序的总体结构、输入输出及接口设计、运行设计、数据结构设计和出错处理设计等。

6)说明设计说明书:描述每一个模块是如何实现的,包括算法、逻辑流程等。

7)用户手册:使用户了解如何使用该软件。

8)操作手册:为操作人员提供该软件各种运行情况的有关知识。

9)测试计划:制定测试内容、进度、条件、人员、用例的选择、结果允许的偏差等。10)测试分析报告:对测试结果加以分析并提出结论性的意见。

11)开发进度月报:向管理部门按月提交的项目进展情况。

12)项目开发总结报告:项目开发完成后的总结。

13)维护修改建议。

五、应用题.(本大题共5小题)

1.根据下列条件使用等价划分法设计测试用例。

某一8位微机,其十六进制常数定义为:以0x或0X开头的数是十六进制整数,其值的范围是-7f~7f(表示十六进制的大小写字母不加区别),如0X13,0X6A,-0X3c。

解答:等价划分法

①划分等价类并编号,如下表所示。

2.图书馆的预定图书子系统有如下功能:

(1)由供书部门提供书目给订购组;

(2)订书组从各单位取得要订的书目;

(3)根据供书目录和订书书目产生订书文档留底;

(4)将订书信息(包括数目,数量等)反馈给供书单位;

(5)将未订书目通知订书者;

(6)对于重复订购的书目由系统自动检查,并把结果反馈给订书者。

试根据要求画出该问题的数据流程图,并把其转换为软件结构图。

3.建立窗口系统的对象模型,问题陈述如下:“窗口分为对话窗、图形窗、滚动窗三种。

对话窗中有若干对话项,由唯一的项名字来确定;对话项分为按钮、选择项和正文项三种,选择项中有若干选择项入口。图形窗中有若干形状元素,形状元素分为一维形状和二维形状。一维形状又分为直线、圆弧、折线;二维形状分为圆、椭圆、矩形、多边形,其中折线与多边形由若干有序顶点组成。正文窗是滚动窗的一种,而图形滚动窗既是图形窗又是滚动窗。”

参考答案:

4. 一个城市的公共事业部决定开发一个“计算机化的”坑洼跟踪和修理系统。市民通过本

系统报告有坑洼时,要说明街道地址、大小、影响程度,还要记录报告者的姓名和电话,存储在坑洼报告信息中,被送到公共事业部,工作人员根据坑洼的地点和大小,修理队标识号,修理队的人数,被分配的装备,制定一份工单,送到维修队。维修队修理后,将坑洼修理信息上报公共事业部的工作人员,包括:修理坑洼状况,使用填料的数量和修理的开销(时间、人数、使用的材料、装备)。请画出数据流程图。

参考答案: 市民报告坑洼信息IPO01

DS01

DS03坑洼信息工单信息坑洼

信息坑洼信息

坑洼信息

工单信息维修单位信息维修结果录入IPO03生成工单IPO02生成维修报告IPO04

DS02维修单位信息

维修信息

DS04坑洼维修信息工单信息坑

制定工单指令坑洼信息公共事业部维修单位维修信息5. 考录取统分子系统有如下功能:

(1) 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;

(2) 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。

试根据要求画出该系统的数据流程图,并将其转换为软件结构图。

参考答案:(1) 数据流图:

(2) 软件结构图:

《生化分离工程》思考题与答案

第一章绪论 1、何为生化分离技术?其主要研究那些容?生化分离技术是指从动植物组织培养液和微生物发酵液中分离、纯化生物产品的过程中所采用的方法和手段的总称。 2、生化分离的一般步骤包括哪些环节及技术?一般说来,生化分离过程主要包括4 个方面:①原料液的预处理和固液分离,常用加热、调PH、凝聚和絮凝等方法;②初步纯化(提取),常用沉淀、吸附、萃取、超滤等单元操作;③高度纯化(精制),常选用色谱分离技术;④成品加工,有浓缩、结晶和干燥等技术。 3、生化分离工程有那些特点,及其重要性? 特点:1、目的产物在初始物料(发酵液)中的含量低;2、培养液是多组分的混合物,除少量产物外,还有大量的细胞及碎片、其他代物(几百上千种)、培养基成分、无机盐等;3、生化产物的稳定性低,易变质、易失活、易变性,对温度、pH 值、重金属离子、有机溶剂、剪切力、表面力等非常敏感;4、对最终产品的质量要求高重要性:生物技术产品一般存在于一个复杂的多相体系中。唯有经过分离和纯化等下游加工过程,才能制得符合使用要求的产品。因此产品的分离纯化是生物技术工业化的必需手段。在生物产品的开发研究中,分离过程的费用占全部研究费用的50 %以上;在产品的成本构成中,分离与纯化部分占总成本的40~ 80 %;精细、药用产品的比例更高达70 ~90 %。显然开发新的分离和纯化工艺是提高经济效益或减少投资的重要途径。

4、生物技术下游工程与上游工程之间是否有联系? 它们之间有联系。①生物工程作为一个整体,上游工程和下游工程要相互配合, 为了利于目的产物的分离与纯化,上游的工艺设计应尽量为下游的分离纯化创造条件,例如,对于发酵工程产品,在加工过程中如果采用液体培养基,不用酵母膏、玉米浆等有色物质为原料,会使下游加工工程更方便、经济;②通常生物技术上游工程与下游工程相耦合。发酵- 分离耦合过程的优点是可以解除终产物的反馈抑制效应,同时简化产物提取过程,缩短生产周期,收到一举数得的效果。 5、为何生物技术领域中往往出现“丰产不丰收”的现象? 第二章预处理、过滤和细胞破碎 1、发酵液预处理的目的是什么?主要有那几种方法? 目的:改变发酵液的物理性质,加快悬浮液中固形物沉降的速率;出去大部分可溶性杂质,并尽可能使产物转入便于以后处理的相中(多数是液相),以便于固液分离及后提取工序的顺利进行。 方法:①加热法。升高温度可有效降低液体粘度,从而提高过滤速率,常用于粘度随温度变化较大的流体。控制适当温度和受热时间,能使蛋白质凝聚形成较大颗粒,进一步改善发酵液的过滤特性。使用加热法时必须注意加热温度必须控制在不影响目的产物活性的围,对于发酵液,温度过高或时间过长可能造成细胞溶解,胞物质外溢,而增加发酵液的复杂性,影响其后的产物分离与纯化;②调节悬浮液的pH 值,pH 直接影响发酵液中某些物质的电离度和电荷性质,适当调节pH 可以改善其过滤特性;③凝聚和絮凝;④使用惰性助滤剂。

软件工程作业(答案参考)

软件工程第一次作业 1)软件工程适用范围? 答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。 2)软件工程如何控制系统开发的复杂性的? 答:可理解性(understandability)。系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。 3)以你的经验,举例说明一个成熟的软件通常采用什么方法来适应现实世界的变化的?答:以猎豹游览器为例,开始软件投入市场公测,软件自带收集错误报告的程式,当遇到问题软件错误,会将相关信息反馈到接受错误信息的服务器,已方便程序员及时发现问题加以修复,修复完成后提供程序更新,循环此法提供软件运行稳定性,另外还有用户反馈的相关功能,对软件的建议也会收集到服务器,按实用性需求程序员可在原有程序上开发调整更适合用户使用的程序。 4)假设某软件公司,能为同一个用户开发两个不同层次的软件:一个层次的软件功能非常强大,在满足用户所有需求的基础上,还能提供大大超过用户需求的其他更多更强的功能;另一个层次的软件仅仅能满足用户需求,但没有提供其他额外的功能。请问如果你是项目负责人,你会选择为客户开发那个层次的软件? 答:我会选择仅仅满足用户需求的软件。因为太多的功能,相对于非专业的人员,在用户体验上可能会造成困扰,太多的功能会导致难以操作。而且功能强大的软件还会给用户费用上带来不必要的投入,软件是以人为本,方便用户工作,达到提高工作效率的目的。若然日后此用户需要更多功能的时候,我们还是可以向其软件公司提供升级功能解决用户需求。

软件工程作业3

软件工程第六章作业 9、某公司为本科以上学历的人重新分配工作,分配原则如下:如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作;如果年龄满18岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士,不分男女,任课题组组长;如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士,不分男女,任课题组组长。要求:画出分析过程,得出判定表,并进行化简。 条件分析表: 条件名称取值符号取值数性别男M M1=2 女 F 年龄不满18岁T M2=3 满18岁小于50岁Y 超过50岁O 文化程度硕士S M3=2 本科 B 判定表: 1 2 3 4 5 6 7 8 9 10 11 12 性别M M M M M M F F F F F F 文化程度S S S B B B S S S B B B 年龄O Y T O Y T O Y T O Y T 组长√√√√√√ 领导√√ 科研√ 行政√资料员√ 考研√ 简化表: 1,2,3,7,8,9 4 5,11 6 10 12 性别------ M ----- M F F 文化程度S B B B B B 年龄------ O Y T O T 组长√ 领导√ 科研√ 行政√ 资料员√ 考研√

10、研究下面的伪码程序,画出对应的程序流程图。 开始 Input X,N Dim A(N),F(N) I=1 Input F(i) I>N I++ K=0 否是 A(K)=0;J=1 A(K)=A(K)+F(J)*F(J+K)/(N-K+1) J++ K>N-K 否 Print K*X,A(K) K++ K

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

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

最新版2016软件工程基础离线作业满分答案

浙江大学远程教育学院 《软件工程基础》课程作业 ————————————————————————————— 第一章概述 1.什么是软件危机,它有哪些典型表现? 答:所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。 软件危机的典型表现主要有: 1. 开发成本和进度不能准确估计 2. 开发出来的软件不能满足用户的要求 3. 软件的可维护性差 4. 软件质量不可靠 5. 软件成本在系统中的比重逐年上升 6. 软件开发生产率的提高速度不够 2.简述产生软件危机的原因和解决的思路。 答:软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。 解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。

3.什么是软件工程?它有哪些本质特性? 答:软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。 其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。 4.软件工程是如何用来消除软件危机的? 答:软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。 5.假设你是某软件开发企业的CEO,当你把教材P.4的图1.1给手下的软件工程师们看,同时告诉他们应及早发现并改正错误的重要性时,有人不以为然,认为要求在错误进入软件前就发现并清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么又如何能够在设计阶段就发现并清除呢?”那你应该如何说服? 答:首先要对错误造成工作的延误或一些问题表示歉意。错误是难免,关键是要虚心接受,在以后工作中要更加认真,避免错误机率降到最低。在编码过程中要,首先要在头脑清醒,要保持工作前有足够的睡眠。这样错误机会也会降小。在编程结束后,首先要验证,是否能正常运行或工作。再以后的工作更要虚心,认真,保证这种机会降到最低。

软件工程作业第一章

1-1什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。 典型表现:软件总是超出预算、落后于进度表,而且产品质量不可靠、维护困难等。 危机原因: 1、软件受其自身特点的影响,生产过程不象硬件那样规范,受人的因素和外界影响很大,在软件生产的各阶段都会引入不同程度的错误,造成不能预期完成任务,致使成本上升,甚至导致软件失败。 2、主客观不相适应。 ●客观上:软件规模增大、功能要求越来越复杂,需求不断变化等; ●主观上:传统的个体化开发观念和方法的影响,无开发过程指导,无开发过程管理;由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。 1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? ?基本思想:是强调在软件开发过程中应用工程化原则,解决软件的整体质量较低、最后期限和费用没有保证等问题。 ?软件工程定义:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它. ?软件工程的根本在于提高软件的质量与生产率,最终实现软件的工业化生产。 本质特性:P6 消除软件危机:软件工程基本原理7条。 1-6 什么是软件过程?它与软件工程方法学有何关系? ?软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 ?过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。 关系:是软件工程方法学包含3个要素(方法、工具和过程)之一。 1-7 什么是软件生命周期模型?试比较瀑布模型、(快速)原型模型、增量模型和螺旋模型、喷泉模型的优缺点,说明每种模型的适用范围。 生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。 瀑布模型:它将软件生命周期划分为需求分析、软件设计、程序编写、软件测试和运行维护等基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。优点:文档驱动。 强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。遵守瀑布模型的文档约束,将使软件维护变得比较容易一些。 缺点:系统可能不满足需求,用户仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品 适用范围:软件需求明确。 原型模型:在初步调查了解的基础上,提供快速的软件建造工具,开发出一个功能并不十分完善的可实际运行的系统,即原型。需求分析入手快速、表达直观、容易交流。重点解决瀑

软件工程思考题答案

1、一个软件公司许多部门,分为开发部门和管理部门两种,每个开发部门开发多个软件产 品。每个部门由部门名字唯一确定。该公司有许多员工,员工分为经理,工作人员和开发人员每个开发人员可参加多个开发项目,每个开发项目需要多个开发人员,开发人员使用语言开发项目。每位经理可主持多个开发项目。建立该软件公司的对象模型。 2、某教务中心准备开发一个成人自学考试系统考务管理系统,经过调研该系统有如下功能:(1)对考生填写的报名单进行审查,对合格的考生,编好准考证发给考生,汇总后的报名单送给阅卷站。 (2)给合格的考生制作通知单,将考试科目、时间、地点安排告诉考生。 (3)对阅卷站送来的成绩进行登记;按当年标准审查单科合格者,并发成绩单,对所考专业各科成绩全部合格者发给大专毕业证书。 (4)对成绩进行分类(按地区、年龄、职业、专业、科目等分类)产生相应统计表 (5)查询考生可按准考证号随时查询自己的各科成绩 试根据要求画出系统的用例图

3、某图书馆借阅系统有以下功能: (1)借书:根据读者的借书证查询读者档案,若借书数目未超过规定数量,则办理借阅手续(修改库存记录及读者档案),超过规定数量者不予借阅。对于第一次借阅者则直接办理借阅手续。 (2)还书:根据读者书中的条形码,修改库存记录及读者档案,若借阅时间超过规定期限则罚款。 请对以上问题,画出数据流图

4、某报社采用面向对象技术实现报刊征订的计算机管理系统,该系统基本需求如下:(1)报社发行多种刊物,每种刊物通过订单来征订,订单中有代码、名称、订期、单价、份数等项目,订户通过填写订单来订阅报刊。 (2)报社下属多个发行站,每个站负责收集登陆订单,打印收款凭证等事务。 (3)报社负责分类并统计各个发行站送来的报刊订阅信息。 请就比需求建立对象模型,并画出系统的用例图

软件工程在线作业及答案

1.第1题 在软件可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的成本/效益分析的是()。 A.经济可性性 B.技术可行性 C.操作可行性 D.法律可行性 您的答案:A 题目分数:2.5 此题得分:2.5 2.第2题 为了提高模块的独立性,模块内部最好是()。 A.逻辑内聚 B.时间内聚 C.功能内聚 D.通信内聚 您的答案:C 题目分数:2.5 此题得分:2.5 3.第3题 Jackson方法是一种面向()的方法。 A.对象 B.数据结构 C.数据流 D.控制流 您的答案:B 题目分数:2.5 此题得分:2.5 4.第4题 需求分析阶段研究的对象是软件项目的()。 A.用户需求 B.合理要求 C.模糊要求 D.工程要求 您的答案:A 题目分数:2.5 此题得分:2.5

5.第5题 面向数据结构的设计方法(Jackson方法)是进行()的形式化的方法。 A.系统设计 B.详细设计 C.软件设计 D.编码 您的答案:B 题目分数:2.5 此题得分:2.5 6.第6题 程序控制的三种基本结构中,()结构可提供多条路径选择。 A.反序 B.顺序 C.循环 D.分支 您的答案:D 题目分数:2.5 此题得分:2.5 7.第7题 下列属于黑盒测试的是()。 A.基本路径测试 B.条件测试 C.循环测试 D.等价划分 您的答案:D 题目分数:2.5 此题得分:2.5 8.第8题 软件设计一般分为总体设计和详细设计,它们之间的关系是()。 A.全局和局部 B.抽象和具体 C.总体和层次 D.功能和结构 您的答案:A 题目分数:2.5 此题得分:2.5

9.第9题 好的软件结构应该是()。 A.高耦合,高内聚 B.低耦合,高内聚 C.高耦合,低内聚 D.低耦合,低内聚 您的答案:B 题目分数:2.5 此题得分:2.5 10.第15题 面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(),一个类获得其父类的全部描述(数据和操作)。 A.传递性 B.继承性 C.复用性 D.并行性 您的答案:B 题目分数:2.5 此题得分:2.5 11.第16题 软件项目管理是()一切活动的管理。 A.需求分析 B.软件设计过程 C.模块控制 D.软件生命周期 您的答案:D 题目分数:2.5 此题得分:2.5 12.第17题 一个模块把开关量作为参数传递给另一模型,这两个模块之间的耦合是()。 A.外部耦合 B.数据耦合 C.控制耦合 D.内容耦合 您的答案:C

分离工程课程 思考题

分离工程课程 思考题 1.气液相平衡系统分几类?各类相应的i K 的计算式怎样? 2.工程计算中求取相平衡常数的常用途径有哪两条?各自的i K 计算式怎样? 3.应用状态方程计算L i ?和V i ?的方程相同,那么如何确定算得的结果是L i ?和V i ?? 4.现有乙烷,丙烷和异丁烷组成的三元混合物,采用SRK 状态方程计算它们的相平衡常数i K ,试问需要查取哪些基础数据才能计算它们的i K ? 5.现有乙醇,水,正丙烷组成的三元混合物,采用Wilson 活度系数和Virial 方程计算气相逸度系数,试问需要查取哪些基础数据才能计算它们的i K ? 6.何谓真实气体的理想溶液?当气液两相均可作为理想溶液处理时,i K 取决于哪些因素? 7.以局部组成概念为基础的活度系数方程用来预计多元系的气液平衡,比起Wohl 型一类方程有哪些优点? 8.教材介绍的泡点计算的框图用来计算压力不十分高系统泡点十分有效,试分析原因。 9.如何比较简单地判别一个混合物状态?试归纳相态判别的关系式。 10.等温闪蒸计算机的计算,采用目标函数何迭代变量是什么?用它们有什么优点? 11.构成一个计算机计算的要点是什么?试以Wang - Hanke 法为例进行剖析并由此说明算法的局限性。 12.试推导多级分离过程的MESH 方程组。 13.三对角线的BP 法何SR 法的框图怎样?两法各自适用的物系是哪些? 14.精馏塔的操作压力的上,下限各由什么因素决定?增大操作压力对分离效果和能耗有何影响? 15.何谓关键组分?精馏分离的多元混合物可能含有哪些组分? 16.有A ,B ,C ,D (以挥发度递减次序排列)四组分组成的料液加入精馏塔中进行分离。试对A ,B : B ,C 或C ,D 是轻重关键组分时,塔在m R 下操作时塔中的恒沸区位置进行分析。因为什么组分的变化而引起恒浓区位置的变化? 17.估算精馏塔塔顶和塔底产品的量和组成有哪两种方法?各自的基本假定有哪些? 18.试应用教材中推导的s /12α计算式(式2-175),说明萃取精馏中溶液的作用。如果原料中两组分的相对挥发度十分接近1,靠加入溶剂的什么作用才可能使s /12α

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

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)对于项目的其余大多数工作,需求

软件工程作业答案

新版形考作业答案第一次!! 09软件工程作业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.《中华人民共和国著作权法》D.《计算机病毒防治管理办法》 14. 效率是一个性能要求,因此应当在以下(B)阶段规定 A、可行性分析 B、需求分析 C、概要设计 D、详细设计 15. 需求规格说明书的作用不包括(D) A、软件验收的依据 B、用户与开发人员对软件要做什么的共同理解 C、软件可行性研究的依据 D、软件设计的依据 16. 数据字典是用来定义(D)中的各个成份的具体含义的。 A、程序流程图 B、功能结构图 C、系统结构图 D、数据流程图 17. 数据流程图是(A)方法中用于表示系统逻辑模型的一种图形工具。 A、SA B、SD C、SP D、SC 18. DFD中的每个加工至少有(A)。 A、一个输入流或一个输出流

软件工程第1章作业

软件工程第1章作业 一、填空题(每小题1分,共15分) 1、软件与物质产品有很大的区别,软件是一种_____逻辑_______产品。 2、软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于建造一个软件系统____________________。 3、最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是_瀑布模型。 4、一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把这个漫长的时期称为_生存周期。 5、软件工程是指导计算机软件开发和维护的一门工程学科。 6、软件工程包括___软件开发技术_________和____管理________两方面的内容,是技术与管理紧密结合所形成的工程学科。 7、通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为_范型____________。 8、螺旋模型将瀑布模型和快速原型模型结合起来,加入了两种模型均忽略了的__风险分析_________,弥补了这两种模型的不足。 9、____瀑布_____模型不能适应需求可变的软件开发,只有到开发结束时才能见到整个软件系统。 10、将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是__瀑布________模型。 11、喷泉模型是一种以用户需求为动力,以__对象________为驱动的模型。 12、一个软件项目的开发中,要采用一种生存周期模型,要按照某种_开发方法__________,使用相应的工具来进行。 13、软件工程的出现主要是由于_ ____软件危机__________的出现而产生的。 14、软件工程知识体系指南SWEBOK将软件工程知识体系划分为___10____个知识域。 15、Rational统一过程RUP是_用例_______驱动的、以体系结构为核心的、迭代的增量的过程,其迭代过程分为初始、细化、___构建________、移交4个阶段。 二、选择题(每小题2分,共30分) 1、作坊式小团体合作生产方式的时代属于( C )时代。 A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程 2、软件工程与计算机科学性质不同,软件工程着重于( C )。 A.理论研究 B.原理探讨 C.建造软件系统 D.原理的理论 3、个体手工劳动生产方式的时代是( A )时代。 A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程 4、软件是一种( B )产品。 A、有形B、逻辑C、物质D、消耗 5、与计算机科学的理论研究不同,软件工程是一门( C )学科。 A、理论性B、工程性C、原理性D、心理性 6、软件工程学科出现的主要原因是( C )。 A、计算机的发展B、其他工程学科的影响

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

第一章练习题 一、填空题 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、何为生化分离工程bioseparation engineering/下游加工过程, biotechnology?其 主要研究那些内容? 2、生化分离技术依据的分离原理有哪些? 3、生化分离工程有那些特点?其包括那几种主要分离方法? 4、何为传质分离过程? 5、简述生化分离工程的发展趋势。 6、亲和技术目前已衍生出那些子代分离技术? 7、生化反应与生化分离耦合技术有那些特点? 8、为何在生物技术领域中往往出现“丰产不丰收”的现象? 9、生物产品与普通化工产品分离过程有何不同? 10、设计生物产品的分离工艺应考虑哪些因素? 11、初步纯化与高度纯化分离效果有何不同? 12、如何除去蛋白质溶液中的热原质? 13、生物分离为何主张采用集成化技术? 14、若每一步纯化产物得率为90%,共6步纯化得到符合要求产品,其总收率 是多少? 第二章预处理与固-液分离法 1、发酵液预处理的目的是什么?主要有那几种方法? 2、何谓絮凝?何谓凝聚?各自作用机理是什么? 3、絮凝剂可分为那三种?有那些因素影响絮凝过程? 4、在生化工业中常用的过滤方式那两种?各自有何特点? 5、离心分离分那两大类?各自有何特点及用途?常用离心法有那几种? 6、何谓密度梯度离心?其工作原理是什么? 7、如何使用助滤剂? 8、错流微滤与传统过滤相比有何优点?

第三章细胞破碎法 1、细菌细胞壁与真菌(酵母)细胞壁在组成上有何区别? 2、细胞破碎主要有那几种方法? 3、机械法细胞破碎方法非机械破碎方法相比有何特点? 4、何谓脂溶破碎法?其原理是什么?包括那几种? 5、酶法细胞破碎常用那几种酶类? 6、包涵体是如何产生的?如何使重组蛋白复性? 7、如何测定细胞破碎程度? 第四章沉淀法 1.理解概念:盐溶,盐析 2.常用的沉淀法有哪几种? 3.生产中常用的盐析剂有哪些?其选择依据是什么? 4.何谓分步盐析沉淀? 5.有机沉淀法与盐析沉淀法相比有何优缺点? 第五章溶剂萃取法 1、何谓溶剂萃取?其分配定律的适用条件是什么? 2、在溶剂萃取过程中pH值是如何影响弱电解质的提取? 3、何谓乳化液?乳化液稳定的条件是什么?常用去乳化方法有那些? 4、在发酵工业中,去乳化有何实际意义? 5、理解概念:HLB,分配系数,分离因子,介电常数,带溶剂 6、生物物质的萃取与传统的萃取相比有哪些不同点? 7、pH 对弱电解质的萃取效率有何影响? 8、发酵液乳化现象是如何产生的?对分离纯化产生何影响? 如何有效消除乳化现象? 9、什么叫超临界流体? 10、为何在临界区附近,稍微改变流体的压力和温度,都会引起流体密度的大副变化? 11、要提高超临界流体萃取的效率,可以考虑哪些方面?

(完整版)《软件工程》作业及答案

t h e i 《软件工程》作业及答案 1-1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。软件危机典型表现:对软件开发成本和进度的估计常常很不准确。用户对“已完成的”软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件常常是不可维护的。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产 率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。软件不同于硬件,它是计算机系 统中的逻辑部件而不是物理部件。管理和控制软件开发过程相当困难。 软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上 升。目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念, 在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。1-2 假设你是一家软件公司的总工程师,当你把图1.1给手下的软件 工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能 在设计阶段清除它呢?”你怎么反驳他? 1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? 答: 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。 软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具 有另一种文化背景的人创造产品。 消除软件危机的途径:为了消除软件危机,首先应该对计算机软件有一个正确的认识。必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功 的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在 计算机系统早期发展阶段形成的一些错误概念和做法。应该开发和使用更好的软件工具。为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。1-6 什么是软件过程?它与软件工程方法学有何关系? 答: 软件过程是为了获得高质量软件所需要完成的一系列任务的框架, 它规定了完成各项任务的工作步骤。软件工程方法学包含软件过程。1-7 什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增 量模型和螺旋模型的优缺点,说明每种模型的适用范围。 答: 生命周期模型简洁地描述软件过程,规定了把生命周期划分成哪些阶段及各个阶段执行顺序。 瀑布模型历史悠久、广为人知,它的优势在于它是规范的、文档驱动的方法;这种模型的问题是,最终开发出的软件产品可能并不是用户 真正需要的。 快速原型模型正是为了克服瀑布模型的缺点而提出来的。它通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用 户反馈意见的办法,获取用户的真实需求。 增量模型具有可在软件开发的早期阶段使投资获得明显回报和较易维护的优点,但是,要求软件具有开放的结构是使用这种模型时固有的困难。 风险驱动的螺旋模型适用于内部开发的大型软件项目,但是,只有在开发人员具有风 险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。 快速原型模型:适合小型软件; 螺旋模型:适合内部开发的大规模软件项目。2-1 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面 研究目标系统的可行性? 答: 可行性研究的目的,就是用最小的代价在尽可能短的时间内确定 问题是否能够解决。至少应该从下述三方面研究每种解法的可行性:(1)技术可行性;(2)经济可行性;(3)操作可行性。 2-5 北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。请用2.5.2小节讲述的定义数据的方法,定义上述的电话号码。答: 电话号码=[校内电话|本市电话|外地电话] 非零数字字符=[1|2|3|4|5|6|7|8|9] 校内电话=非零数字字符+3{数字}3本市电话=0+非零数字字符+7{数字}7外地电话=0+区码+非零数字字符+7{数字}73-1 为什么要进行需求分析?通常对软件系统有哪些需求?答: 为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。确定对系统的综合要求:1、功能需求;2、性能需求;3、可靠性和可用性需求;4、出错处理需求;5、接口需求;6、约束;7、逆向需求;8、将来可以提出的要求,分析系统的数据要求。3-2 怎样与用户有效地沟通以获取用户的真实需求? 答: 与用户沟通获取需求的方法:访谈;面向数据流自顶向下求精;简易的应用规格说明技术;快速建立软件原型 4-2 在什么情况下应该使用形式化说明技术?使用形式化说明技术时应 遵守哪些准则? 答: 在开发大型软件系统的过程中应该使用形式化说明技术。应用形式化方法的准则:(1)应该选用适当的表示方法。(2)应该形 式化,但不要过分形式化。 (3)应该估算成本。(4)应该有形式化方法顾问随时提供咨询。 (5)不应该放弃传统的开发方法。(6)应该建立详尽的文档。(7)不应该放弃质量标准。(8)不应该盲目依赖形式化方法。(9)应该测试、测试再测试。(10)应该重用 7-8 对一个包含10000条机器指令的程序进行一个月集成测试后,总 共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了 25个错误(第二个月改正了10个错误),MTTF=15h 。要求:(1) 根据上述数据确定MTTF 与测试时间之间的函数关系,画出 MTTF 与测试时间τ的关系曲线。在画这条曲线时做了什么假设?(2) 为做到MTTF=100h ,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中? 答: (1)所做假设:1)单位长度里的错误数近似为常数;2)失效率正比于软件中剩余的错误数,而平均无故障时间与剩余的错误数成反比. 3)发现的每一个错误都立即正确地改正了.(2)由Shooman 公式:MTTF=I T /(K*(E T -E C (T))) 其中,I T =104,MTTF 1=10,n 1=15,MTTF 2=15,n 2=25。得:MTTF 1=I T /(K*(E T -E C (T 1)))10=10000/(K*(E T -15))MTTF 2=I T /(K*(E T -E C (T 2)))15=10000/(K*(E T -25)) (1)解得程序中固有的错误总数E T =45,此外K=100/3。(2)设MTTF=100,有 100=10000/((100/3)*(45-x))

软件工程课后习题答案

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

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

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