文档库 最新最全的文档下载
当前位置:文档库 › 软件工程复习资料(1)

软件工程复习资料(1)

软件工程复习资料(1)
软件工程复习资料(1)

软件工程知识点汇总

1、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( C)。

A、详细计划

B、可行性分析

C、运行阶段

D、测试与排错

2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大(C )。

A、详细设计阶段

B、概要设计阶段

C、需求分析阶段

D、测试和运行阶段

3、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标(A )。

A、需求分析阶段

B、详细设计阶段

C、概要设计阶段

D、可行性研究阶段

4、软件工程的出现主要是由于(C )。

A.程序设计方法学的影响

B.其它工程科学的影响

C. 软件危机的出现

D.计算机的发展

5、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C )

A、硬件环境

B、软件开发的环境

C、软件开发工具和软件开发的环境

D、开发人员的素质

6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为( B)

A、相互排斥

B、相互补充

C、独立使用

D、交替使用

7、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C )

A、基于瀑布模型的结构化方法

B、基于需求动态定义的原型化方法

C、基于对象的面向对象的方法

D、基于数据的数据流开发方法

8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B ) A、结构化方法B、原型化方法C、面向对象的方法D、控制流方法

9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(B )

A、控制流

B、数据流

C、程序流

D、指令流

10、软件开发的结构化生命周期方法将软件生命周期划分成(A )

A、计划阶段、开发阶段、运行阶段

B、计划阶段、编程阶段、测试阶段

C、总体设计、详细设计、编程调试

D、需求分析、功能定义、系统设计

11、软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A )

A、瀑布模型

B、对象模型

C、螺旋模型

D、层次模型

12、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是( C)

A、分析阶段

B、设计阶段

C、编码阶段

D、测试阶段

三.判断

1.软件的开发与运行经常受到硬件的限制和制约。(√)

2.模块内的高内聚往往意味着模块间的松耦合。(√)

5.软件的质量好坏主要由验收人员负责,其他开发人员不必关心。(X )

6.判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。(√)

7.应该尽量使用机器语言编写代码,提高程序运行效率,而减少高级语言的使用。(X)

8.UML只能应用于软件系统模型的建立。(X)

10.软件测试的目的是为了无一遗漏的找出所有的错误。(X)

一、填空

1.结构化分析方法的分析策略是___自顶向下逐步求精_______。

2.衡量模块独立性的两个定性标准是_耦合性与内聚性________。

3.软件集成测试的方法主要有两种,它们是___渐增式与非渐增式测试_______。

4.可行性研究的目的是用最小的代价在尽可能短的时间内确定该软件项目_是否值得开发_。

5.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是__功能需求_。

6.软件生存周期中时间最长、花费的精力和费用最多的一个阶段是__维护_____阶段。

7. 计算机辅助软件工程这一术语的英文缩写为_CASE_______。

8.McCall提出的软件质量模型包括______11_____个软件质量特性。

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

10.软件概要设计的主要任务就是__软件结构的设计______。

11.结构化程序设计方法是使用___三种基本控制结构(条件\控制\循环)____构造程序。

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

二、选择

1.UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( C )

A、基于瀑布模型的结构化方法

B、基于需求动态定义的原型化方法

C、基于对象的面向对象的方法

D、基于数据的数据流开发方法

2、面向对象的开发方法中,(B)将是面向对象技术领域内占主导地位的标准建模语言。

A、Booch方法

B、UML语言

C、OMT方法

D、Coad方法

3、功能模型中所有的(A)往往形成一个层次结构。在这个层次结构中一个数据流图的过程可以由下一层的数据流图作进一步的说明。

A、数据流图

B、概念模型图

C、状态迁移图

D、事件追踪图

4、(A)应当在应用分析之前进行,因为我们在了解问题之前应当对问题敞开思想考虑,不应加以限制。

A、问题域分析

B、高层分析

C、实例的建立

D、类的开发

5、通过执行对象的操作改变对象的属性,但它必须通过(B)的传递。

A、接口

B、消息

C、信息

D、操作

6、所有的对象可以成为各种对象类,每个对象类都定义了一组(B)

A、说明

B、方法

C、过程

D、类型

9、面向对象的主要特征除对象唯一性、封装、继承外,还有(A)

A、多态性

B、完整性

C、可移植性

D、兼容

10、在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有(B)

A、隐藏复杂性

B、信息隐藏

C、即存类的重用

D、类的开发

13、在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是(B)

A、数据流图

B、状态图

C、系统结构图

D、时序图

14、人们常用的评价软件质量的4个因素是( B )

A.可维护性、可靠性、健壮性、效率

B.可维护性、可靠性、可理解性、效率

C.可维护性、可靠性、完整性、效率

D.可维护性、可靠性、移植性、效率

15、软件可移植性是用来衡量软件的( C )重要尺度之一。

A.通用性

B.效率

C.质量

D.人机界面

16、为了提高软件的可移植性,应注意提高软件的( D )

A.使用的方便性

B.简洁性

C.可靠性

D.设备独立性

20.在软件质量因素中,软件在异常条件下仍能运行的能力称之为软件的( B )

A.可靠性

B.健壮性

C.可用性

D.安全性

21.在软件设计中,设计复审是和软件设计本身一样重要的环节,其主要的目的和作用是为了能够( B)

A.减少测试工作量

B.避免后期付出高代价

C.保证软件质量

D.缩短软件开发周期

22.在软件危机中表现出来的软件质量差的问题,其原因是( B)

A.用户经常干预软件系统的研发工作

B.没有软件质量标准

C.软件研发人员不愿意遵守软件质量标准

D.软件研发人员素质太差

23.软件工程管理是( D)一切活动的管理。

A.需求分析

B.软件设计过程

C.模块设计

D.软件生命期

24.软件管理的主要职能包括(D )

A.人员管理、计划管理

B.标准化管理、配置管理

C.成本管理、进度管理

D.(A)和(B)

26.结构化设计方法在软件开发中用于(A )。

A、概要设计

B、详细设计

C、程序设计

D、测试用例设计

28.软件测试中,白盒法是通过分析程序的(B )来设计测试用例的。

A、应用范围

B、内部逻辑

C、功能

D、输入数据

29.软件维护费用高的主要原因是(C )。

A、人员少

B、人员多

C、生产率低

D、生产率高

30.软件质量必须在(D )加以保证。A、开发之前

B、开发之后

C、可行性研究过程中

D、设计与实现过程中

31.确认测试主要涉及的文档是(A )。

A、需求规格说明书

B、概要设计说明书

C、详细设计说明书

D、源程序

33.为了适应软硬件环境变化而修改软件的过程是( C )。

A、校正性维护

B、完善性维护

C、适应性维护

D、预防性维护

35.软件质量保证应在( A )阶段开始。

A.需求分析

B.设计

C.编码

D.投入使用

36.在McCall软件质量度量模型中,(C )属于面向软件产品修改。

A.可靠性B.可重用性C.适应性D.可移植性

37.对象实现了数据和操作的结合,使数据和操作(C )于对象的统一体中。

A.结合B.隐藏C.封装D.抽象

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

A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求

40.软件测试方法中的静态测试方法之一为(A )

A.计算机辅助静态分析B.黑盒法C.路径覆盖D.边界值分析

41.程序的三种基本控制结构是(B )

A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移

43.详细设计的结果基本决定了最终程序的(C )

A.代码的规模B.运行速度C.质量D.可维护性

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

A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性

46.黑盒测试在设计测试用例时,主要研究(A )

A.需求规格说明与概要设计说明

B.详细设计说明

C.项目开发计划

D.概要设计说明与详细设计说明

47.若有一个计算类型的程序,它的输入量只有一个,其范围是从输入的角度考虑一组测试用例,设计这组测试用例的方法是(C )

A.条件覆盖法

B.等价分类法

C.边界值分析法

D.错误推测法

48.下列属于维护阶段的文档是(C )

A.软件规格说明

B.用户操作手册

C.软件问题报告

D.软件测试分析报告

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

A.开发完毕才见到产品

B.及早提供全部完整的软件产品

C.开发完毕后才见到工作软件

D.及早提供工作软件

52.下列模型属于成本估算方法的有(A)

A.COCOMO模型

B.McCall模型

C.McCabe度量法

D.时间估算法

53.能力成熟度模型可以(A )

A、使软件组织建立一个有规律的成熟的软件过程

B、使用软件没有错误

C、使软件开发人员掌握更多的技术

D、避免开发人员跳槽

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

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

56.需求分析阶段的任务是确定( D )。

A.软件开发方法B.软件开发工具C.软件开发费D.软件系统的功能

58.软件详细设计的主要任务是确定每个模块的A 。

A.算法和使用的数据结构B.外部接口C.功能D.编程

59.程序的三种基本控制结构是( B )。

A.过程、子程序积分程序

B.顺序、选择和重复

C.递归、堆栈和队列

D.调用、返回和转移

60.软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试(B )。

A.结构合理性B.软件外部功能C.程序正确性D.程序内部逻辑

61.在软件开发和维护的过程中,为了定量地评价软件质量,必须对软件特性进行(B)

A.测试B.度量C.评审D.维护

64.对象是OO方法的核心,对象的类型有多种,通常把例如飞行、事故、演出、开会等等,称之为( C )

A.有形实体B.作用C.事件D.性能说明

65.在面向对象软件开发方法中,类与类之间主要有以下结构关系(A)

A.继承和聚集B继承和一般C 聚集和消息传递D继承和方法调用

66.以下哪一项不是软件危机的表现形式(C)

A成本高B生产率低C技术发展快D质量得不到保证

67.以下哪一项不是面向对象的特征(D)

A)多态性B)继承性C封装性D过程调用

68.面向对象模型主要由以下哪些模型组成(A)

A对象模型、动态模型、功能模型B对象模型、数据模型、功能模型C数据模型、动态模型、功能模型D对象模型、动态模型、数据模型

69.软件项目计划一般不包括以下哪项内容(D)

A培训计划B 人员安排C 进度安排D软件开发标准的选择和制定

三、简答

1.简述软件工程方法学所包含的内容。

软件工程方法学包括三个要素,这就是方法、工具和过程。其中,方法是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑,过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

2.什么是软件过程?它与软件工程方法学有何关系?

(1)软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。(2)软件过程是软件工程方法学的3个重要组成部分之一。(3)软件工程方法学包含三个要素:方法、工具和过程。

3.分析软件危机产生的主要原因有哪些?

答:导致软件危机的主要原因有:(1)软件日益复杂和庞大(2)软件开发管理困难和复杂(3)

软件开发技术落后(4)生产方式落后(5)开发工具落后(6)软件开发费用不断增加

4、说明结构化程序设计的主要思想是什么?答:(1)自顶向下、逐步求精的程序设计方法(2)使用3种基本控制结构、单入口、单出口来构造程序。

5、软件测试包括哪些步骤?说明这些步骤的测试对象是什么?

答:(1)单元测试:测试对象对单元模块(2)集成测试:测试对象为组装后的程序模块(3)确认测试:测试对象为可运行的目标软件系统(4)系统测试:测试对象为计算机系统的各组成部分

6、需求分析与软件设计二个阶段任务的主要区别是什么?

答:需求分析定义软件的用户需求,即定义待开发软件能做什么软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。

7、说明软件测试和调试的目的有何区别?

答:测试的目的是判断和发现软件是否有错误调试的目的是定位软件错误并纠正错误。

软件工程试题及答案(1)

一、单向选择题(四选一、每小题3分,共18分)

1、软件的发展经历了(D)个发展阶段。

A. 一

B. 二

C. 三

D. 四

2、需求分析的任务不包括(B)。

A. 问题分析

B. 系统设计

C. 需求描述

D. 需求评审。

4、当模块中包含复杂的条件组合,只有(A)能够清晰地表达出各种动作之间的对应关系。

A. 判定表和判定树

B. 盒图

C. 流程图

D. 关系图

5、以下不属于逻辑覆盖的是(D)。

A. 语句覆盖

B. 判定覆盖

C. 条件覆盖

D. 基本路径

6、为适应软件运行环境的变化而修改软件的活动称为(B)。

A. 纠错性维护

B. 适应性维护

C. 改善性维护

D. 预防性维护

二、判断题(每小题2分,共24分,错误打X、正确打√)

1. 用户对软件需求的描述不精确,往往是产生软件危机的原因之一。(√)

2. 目前,软件项目的进度安排的两种比较常用的方法是程序评估与审查技术(PERT)和关键路径法(CPM)。(√)

3. 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。(√)

4. 目前的绝大多数软件都不适合于快速原型技术。(X)

5. 面向数据的设计方法适用场合是具有明显的层次信息结构的应用如:企事业的信息管理系统;

系统软件(如操作系统)等。(√)

6. 缺乏处理大型软件项目的经验。是产生软件危机的唯一原因。(X)

7. 测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。(X)

8. 软件也会磨损和老化。(X)

9. 完善性维护是提高或完善软件的性能。(√)

三、简答题(每小题4分,共20分)

1、软件危机

是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。

3、软件项目的质量管理

制定软件质量保证计划,按照质量评价体系控制软件质量要素,对阶段性的软件产品进行评审,对最终软件产品进行确认,确保软件质量。

4、好的编程风格应遵循哪四条规则?

1)节简化2)模块化3)简单化4)文档化

《软件工程》试题及参考答案(2)

一、单向选择题(四选一、每小题3分,共18分)

1、对在数据流图中每一个命令的图形元素均给以定义是(B)

A、条目定义B、数据字典C、数据定义D、数据说明

2、软件的可行性研究中不包括(D)

A、法律可行性B、技术可行性C、经济可行性D、政治可行性

3、根据用户在软件使用过程中提出的建设性意见而进行的维护活动称为(C)。

A. 纠错性维护

B. 适应性维护

C. 改善性维护

D. 预防性维护

4、人机界面的风格大致经过了(B)代的演变。

A三B四C五D六

5、以下不属于白盒测试技术的是(D)

A 逻辑覆盖B基本路径测试C循环覆盖测试D等价类划分

6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。

A 纠错性维护B适应性维护C改善性维护D预防性维护

二、填空题(每空2分,共18分)

1. 文档(document)—一种数据媒体和其上所记录的(数据)。

2. 机器语言、汇编语言:依赖于机器,面向(机器)

3. 软件有效性(efficiency),指软件系统的时间和(空间)效率。

4. 软件定义过程可通过软件系统的可行性研究和需求分析两个阶段来完成。

5. 软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。

6. 为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。

7. 一个软件的深度是指其控制的(层数)。

8. 以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程叫(编码)过程。

9. 软件维护是软件生命周期的(最后)一个阶段。

三、判断题(每小题2分,共24分,错误打X、正确打√)

1. 缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。(√)

2. 一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。(X)

3. 在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。(√)

4. 快速原型技术适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。(√)

5. 流程图也称为程序(框图)是最常用的一种表示法。(√)

6. 面向数据设计方法一般都包括下列任务:确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。(√)

7. 理想的人机界面应针对具有典型个性的特定的一类用户设计。(√)

8. 数据输入的一般准则中包括尽量(增加)用户输入的动作。(X)

9. 用穷举测试是较现实的测试方法。(X)

10、编码时应尽可能使用全局变量(X)

11、重视程序结构的设计,能使程序具有较好的层次结构(√)

12、程序中的注解越少越好(X )。

四、简答题(每小题4分,共20分)

1、计算机软件

与计算机系统操作有关的程序、规程、规则及任何与之有关的文档和数据。

2、需求分析的任务是什么?

需求分析的任务是确定待开发的软件系统“做什么”。具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册。

4、快速原型技术的基本思想是什么?

在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,

然后开发人员根据用户的意见对原型进行改进。

《软件工程》试题及参考答案(3)

一、单向选择题(四选一、每小题3分,共18分)

1、在设计测试用例时,应当包括(C)

A、合理的输入条件B、不合理的输入条件C、合理的和不合理的输入条件D、部分条件

2、下列各项中不属于逻辑覆盖的是(D)

A、语句覆盖B、判定覆盖C、判定——条件覆盖D、全部覆盖

5、实践表明,确定发生错误的位置和内在原因所需的工作量几乎占整个调试工作量的(D)%

A. 30

B. 50

C. 70

D. 90

二、填空题(每空2分,共18分)

1. 黑盒测试主要是测试软件是否满足(功能)需求。

2. (调试)的目的是确定错误的位置和引起错误的原因,并加以改正。因此,又称为排错或纠错。

3. 软件工程由方法、工具和(过程)三部分组成,称软件工程的三要素。

三、判断题(每小题2分,共24分,错误打X、正确打√)

1. 文档可用于专业人员和用户之间的通信和交流;软件开发过程的管理;运行阶段的维护。(√)

2. 软件开发、设计几乎都是从头开始,成本和进度很难估计。(√)

3. 适应性维护是改进软件未来的可维护性和可靠性。(X)

4. 由于软件是逻辑产品,软件质量较容易直接度量。(X)

5. 按照功能,软部件可划分为系统软件和应用软件两类。(√)

6. 如果某子功能可以用一段简洁、精确的文字描述清楚,就无需进一步分解,是创建用户需求的数据流模型应遵循的规则。(√)

7. 耦合度是对软件结构中模块间关联程度的一种度量。在设计软件时应追求尽可能紧密的耦合的系统。(X)

8. 在面向对象设计阶段则着重完成“如何做”的问题,也就是着重考虑对象的实现细节。(√)1101

9. 随着软件复杂性的不断提高,软件的维护难度越来越大。(√)

10. 软件的可维护性差是软件维护工作量和费用激增的直接原因。(√)

《软件工程》试题及参考答案(4)

一、单向选择题(四选一、每小题3分,共18分)

1、从事物的组成部件及每个部件的属性、功能来认识事物。这种方法被称为(A)的方法。

A、面向对象

B、面向数据

C、面向过程

D、面向属性

2、判定表由四部分组成:左上部列出(B)。

A. 条件组合与动作之间的对应关系

B. 所有条件

C. 所有可能的动作

D. 可能的条件组合

4、耦合度也可以分为七级:其中最松散的耦合是(A)。

A. 非直接耦合

B. 数据耦合

C. 特征耦合

D. 控制耦合

二、填空题(每空2分,共18分)

1. 软件工程由方法、(工具)和过程三部分组成,称软件工程的三要素。

2. 软件可理解性,指系统具有清晰的结构,能直接反映问题的(需求)。

3. 在实体-关系图简称E-R图中,数据对象实体用长方形、关系用(菱形)、属性用椭圆表示。

4. 从工程管理的角度软件设计可分为概要设计和(详细)设计两大步骤。

5. 通过向用户提供视觉和听觉上的反馈,保持用户与界面间的双向通信,是提高界面可(交互)性的措施之一。

6. 测试用例中,不仅要选择合理的输入数据,还要选择(不合理)的输入数据。

三、判断题(每小题2分,共24分,错误打X、正确打√)

1. 纠错性维护是改正运行期间发现的潜伏错误。(√)

2. 软件可移植性(portability),是指软件从一个计算机系统或(环境)移植到另一个上去的难易程度。(√)

3. 软件复杂性不能反映出软件的可理解性、模块化、简单性等属性。(X)

4. 当程序内的分支数和循环数增加时,V(G)值将随之增加,即程序的复杂性增大。(√)

5. 一般来说,设计软件时应尽量使用数据耦合,减少控制耦合,限制外部环境耦合和公共数据耦合,杜绝内容耦合。(√)

6. 编码的依据是详细设计说明书。(√)

7. 程序文档应该包括代码的功能、代码的完成者等内容。(√)

8. 预防性维护是修改软件,以适应软硬件环境的变化。(X)

四、简答题(每小题4分,共20分)

5、瀑布模型一般适应哪些场合?

瀑布模型一般适用于功能、性能明确、完整、无重大变化的软件系统的开发。例如操作系统、编译系统、数据库管理系统等系统软件的开发。应用有一定的局限性。

五、综合题(每小题10分,共20分)

1、软件工程的目标是什么?

答:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。

《软件工程》试题及参考答案(5)

一、单向选择题(四选一、每小题3分,共18分)

1、描述静态数据结构的概念模式是(A )。

A、E-R图

B、DFD

C、结构图

D、框图

2、结构化程序设计理论认为,实现良好的程序结构要应用(A )的分析方法。

A、自顶向下

B、自底向上

C、面向对象

D、基于组件

4、软件生产过程中,需求信息由(D )给出。

A、程序员

B、项目管理者

C、软件分析设计人员

D、软件用户

二、填空题(每空2分,共18分)

1. 软件工程由(方法)、工具和过程三部分组成,称软件工程的三要素。

2. 基于计算机系统的软件要素中的软部件由程序、数据和(文档)组成。

3. 流程图也称为程序框图是最常用的一种表示法,它有顺序、分支和(循环)三个基本控制构件。0802

4. 机器语言和汇编语言,也称为(低级)语言。

5. 软件测试是执行程序发现并排除程序中潜伏的(错误)的过程。

6. 动态测试有两种测试方法:黑盒测试和(白盒)测试。

7. 软件可维护性,是指软件产品交付使用后,在实现改正潜伏的错误、改进性能等属性、适应环境变化等方面工作的(难易)程度。

三、判断题(每小题2分,共24分,错误打X、正确打√)

1. 开发大型软件易产生疏漏和错误,往往是产生软件危机的原因之一。(√)

2. 据统计,软件维护人员为了分析和理解原软件系统所花费的工作量约占整个维护工作量的60% 以下。(X)

3. 最高耦合度是数据耦合。(X)

4. 人机界面(Human-Computer Interface,简称HCI)又称人- 机接口或用户界面。(√)

5. 在同一用户界面中,所有的菜单选择、命令输入、数据显示和其他功能应采用不同的形式和风格。(X)

6. 判定覆盖必然满足语句覆盖。(√)

7. 为提高可交互性一般对大多数操作动作应允许用户恢复。同时应尽量减少用户记忆的信息量。(√)

8. 编程中应采用统一的标准和约定,降低程序的复杂性。(√)

9. 软件在使用过程中维护不十分复杂。(X)

10. 软件可重用性(reusability),是指软部件可以在多种场合使用的程度。(√)

四、简答题(每小题4分,共20分)

1、螺旋模型的适应场合有哪些?

适应场合:支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的模型。

复习资料

一、单选题

1、可行性分析研究的目的是( B )

A.争取项目

B.项目值得开发否

C.开发项目

D.规划项目

2、具有风险分析的软件生存周期模型是( C )

A.瀑布模型

B.喷泉模型

C.螺旋模型

D.增量模型

3、需求分析阶段的任务是确定( D )

A.软件开发方法B.软件开发工具C.软件开发D.软件系统的功能

4、数据字典是用来定义(D)中的各个成份的具体含义的。

A.流程图B.功能结构图C.系统结构图D.数据流图

5、程序的三种基本控制结构的共同特点是(C)

A.只能用来描述简单程序B.不能嵌套使用

C.单入口,单出口D.仅用于自动控制系统

6、软件设计的方法有多种,(A)方法不属于面向数据流的设计方法。

A.基于Jackson图的设计B.基于IDEF0图的设计

C.交换分析设计D.事务分析设计

7、为高质量地开发软件项目,在软件结构设计时,必须遵循(A)原则。

A.信息隐蔽B.质量控制C.程序优化D.数据共享

8、软件复杂性主要体现在( B )

A.数据的复杂性

B.程序的复杂性

C.控制的复杂性

D.问题的复杂性

9、为了提高软件的可维护性,在编码阶段应注意( D )

A.保存测试用例和数据

B.提高模块的独立性

C.文档的副作用

D.养成好的程序设计风格

10、面向对象的特征之一是( A )

A、对象的唯一性 B.抽象 C.封装性 D.共享性

11、当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为(D)

A.数据耦合B.公共耦合C.标记耦合 D.内容耦合

12、需求规格说明书的作用不包括(C)

A.软件验收的依据B.用户与开发人员对软件要做什么的共同理解

C.软件可行性研究的依据D.软件设计的依据

13、为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工,所以(C )的编制是很重要的。

A、需求说明

B、概要说明

C、软件文档

D、测试计划

14软件部件的内部实现与外部可访问性的分离,是指软件的(C )。

A、继承性

B、共享性

C、封装性

D、抽象性

15、单元测试是发现编码错误,集成测试是发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现(C )的错误。

A、接口错误

B、编码错误

C、性能、质量不合要求

D、功能错误

16、软件工程管理对软件项目的开发管理,即对整个软件(D )的一切活动的管理。

A、软件项目

B、生存期

C、软件开发计划

D、软件开发

17、软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们(D)A.前者属于静态测试,后者属于动态测试B.都属于静态测试

C.前者属于动态测试,后者属于静态测试D.都属于动态测试

18、软件工程管理的具体内容不包括对(D)管理。

A.开发人员B.组织机构C.控制D.设备

19软件调试技术包括( C )

A.错误推断

B.集成测试

C.回溯法

D.边界值分析

20、ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是( D )

A.SQIC B.SQMC C.SQRC D.SQDC

21软件复杂性度量的参数包括( B )

A.效率B.规模C.完整性D.容错性

22、模块的耦合性最强的是( D )

A.数据耦合

B.控制耦合

C.公共耦合

D.内容耦合

23、在SD方法中全面指导模块划分的最重要的原则是( D )

A.程序模块化

B.模块高内聚

C.模块低耦合

D.模块独立性

24、软件详细设计主要采用的方法是( C )

A.模块设计

B.结构化设计

C.PDL语言

D.结构化程序设计

25、黑盒测试在设计测试用例时,主要需要研究( A )

A.需求规格说明与概要设计说明

B.详细设计说明

C.项目开发计划

D.概要设计说明与详细设计说明

26、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( C )

A.条件覆盖法

B.等价分类法

C.边界值分析法

D.错误推测法

27下列属于维护阶段的文档是( D )

A.软件规格说明

B.用户操作手册

C.软件问题报告

D.软件测试分析报告

28快速原型模型的主要特点之一是( D )

A.开发完毕才见到产品

B.及早提供全部完整的软件产品

C.开发完毕后才见到工作软件

D.及早提供工作软件

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

A.教正性维护

B.适应性维护

C.完善性维护

D.预防性维护

29软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( B )

A.可用性

B.可靠性

C.正确性

D.完整性

30下列文档与维护人员有关的有( C )

A.软件需求说明书

B.项目开发计划

C.概要设计说明书

D.操作手册

31下列模型属于成本估算方法的有( A )

A.COCOMO模型

B.McCall模型

C.McCabe度量法

D.时间估算法

32对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。(第九章)

A.结合B.隐藏C.封装D.抽象

33软件调试技术包括(B )

A.边界值分析B.演绎法C.循环覆盖D.集成测试

34概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是(D )

A.把软件划分成模块

B.确定模块之间的调用关系

C.确定各个模块的功能

D.设计每个模块的伪代码

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

A.详细设计B.软件编码C.软件测试D.软件维护

36“软件危机”是指( C )

A. 计算机病毒的出现

B. 利用计算机进行经济犯罪活动

C. 软件开发和维护中出现的一系列问题

D. 人们过分迷恋计算机系统

37确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于(C )A、集成测试B、恢复测试C、验收测试D、单元测试

38盒图(N-S图)为(A )提供了有力的工具。

A、系统分析

B、软件的自动化生成

C、自动分析数据

D、测试软件

39程序的三种基本控制结构是( B )

A、过程、子程序和分程序

B、顺序、选择和重复

C、递归、堆栈和队列

D、调用、返回和转移

40具有风险分析的软件生存周期模型是( C )

A.瀑布模型

B.喷泉模型

C.螺旋模型

D.增量模型

41、下列有关软件工程的标准,属于行业标准的是( D)

A. GB

B. DIN

C. ISO

D. IEEE

42、DFD中的每个加工至少需要( D )

A. 一个输入流

B. 一个输出流

C. 一个输入或输出流

D. 一个输入流和一个输出流

43、为了提高模块的独立性,模块之间最好是( D )

A. 控制耦合

B. 公共耦合

C. 内容耦合

D. 数据耦合

44、软件设计的方法有多种,(A)方法不属于面向数据流的设计方法。A.基于Jackson图的设计 B.基于IDEF0图的设计

C.交换分析设计D.事务分析设计

45、当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为(D)A.数据耦合 B.公共耦合C.标记耦合D.内容耦合

46、详细设计与概要设计衔接的图形工具是( D )

A. DFD图

B. 程序图

C. PAD图

D. SC图

47、测试的关键问题是( D )

A. 如何组织对软件的评审

B. 如何验证程序的正确性

C. 如何采用综合策略

D. 如何选择测试用例

48、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C )

A.软件工程

B.软件周期

C.软件危机

D.软件产生

49、模块的内聚性最高的是( D )

A.逻辑内聚

B.时间内聚

C.偶然内聚

D.功能内聚

50、软件详细设计主要采用的方法是( C )

A.模块设计

B.结构化设计

C.PDL语言

D.结构化程序设计

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

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

C.程序设计语言的先进性D.程序易读性

52、下列关于功能性注释不正确的说法是( B )

A. 功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态

B. 注释用来说明程序段,需要在每一行都要加注释

C. 可使用空行或缩进,以便很容易区分注释和程序

D. 修改程序也应修改注释

53、下列关于效率的说法不正确的是( D )

A. 效率是一个性能要求,其目标应该在需求分析时给出

B. 提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法

C. 效率主要指处理机时间和存储器容量两个方面

D. 程序的效率与程序的简单性无关

54、可维护性的特性中,相互矛盾的是( B )

A. 可理解性与可测试性

B. 效率与可修改性

C. 可修改性和可理解性

D. 可理解性与可读性

55、快速原型是利用原型辅助软件开发的一种新思想,它是在研究( A )的方法和技术中产生的。

A. 需求阶段

B. 设计阶段

C. 测试阶段

D. 软件开发的各个阶段

56从目前情况来看,增量模型存在的主要问题是( C)

A. 用户很难适应这种系统开发方法

B. 该方法的成功率很低

C. 缺乏丰富而强有力的软件工具和开发环境

D. 缺乏对开发过程中的问题和错误具有应付变化的机制

57可行性分析研究的目的是( A )

A.项目是否值得开发 B .争取项目 C.开发项目 D.规划项目

58描述复杂系统时,最好采用(B)的描绘方法。

A.按系统流程描述

B.分层次

C.分阶段

D.对系统数据分类

59、下述方法中,属于形式化说明方法的是()。

A. Petri网

B. 数据流图

C. PDL

D. PAD图

60、需求分析阶段的基本任务是准确地回答(D )。

A. 系统的规模有多大

B. 系统如何实现

C. 系统有些什么输入信息

D. 系统必须做什么

61、在软件结构设计时,下面哪一项不是应该遵循(C )的原则。

A.信息隐蔽B.抽象C.数据共享D.逐步求精

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

A、算法和使用的数据结构

B、外部接口

C、功能

D、编程

63、软件是一种( C )

A、程序

B、数据

C、逻辑产品

D、物理产品

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

A.技术可行性

B.经济可行性

C.社会可行性

D.法律可行性

65、中级结构性成本模型COCOMO是一个( C )

A、静态单变量模型

B、动态单变量模型

C、静态多变量模型

D、动态多变量模型

66、PAD图为(详细设计)提供了有力的工具。

67、在软件结构设计完成后,对于下列说法,正确的是(C )

A.软件层数过多,可能是因为各管理子模块功能过于复杂的原因。

B.对软件宽度影响最大的因素是扇入。

C.一个模块的扇出太多,说明该模块过分复杂,缺少中间层

D.一个模块的扇入太多,说明该模块过分复杂,缺少中间层

68、源程序的效率与( D )阶段确定的算法的效率直接有关。

A.概要设计 B. 总体设计 C. 单元设计 D. 详细设计

69、关于软件测试,下面说法正确的是( C )。

A.软件测试只能依靠手工进行

B.子模块并入系统时,只要此子模块是经过单元测试,且没有问题的,就不用再对系统进行测试了。C.软件不能进行“穷举”测试

D.测试计划是在软件测试开始之初制定的。

70、关于白盒法覆盖程度的论述中正确的是( A )。

A.语句覆盖:选择测试用例使程序中每条语句至少被执行一次

B.条件覆盖:选择测试用例使每个条件都满足

C.判定覆盖:选择测试用例使程序中每个判定和判定中的条件至少都获得一次“真”值和一次“假”值。

D.条件组合覆盖:将所有的判定条件都组合起来执行

71、黑盒测试着重测试软件的(C)

A.设计 B. 模块 C. 功能 D. 数据

72( B )发现错误能力最弱。

A.判定覆盖 B.语句覆盖 C. 条件覆盖 D. 条件组合覆盖

73、在进行软件测试时,首先应当进行(D ),然后再进行组装测试,最后再进行有效性测试。A.组织测试B.集成测试C.确认测试D.单元测试

74、由软件预发行的最终客户们在一个或多个客户场所对软件进行的测试,称为(D)。

A.α测试B.集成测试C.平行运行D.β测试

75、以下说法正确的是(B )。

A.等价划分法是一种有效的白盒测试方法。

B.在等价划分法中,为了提高测试效率,一个测试用例可以覆盖多个有效等价类。

C.等价划分法的关键是按照用例来确定等价类。

D.设计测试方案时,要么采用等价划分法,要么采用边界值分析法。

76、从现存的程序代码中抽取有关数据、体现结构和处理过程的设计信息,以便恢复设计结果的过程,称为(B)

A.代码重构B.逆向工程C.数据重构D.正向工程

77、决定软件可维护性的因素有5个,即可理解性、(C)、可修改性、可移植性、可重用性。A.完备性B.安全性C.可测试性D.灵活性

78、软件维护工作过程中,第一步是先确认(B )

A.维护环境B.维护类型C.维护要求D.维护者

79、以下哪种不属于用面向对象方法建立的分析模型(B )

A. 动态模型

B. 功能模型

C. 对象模型

D. 状态模型

80、可维护性的特性中,相互矛盾的是( B )

A. 可理解性与可测试性

B. 效率与可修改性

C. 可修改性和可理解性

D. 可理解性与可读性

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

A、算法和使用的数据结构

B、外部接口

C、功能

D、编程

82、软件是一种( C )

A、程序

B、数据

C、逻辑产品

D、物理产品

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

A.技术可行性

B.经济可行性

C.社会可行性

D.法律可行性

84、中级结构性成本模型COCOMO是一个( C )

A、静态单变量模型

B、动态单变量模型

C、静态多变量模型

D、动态多变量模型

85、PAD图为(A)提供了有力的工具。

A、系统分析

B、软件的自动化生成

C、自动分析数据

D、测试软件

二、填空题

1、在面向对象方法中,对象实现了数据和操作的结合,使数据和操作__封装___于对象的统一体中。

2、如果知道软件的规格说明书描述的程序功能,那么就可以采用__确认测试_ 进行测试。

软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。

3、当A模块调用B模块时,若两个模块之间传递的是数值型参数,则这两个模块的耦合方式是_______数据耦合_________ 。

4、向对象发出服务请求称为____接口___,类对象上的各种操作称为____方法____。

提高软件质量和可靠性的技术主要有两类__避开错误技术__和_容错技术___。

5、大型软件测试包括____单元测试____、___集成测试_____确认测试和____系统测试__四个步骤。

6、软件结构图的宽度是指一层中__最大___的模块个数。

7、软件生存周期是指一个软件从提出开发要求开始直到_____该软件报废___为止的整个时期。

8、McCall提出的软件质量模型包括_______11_________ 个软件质量特性。

9、对大信息系统的需求,DFD应与数据库技术中______ER______ 图结合起来。

10、瀑布模型是以文档为驱动、适合于____需求很明确的____的软件项目的模型。

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

12、数据项是指____不可再分的____数据单元。

13、软件开发是一个自顶向下逐步细化和求精过程,而软件测试是一个_自底向上或相反顺序__集成的过程。

14软件维护的内容包括校正性维持,适应性维护、__完善性维护___和预防性维护。

15、CMM将软件过程的成熟度分为5个等级是初始级、可重复级、已定义级、己管理级和优化级。

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

17、结构化语言是介于自然语言和形式语言之间的一种半形式语言。

18、在面向对象方法中,对象实现了数据和操作的结合,使数据和操作__封装___于对象的统一体中。

19、作为计算机科学技术领域中的一门新兴学科,软件工程主要是为了解决________问题。

划分模块时尽量做到_高内聚、低耦合___,保持模块的独立性。

20、瀑布模型是以文档为驱动、适合于___需求很明确的_____的软件项目的模型。

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

用性和效率。

22、软件开发模型用于指导软件的开发。演化模型是在快速开发一个_可运行的软件原型_的基础上,逐步演化成最终的软件。

23、软件工程包括的三个要素是___方法、工具和过程_____。

24、常用的成本估计技术有:和自动估计成本技术三种。

25、结构化分析方法常用的两种工具是________和________。

26、模块的分解和合并应力求___降低耦合提高内聚_____。

27、程序的效率包括两个方面的内容___时间复杂度_____和___空间复杂度_____。

28、形式化方法是一种基于数学的方法来描述目标软件系统属性的的技术。

29、在需求分析时,常采用数据流图来描绘系统的行为。

30、实体-联系图包括:实体关系属性3种相互关联的信息。

31、软件设计包括制定计划和需求分析两个阶段。

32、基本路径测试是在程序流图的基础上,通过分析控制构造的环路复杂性,从而导出基本路径的集合,而设计测试用例,保证这些路径至少通过一次。

33、软件维护活动主要包括完善性维护、适应性维护、改正性维护和预防性维护等四种。

34、继承是子类自动共享父类属性和操作的机制。

35、IEEE定义基线是:已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。

36、软件生存周期是指软件从_定义_、__开发_、_维护_直到最终被废弃的全过程。

37、瀑布模型的核心思想是_按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开__。

38、在可行性研究中,________是最关键的因素。

39、软件生命周期由软件定义、软件开发和__软件维护___三个时期组成。

40、一般来说,可行性研究应该从技术、经济和_社会__三个方面研究每种解法的可行性。

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

42、常用的软件成本估计方法有________、任务分解技术和自动估计成本技术。

43、软件需求分析时,应建立数据模型、功能模型和_行为模型__。

44、所谓形式化方法,是描述系统性质的基于__数学__的技术。

45、_信息隐藏_原理指出:应该这样设计和确定模块,使得一个模块内包含的信息对于不需要这些信息的模块来说,是不能访问的。

46、如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是_结构化_的。

47、软件的维护一般经过提出维护或修改要求、领导复审并作出答复,如同意修改则列入维护计划、领导分配人物维护人员执行修改三个步骤。

三、简答题

1、面向对象设计的准则是什么?有哪5个层次和4个部分?

准则:模块化、抽象、信息隐蔽、高内聚、低耦合、可重用

2、简述软件工程目标和面临的主要问题。

目标:支付较低的开发成本、达到要求的软件功能、获取较好的软件性能、开发的软件易于移植、需要较低的维护费用、能按时完成开发任务,几时交付使用、开发的软件可靠性高

3、面临的主要问题是:软件费用软件可靠性软件维护软件生产率软件重用。

4、简述模块独立性的原则。

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

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

由耦合和内聚2个标准度量

5、简述软件生命周期开发方法的基本过程及每个阶段的任务。

(1)问题定义阶段,尽可能清楚地描述问题,搞清楚要解决的问题是什么;

(2)可行性研究阶段,主要是确定待解的问题是否有可行的解决办法。需要做经济可行性分析、技术可行性分析、操作可行性分析和法律可行性分析;

(3)需求分析阶段,主要是确定目标系统必须具备的功能。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。

(4)总体设计阶段,从总体上解决问题,确定可实现的方案,并设计出软件的层次结构图;

(5)详细设计,把解法具体化,确定如何具体地实现这个系统。针对每个模块设计相应的算法;(6)编码和单元测试阶段,把详细设计的结果翻译成选定的语言所写的程序,并对每个模块进行单元测试。

(7)测试阶段,系统地设计测试用例,尽可能多地发现软件中的错误,并调试改正软件中的错误;(8)软件维护阶段,主要目的是通过修改软件使所开发的软件能够持久地满足用户的需要。

6、复印机的工作流程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令:如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。试用状态转换图描绘复印机的行为。

从问题陈述可知,复印机的状态主要有闲置、复印、缺纸和卡纸。引起状态转换的事件主要是复印命令、完成复印命令、发现缺纸、装满纸、发生卡纸故障和排除了卡纸故障

7、什么是软件生存周期模型?请至少列举四种主要模型?

软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于

各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。

常见的软件生存周期模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。

8、衡量模块独立的两个标准是什么?它们各表示什么含义?

两个定性的度量标准:耦合与内聚性

耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

内聚性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。模块内元素联系越紧密,内聚性越高。

9、简述白盒测试的思想,并列举两种典型的测试技术。

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

典型测试技术:逻辑驱动、基本路径测试等

10、UML建模中主要包括哪九种图?并说明类图的定义及其中常见的关系有哪些?

用例图类图对象图状态图顺序图协作图活动图组件图分布图

类图描述系统的的静态结构。表示系统中类、类与类之间的关系以及类的属性和操作。

常见关系:关联(分为聚合和组合)、范化、依赖、实现。

软件工程复习资料

软件概念:与计算机系统操作有关的程序、数据以及相关文档的完整集合 软件特点:逻辑实体、智力产品,制造即拷贝2无磨损和老化,不遵循“浴盆曲 线”,但存在退化问题3尚未摆脱手工方式,软件移植的需要,复杂(问题复杂性/ 程序结构复杂性),软件开发的性质如成本、进度、质量等难以估计控制,维护困难,可复用性软件分类:按功能:系统软件/支撑软件/应用软件2按工作方式:实时处理/分时/交互/批处理3按服务对象:项目 / 产品(定制 / 通用)4按失效影响:关键/ 非关键5规模:微型、小型、中型、大型、甚大型、极大型 软件危机的表现:软件开发成本和进度失控,维护代价高2用户不满意3软件 质量不可靠4软件不可维护 5无文档资料6 计算机系统中软件成本比重加大7软件开发生产率提高不能满足要求软件危机的原因软件的规模和复杂性2人类智力的局限性3协同工作的困难性4缺乏方法学和工具5用户描述不精确、二义、遗漏,双方理解有偏差缓解软件危机的途径组织管理、协同配合的工程2软件工程的理论模型、技术方法3软件工具 软件工程的三要素1过程:管理部分2方法:技术手段3工具:自动或半自 动地支持软件的开发和管理三要素的关系:相互关联与支持 软件生命周期:可行性研究-需求分析-概要设计-详细设计-实现-集成测试-确认 测试-使用与维护-退役 软件开发和测试活动之间的关系软件 开发和软件测试都是软件生命周期中的重要组成部分,软件测试是保证软件开发产物 质量的重要手段。测试是贯穿于整个开发流程了,而不是在编码完成才开始。 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工 作,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。最终得到软件产品优点是使用时间最长、应用面比较广泛的开发模型2是其他一些开发模型的基础3当前一阶段完成后,只需要去关注后续阶段缺点不能适应用户需求的变化2到最后阶段才能得到可运行的软件版本适用场合:对于规模较小,软件需求较为稳定的项目,采用模型能够显著提高软件开发的质量和效率 演化模型(原型模型)演化模型是一种全局的软件(或产品) 生存周期模型。属于 迭代开发方法。该模型可以表示为:第一次迭代(需求->设计->实现->测试->集成)->反馈->第二次迭代(需求->设计->实现->测试->集成)->反馈->……优点:1支持需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误缺点1需要为系统的每个新版本交付文档,不划算2新需求的不断增加,使系统结构退化,变更成本上升3不支持风险分析 螺旋模型1将瀑布模型与原型模型进行有机结合2增加风险分析步骤优点1支持 需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误4支持风险分析,可降低或者尽早消除软件开发风险5适合于需求动态变化、开发风险较大的系统缺点建设周期长适用场合在需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。特别适合于大型复杂的系统 喷泉模型:软件复用与生命周期中多项开发活动集成,主要支持面向对象的开发 方法优点1软件系统可维护性较好2各阶段相互重叠,表明了面向对象开发方法各阶段间的交叉和无缝过渡3整个模型是一个迭代的过程,包括一个阶段内部的迭代和跨阶段的迭代4模型具有增量开发特性,即能做到“分析一点、设计一点、实现一点,测试一点”,使相关功能随之加入到演化的系统中5模型由对象驱动,对象是各阶段活动的主体,也是项目管理的基本内容6该模型很自然地支持软部件的重用缺点由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。 OO 为什么好oo 解决问题的思路是从现实世界中的客观对象入手,运用人类的 自然思维方式来构造软件系统,而传统的结构化方法从功能入手和信息工程化方法从信息入手。在面向对象方法中,把一切都看成是对象。OO 方法用类和对象作为系统的基本构成单位。对象对应问题域中的事物,其属性与操作刻画了事物的静态特征和动态特征,它们之间的继承关系、聚合关系、消息和关联如实地表达了问题域中事物之间实际存在的各种关系面向对象方法的特点(1)从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域中的事物为中心来思考问题、认识问题,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌(对象) (2)用对象的属性表示事物的状态特征;用对象的操作表示事物的动态特征(属性与操作)(3)对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节(封装)(4)对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例(分类)(5)复杂的对象可以用简单的对象作为其构成部分(聚集:一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称较复杂的对象为聚集,称较简单的对象为成分,称这种关系为聚集)(6)通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档,有利于复用(继承:特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承)(7) 类具有封闭性,把内部的属性和服务隐藏起来,只有公共的服务对外是可见的(类的封闭性)(8) 对象之间通过消息进行通讯,以实现对象之间的动态联系(消息)(9) 通过关联表达类之间的静态关系(关联) 自顶向下,逐步求精:从顶层开始逐层向下分解,直至系统的所有模块都小 到易于掌握为止 抽象从事物中舍弃个别的非本质的特征,而抽取共同的、本质特征的做法叫抽象。 过程抽象:将完成一个特定功能的动作序列抽象为一个函数名和参数表(模块)例: 比较字符串: int Compare (CString, CString)。数据抽象:将诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象例:Eg: 1, 2, 3,—>Integer ;软件工程书;人工智能书—>书类 封装把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部 细节。只是向外部提供接口,降低了对象间的耦合度使对象能够集中完整地描述并对应一个具体事物。意义:体现了独立性,使对象外部不能随意存取对象的内部数据,使其所含的信息对那些不需要这些信息的模块不可访问。对象的内部的修改对外部的影响很小,减少了修改引起的“波动效应”。公开静态的、不变的操作,而把动态的、易变的信息隐藏起来。 模块化将一个软件划分为一组具有相对独立功能的部件,每个部件称为一个模 块;当把所有的模块组装在一起时,便可获得满足用户需求的软件系统。为什么要进行模块化:模块化体现了“分而治之”的问题分析和解决方法。模块化的目的①进行功能分解,把复杂的大的功能划分成简单的小的子功能,尽量降低每个模块的成本。②尽量使每个模块间的接口不能太多,太多会使接口成本增加。兼顾二者可取得最佳的划分状态,确保软件总成本最低模块设计原则1信息隐藏2高内聚度(强)3低耦合度(松)什么是信息隐藏(1)模块应该设计得使其所含的信息(过程和数据)对那些不需要这些信息的模块不可访问(2)模块之间仅仅交换那些为完成系统功能所必须交换的信息信息隐藏的优点(1)支持模块的并行开发(设计和编码)(2)模块的独立性更好(3)便于系统功能的扩充(4)便于测试和维护,减少修改影响向外传播的范围模块化、信息隐藏,局部化是什么关系局部化与信息隐藏是一对密切相关的概念。局部化就是指将一些使用上密切相关的元素尽可能放在一起。对一个模块来说,局部化是期望模块所使用的数据尽可能是在模块内部定义的。因此,局部化意味着减少模块之间的联系,有助于实现模块之间的信息隐藏。在软件测试和维护期间经常需要修改一些模块的内容。信息隐藏和局部化降低了模块之间的联系,使得在修改一个模块时对其他模块的影响降到最低。“隐藏”的意思是,有效的模块化通过定义一组相互独立的模块来

软件工程期中考试以及答案

1、瀑布模型下,采用结构化的方法,在它的生命周期各个阶段中,那个阶段出错对软件的 影响最大() A、概要设计阶段 B、维护阶段 C、测试排错阶段 D、需求分析阶段 2、UML是软件开发过程中的重要工具之一,它主要用于那种开发方法() 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、DFD图 D、SC图 10、顺序图反映对象之间发送信息的时间顺序,它与()是同构的。 A、类图 B、状态图 C、协助图 D、活动图 11、下面说法错误的是() A、该图是对象图 B、borrowbook()是方法 C、name是属 D、该图是类图

12、下图中描述“聚合关系”的是() A 、 B 、 C 、 D 、 13、下面的顺序图问号所代表的是() 级专业: 题 ) … … 封 … … … … … … … … … … … … … … … 线 … … … … … … … … … … … … … …

软件工程复习资料2012秋(1)

软件工程复习题一 一、选择题,请从四个可选项中选择正确答案。 1.以下哪一项不是软件危机的表现形式() A.成本高 B.生产率低 C.技术发展快 D.质量得不到保证 2.哪种模型分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。() A.演化模型 B.喷泉模型 C.原型模型 D.螺旋模型 3.可行性研究的目的不包括() A.分析开发系统的必要性 B.确定系统建模的方案 C.分析系统风险 D.确定是否值得开发系统 4.可行性分析研究的费用大约是项目总经费的()。 A.2% B.8% C.20% D.50% 5.在E-R 模型中,包含以下基本成分()。 A.数据、对象、实体 B.控制、联系、对象 C.实体、联系、属性 D.实体、属性、联系 6.软件需求分析产生一个重要文档是()。 A.软件维护说明书 B.需求规格说明书 C.可行性报告 D.初步用户手册 7.内聚程度较低的是()。 A.通信内聚 B.过程内聚 C.顺序内聚 D.时间内聚 8.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是() A.把软件划分成模块 B确定模块之间的调用关系 C.确定各个模块的功能 D.设计每个模块的伪代码 9.UML 语言支持的建模方式不包括有()。 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.要求软件做什么 B.要给软件提供哪些信息 C.要求软件工作效率如何 D.要求软件具有什么样的结构 16.DFD中的每个加工至少需要() A.一个输入流 B.一个输出流 C.一个输入或输出流 D.一个输入流和一个输出流 17.PDL是描述处理过程()。 A.做什么 B.为什么做 C.怎么做 D.对谁做 18.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为()A.数据耦合 B.公共耦合 C.标记耦合 D.内容耦合 19.按照模块独立性,耦合程度由弱至强正确的顺序是()。 A.数据耦合、控制耦合、外部耦合、内容耦合 B.控制耦合、数据耦合、内容耦合、外部耦合 C.内容耦合、外部耦合、控制耦合、数据耦合 D.外部耦合、内容耦合、数据耦合、控制耦合 20.UML 中,包图是一种()。 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.下面说法正确的是 A.大多数软件系统是不容易修改的,除非它们在设计时考虑了变化 B.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产 C.一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功 D.购买大多数计算机系统所需的硬件比软件更昂贵 8.Ariane 5火箭发射失败的事例告诉我们 A.(2)软件后备系统可以通过复制生成 B.(3)软件重用必须重新进行系统论证和系统测试 C. 选项(1)和(3) D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制

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.正确 15、可行性研究可行性研究需要的时间长短和所研究系统的规模关系不大。 A. 正确 B.错误 16、把可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。 A.正确 B.错误 17、结构化分析方法遵守的准则之一——定义软件需要完成的功能,需要建立的模型是 A.功能模型 B.数据模型 C.行为模型 D.动态模型 18、下列叙述中,()不属于数据字典的作用。 A.为用户与开发人员之间统一认识 B.为需求分析阶段定义各类条目

软件工程期末考试题含答案

一、选择题 1.瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和_。 ( C ), A .详细计划 B .可行性分析 C .运行阶段 D.测试与排 错 2.在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试年勺系统测试阶段的目标( A ) A .需求分析阶段 B .详细设计阶段 C.概要设计阶段 D .可行性研究阶段, 3.软件工程的出现主要是由于(C ) , A.程序设计方法学的影响 B.其它工程科学的影响 C.软件危机的出现 D.计算机的发展, 4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实旅的主要保证是(C) A.硬件环境 B.软件开发的环境 C.软件开发工具和软件开发的环境 D.开发人员的素质 5.软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为(B) A.相互排斥B相互补充C独立使用 D.交替使用 是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C) A.基于瀑布模型的结构化方法 B.基于需求动态定义的原型化方法 C.基于对象的面向对象的方法 D.基于数据的数据流开发方法 7.在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B) A.结构化方法B原型化方法C面向对象的方法 D.控制流方法 8.结构化分析方法是一个预先严格定义需求的方法,它在实施时强调的是分析对象的(B) A.控制流 B.数据流 C.程序流 D.指令流 9.软件开发的结构化生命周期方法将软件生命周期划分成(A) A.计划阶段.开发阶段.运行阶段 B.计划阶段.编程阶段.测试阶段 C.总体设计.详细设计.编程调试 D.需求分析.功能定义.系统设计 10.软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(C) A.分析阶段 B.设计阶段 C.编码阶段 D.测试阶段

软件工程知识点总结

软件工程(简要知识点) 一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 二、可行性研究: 1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2、四个方面:技术、经济、操作可行性、法律 3、数据流图四种成分:1、源点/终点2、处理3、数据存储 4、数据流 三、需求分析: 1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。 2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 3、实体联系图:1、数据对象2、属性3、联系(1:1、1:N、M:N) 四、总体设计: 1.任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。 2.系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构) 3.模块独立:内聚和耦合 4. 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统

5. 内聚(Cohesion): 一个模块内各元素结合的紧密程度 6.面向数据流的设计方法:变换流和事务流 五、详细设计: 1.任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 2.过程设计的工具(程序流程图、盒图、PAD图、判定表、判定树) 七、测试: 1、单元测试:又称模块测试。每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试。由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性。 2、集成测试: 在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试。这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等。 3、白盒测试技术(逻辑覆盖、基本路经测试)

软件工程方法与实践 期末考试复习资料(江理)

软件工程的定义:软件工程是一门研究如何用系统化、规范化、数量化等工程化思想和方法去进行软件开发、维护和管理的学科。软件危机的定义:软件开发和维护过程中所遇到的如软件规模越来越大,复杂度不断增加,软件的需求量日益增大等的严重问题我们称之为软件危机。 软件工程有哪些基本的思想:a.推迟实现的观点b.逐步求精的观点c.分解与抽象的观点d.信息隐蔽的观点e.质量保证的观点 CMM(Capability Maturity Model)能力成熟度模型,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。 极限编程(Extreme Programming , XP)是一种软件工程方法学是敏捷软件开发中最富有成效的几种方法学之一。它的的核心有四个要点:交流、简单、反馈、勇气 软件生命周期模型:通常把软件生命周期中各项开发活动的流程用一个合理的框架——开发模型来规范描述,这就是软件过程模型,或者称为软件生命周期模型。 软件需求分类:功能需求、非功能需求和领域需求 结构化分析(Structured Analysis, SA) 结构图(Structure Chart ,SC) 面向对象的一些概念:类是具有相同或相似性质的对象的抽象。实例是类的具体化。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。消息是指对象间相互联系和相互作用的方式 数据流类型:变换型数据流、事务型数据流、混合型数据流 Jackson图:Jackson图是Jackson方法分析和设计最有效的表达手段,用它既可以描述问题的数据结构,也可以描述软件的程序结构。Jackson图的优点是便于表示层次结构,利于结构自顶向下分解,形象直观,可读性好。Jackson方法用某种形式的伪码给出程序的过程性描述。伪码一般采用结构化形式的英语描述,例如,用”select”语句描述选择结构,用”until”或”while”语句描述重复结构。

大学软件工程复习资料

五、简答题 1.层次图和层次方框图之间区别何在?P92 ①层次图描绘软件的层次结构,层次方框图描绘数据结构 ②层次图中方框代表一个功能模块,层次方框图方框代表数据的子集或数据元素 ③层次图中连线表示模块间调用关系,层次方框图连线表示组成关系。 2.2、软件设计过程中为什么要采用模块化设计方法?P85 参考答案: (1)、采用模块化原理可以使软件结构清晰,不仅容易设计,也容易阅读和理解; (2)、模块化使软件容易测试和调试,因而有助于提高软件的可靠性; (3)、模块化可以提高软件的可修改性; (4)、模块化有助于开发过程的组织和管理; 3.用某种软件复杂性度量算法来度量不同类型的程序时。得出的度量值是否真正反映了它们的复杂性? 如果对同类型的程序进行度量,其结果是否就比较有价值? 参考答案: 开发规模相同,但复杂性不同的软件,花费的成本和时间会有很大的差异。因此到目前为止,还没有一个软件复杂性度量的方法能够全面、系统地度量任一软件的复杂性,某一种度量方法只偏重于某一方面。所以,用某种软件复杂性来度量不同类型的程序,所得到的度量值不一定真正反映它们的复杂性。但对同一类里的程序,按某种视点来度量它们的复杂性,其结果还是比较有价值的。 4.数据流图的作用是什么?它有哪些基本成分? 参考答案: 数据流图可以用来抽象地表示系统或软件。它从信息传递和加工的角度.以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容不断增加的数据流和功能细节。因此,数据流图既提供了功能建模的机制.也提供了信息流建模的机制,从而可以建立起系统或软件的功能模型。 基本成分有:数据原点/终点数据处理数据流数据存储 5.常用的估算软件规模的方法有哪些?试比较这些方法的优缺点。 代码行技术的优点,容易计算,缺点是太片面,因为源程序只是软件配置的很少一部分,不同语言实现同一个软件所需的代码行数不同; 功能点数的特点:与编程语言无关,但是判断信息域复杂性级别和技术因素的影响程度时,存在着相当大的主观因素。 6.CMM的全称是什么?其基本思想是什么?为什么要对CMM进行分级?P321 其基本思想是:软件开发和维护过程中的问题是由于管理软件过程的方法不当引起的,即使是应用新的软件技术,也不会自动提高软件的生产率和质量。能力成熟度模型有助于软件开发机构建立一个有规律的、成熟的软件过程。改进后的软件过程将有利于开发出高质量的软件,使更多的软件项目免受时间和费用超支之苦。 ······························································································· 3分 对于任何软件开发机构的软件过程的改进都是在完成一个又一个小的改进的基础之上不断进行的渐进过程,而不是一蹴而就的彻底革命。CMM将软件过程从无序到有序的进化过程分为5个等级,用于测量软件机构的软件过程成熟度和评价其软件过程能力 什么是软件配置管理? 答:软件配置管理,简称SCM(Software Configuration Management),是在软件的整个生命周期内管理变化的一组活动。具体地讲,这组活动包括:①标志变化,②控制辩化,③确保适当地实现变化,④向需要指导这类信息的人报告变化。软件配置管理技术可以使软件变更所产生的错误达到最小并最有效地提高

《软件工程》期中考试试题

可行性研究的目的是( ) 《软件工程》期中考试试题 选择题(每小题 1 分,共 40 分) 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( )。 A. 软件工程 B.软件周期 C.软件危机 D.软件产生 ( )是将系统化的、 规范的、 可定量的方法应用于软件的开发、 运行和维护的过程。 A 软件过程 B 软件测试 C 软件生存周期 D 软件工程 从结构化的瀑布模型看, 在它的生命周期中的八个阶段中, 下面的几个选项中哪个环节 出错,对软件的影响最大 ( )。 A 、详细设计阶段 B 、概要设计阶段 一个软件项目是否进行开发的结论是在( A. 软件开发计划 B ? 可行性报告 )文档中做出的。 C ?需求规格说明书 D.测试报告 需求分析的产品是( ) A ?数据流程图案 B .数据字典 C ?判定表 D ?需求规格说明书 需求分析中开发人员要从用户那里了解( ) A ?软件做什么 B ?用户使用界面 C .输入的信息 D ?软件的规模 瀑布模型本质上是一种( )模型。 A. 线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 瀑布模型存在的问题是( )。 A ?用户容易参与开发 B ?缺乏灵活性 C ?用户与开发者易沟通 D ?适用可变需求 螺旋模型是一种将瀑布模型和( )结合起来的软件开发模型。 A ?增量模型 B .专家系统 C ?喷泉模型 D ?变换模型 原型化方法是用户和设计者之间执行的一种交互构成,适用于( )系统。 A ?需求不确定性高的 B ?需求确定的 C .管理信息 D ?实时 软件可行性研究实质上是要进行一次 ( )需求分析、设计过程。 A 、简化、压缩的 B 、详细的 C 、彻底的 D 、深入的 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. C 、 需求分析阶段 D 、 测试和运行阶段

软件工程复习知识要点

1 软件及软件工程概念 集合,程序只是软件的组成部分之一;在软件开发中,编程只是软件开发过程的一个阶段。 2.在结构化程序设计时代,程序最小的单位是函数及子程序,程序及数据是分离的。程序的最小单位是类。 3.软件的特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。 4.软件的分类:系统软件;应用软件;支撑软件;可复用软件。 5.什么是软件工程?(课后题) 软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来 开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合 起来,以经济地开发出高质量的软件并有效地维护它。 6.可以用功能性、可靠性、易用性、效率、可维护性和可移植性六个特性衡量软件的质量。 功能性是指软件所实现的功能达到它的设计规范和满足用户需求的程度。 可移植性是指软件从某一环境转移到另一环境时所作努力得程度。 7.软件生存期由软件定义、软件开发和运行维护三个时期组成。 开发时期通常由概要设计、详细设计、编码和测试四个阶段组成。 开发过程中的典型文档包括:项目计划、软件测试计划、软件设计说明书、用户手册。 8.需求分析的基本任务? (1)建立分析模型,了解系统的各种需求细节。 (2)基于分析结果,编写出软件需求规格说明或系统功能规格说明,确认测试计划和初步的系统 用户手册,并提交管理机构进行分析评审。 2 软件工程方法及工具 1.面向对象方法的出发点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和 过程尽可能接近人类认识问题和解决问题的方法及过程,从而使描述问题的问题空间及其解 空间在结构上尽可能一致。 2.形式化方法的主要特点是:(课后题)

软件工程复习提纲(20160615)

软件工程复习提纲 Chapter1 1.开发文档都有哪些?用图来表示它们之间的关系。 2.说明软件工程研究的内容。 3.软件工程的7条基本原理有何现实意义。 4.怎样理解ISO9000的文档体系?质量手册、程序文件、质量记录三者有何联系和区别? 5.怎样理解CMMI,如何用CMMI去管理软件企业? 6.是否存在这一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和ISO9000 模式只适用于搞应用软件的企业?如果是,为什么,如果不是,又为什么? 7.软件工程与信息系统工程有何异同? 8.怎样理解元数据? Chapter2 1.为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系? 2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。 3.软件公司的ISO9000或CMM管理体系与软件开发模型有关吗,为什么? 4.你对“生存周期模型裁剪指南”有什么看法? 5.“图书馆信息系统”的开发选用什么开发模型合适? Chapter3 1.立项的具体表现形式是什么? 2.立项建议书的编制者为什么主要是软件公司的市场销售人员,而不是开发人员? 3.什么叫风险分析,技能风险与技术风险有何区别? 3.合同、任务书、立项建议书三者有何异同?有何关系? 4.对软件项目和产品的“功能、性能、接口”三项指标如何理解? Chapter4 1.需求分析的目的是什么,需求分析的难点在哪里? 2.需求分析的理论基础有哪几条? 3.为什么说需求分析是面向流程的? 4.解释术语:元数据、实体、中间数据。 5.用户需求报告与需求规格书有何差异? 6.需求描述有哪几种工具?你喜欢哪一种,为什么?

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

《软件工程》期末考试样题 一、填空题 1.软件开发模型有瀑布模型、螺旋模型、第四代技术模型、原型模型、构件组装模型、混合模型。 2.可行性研究一般可以从经济可行性、技术可行性、运行可行性、法律可行性和开发可行性等方面来研究。 3.现在向银行存款,年利率为i,若希望在n年后从银行得到F元,现在应该存入的钱数为F/(1+i)n。 4.数据流图基本符号包括数据输入的源点和数据输出的汇点、加工、数据流、数据存储文件。 5.Jackson图除了可以表达程序结构外,还可以表达数据结构,它首先要分析数据结构,并用适当的工具来描述。 6.详细设计的工具有图形工具、表格工具和语言工具。 7.IPO图由输入、处理和输出三个框组成。这个图的特点是能够直观的显示三者之间的关系。 8.面向对象技术是一整套关于如何看待软件系统和现实世界的关系,以什么观点来研究问题并进行分析求解,以及如何进行系统构造的软件方法学。面向对象方法是一种运用对象、类、继承、封装、聚集、消息传送、多态性等概念来构造系统的软件开发方法。 二、单项选择题 1.下列()属于系统软件。 A.WINDOWS 2000 B.Word C.Flash D.3D MAX

2.下列哪个图是N-S图的构件()。 A. B. C. D. 3.对于螺旋模型,下列()不是利用笛卡尔坐标表达的活动。 A. 制定计划 B. 实施工程 C. 风险分析 D. 程序编码 三、多项选择题 1.软件危机可以表现为(ABCD )。 A.产品不符合用户的需要 B.软件产品的质量差 C.软件的可维护性差 D.软件的价格昂贵 2.Jackson图中一般可能包括(ABCD)。 A.表头 B.表体 C.表名 D.字段名 3.关于内容耦合的描述正确的是(AD )。 A、内容耦合是最高程度的耦合 B、应该尽量使用内容耦合 C、高级语言一般设计成允许内容耦合的形式 D、如果一个模块有多个入口,可能发生内容耦合 4.下列属于不标准的书写格式(BCD)。 A、书写时适当使用空格分隔 B、一行写入多条语句 C、嵌套结构不使用分层缩进的写法 D、程序中不加注释

软件工程知识点汇总

软件工程知识点汇总 1 软件工程、软件工程方法学:三要素 1.1 软件工程:○1应用系统化的、规范化的、可度量的方法来开发、运行和维护软件,即将工 程应用到软件;○2对○1的各种方法的研究 1.2 软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件的学科 1.3 软件工程三要素是:方法、工具、过程 软件工程的方法:是指完成软件开发各项任务的技术方法 软件工具:是指为软件工程方法的运用提供自动半自动的软件支撑环境 软件工程过程:是指将软件工程方法和工具综合起来以达到合理、及时地进行计算机软件开发这一目的 2 软件工程的原则包括:模块化原则、信息隐蔽原则、抽象化原则、模块独立原则(内聚、耦合)、 依赖倒转原则、开闭原则等 2.1 模块化原则:指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。模 块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要 适中,模块过大会使模块内部的复杂性增加不利于模块的理解和修改,模块过小会导致整 个系统表示过于复杂,不利于控制系统的复杂性。 2.2 信息隐蔽原则:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。 2.3 抽象化原则:抽取事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向 下,逐层细化的办法控制软件开发过程的复杂性。 2.4 模块独立原则:是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少 且接口简单。要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块间由松 散的偶合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。(即:高内聚低 耦合) 2.5 依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。 2.6 开闭原则:软件实体应该是可扩展的,但是不可以修改。即对于扩展是开放的,对于更改 是封闭的。 3 软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的工作原理、阶段、每阶段任务、 特点、示意图; 软件开发模型(也称为软件过程模型):是从软件项目需求定义开始直至软件经使用后废弃为止,跨 越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架 3.1 瀑布模型(又称线性模型): 3.1.1工作原理:规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 前一阶段的工作成果是后一阶段工作开始的基础.所以,每个阶段都必须交出合格的文档,必须对前阶段的工作进行评审,前一阶段的工作完成后才可以开始后一阶段的工作 3.1.2 阶段: 计划时期:问题定义、可行性研究 开发时期:需求分析、设计、编码、测试 运行时期:运行和维护 3.1.3 各阶段任务: 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.变换、数据存储、加工和数据流

软件工程期中考试以及答案

文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持. 1文档来源为:从网络收集整理.word 版本可编辑. 东莞理工学院(本科)试卷 2014--2015学年第2学期 考试时间90分钟 《软件工程》(期中考试) 把答案写到答题卡上否则不给分 一、 单项选择题请把答案写在下面表格中(每题2分共50分) 1、 瀑布模型下,采用结构化的方法,在它的生命周期各个阶段中,那个阶段出错对软件的影响最大( ) A 、概要设计阶段 B 、维护阶段 C 、测试排错阶段 D 、需求分析阶段 2、UML 是软件开发过程中的重要工具之一,它主要用于那种开发方法() 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 、DFD 图D 、SC 图 10、顺序图反映对象之间发送信息的时间顺序,它与()是同构的。 A 、类图 B 、状态图 C 、协助图D 、活动图 11、下面说法错误的是() A 、该图是对象图B 、borrowbook ()是方法C 、name 是属 D 、该图是类图 姓名:学号: 系别: 年级专业: ( 密封线内不答题 ) ……………………………………………密………………………… …… ……… ………封… ……………………………………线……………………………………

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

相关文档