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

软件工程复习内容

软件工程复习内容
软件工程复习内容

第一章软件危机与软件工程

第一节软件危机

一、计算机软件的发展

1.软件的定义

软件:计算机程序及其说明程序的各种文档。

?程序:按事先设计的功能和性能需求执行的指令序列

?文档:与程序开发、维护和使用有关的图文材料

2.软件的特点

1)是一种逻辑产品,与物质产品有很大的区别。

2)软件产品的生产主要是研制,生产成本主要在开发和研制,开发研制完成后,通过复制就产生了大

量软件产品。

3)软件产品不会用坏,不存在磨损,消耗。

4)生产主要是脑力劳动,还末完全摆脱手工开发方式。

5)开发软件的费用不断增加,致使生产成本相当昂贵。

3.软件生产的发展

1)程序设计时代这个阶段生产方式是个体劳动,生产工具是机器语言,汇编语言。(1946-1956年)

2)程序系统时代这个阶段生产方式是小集团合作生产,生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。(1956-1968年)

3)软件工程时代这个阶段生产方式是工程化的生产,使用数据库,开发工具,开发环境,网络,分布式面向对象技术来开发软件。(1968年至今)

二、软件危机

1.定义:软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题

积累起来,形态尖锐的矛盾,导致了软件危机。

2.危机的表现:

1)经费预算经常突破,完成时间一再拖延。

2)开发的软件不能满足用户要求。

3)开发的软件可维护性差。

4)开发的软件可靠性差。

3.危机产生原因:

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

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

3)软件开发费用不断增加。

4)软件开发技术落后。

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

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

4.解决途径

?组织管理

?工程项目管理方法

?技术措施

?软件开发技术与方法

?软件工具

第二节软件工程

一、软件工程

1.定义

?用科学的知识和技术原理来定义,开发,维护软件的一门学科。

2.性质

?是一门综合性的交叉学科,它涉及计算机科学、工程科学、管理科学、数学等领域

3.目标

?付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护

费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

4.内容:

?开发技术和开发管理.

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

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

5.工程需要解决的问题:

?软件的费用,可靠性,可维护性,软件生产率和软件的重用。

6..W.Boehm 七条基本原理

作用: 确保软件质量和开发效率

内容:

1)用分阶段的生存周期计划严格管理软件开发

2)坚持阶段性评审

3)实行严格的产品版本控制

4)采用现代程序设计技术

5)结果应能清楚地审查

6)开发小组的成员少而精

7)要不断地改进软件工程实践经验和技术,要与时俱进

7.软件工程的特点

1)强调规范化。规范化使软件生产摆脱了个人生产方式,进入了标准化、工程化的阶段。

2)强调文档化。文档是使相互进行通信以达到协同一致工作的有利工具。同时按进度提交指定的文档,能使得软件生产过程中的不可见性变成为部分可见,从而便于对软件生产进度进行管理。最后,通过对提交的文档进行技术审查和管理复审,以保证软件的质量和有效的管理。

二、软件生命周期

1)定义

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

2)软件工程的7个阶段

?软件定义

?问题定义

?可行性分析

?需求分析

?软件开发

?系统设计

?编码

?测试

?软件维护

3)瀑布模型

?定义:将软件生存周期中各活动规定为依线性顺序连接的若干阶段?特点

?阶段的顺序性和依赖性

?推迟实现的观点

?质量保证

?存在问题

?不适合需求模糊的系统

第三节技术审查和管理审查

1.什么时候复审

?每阶段结束前

2.技术复审

?从技术角度确保质量

?降低软件成本(尽早发现问题)

3.管理复审

?成本、进度、经费等

作业:

一、名词解释

1.软件

2.软件工程

3.软件生存周期

二、选择

1.软件是一种产品。

A 物质B逻辑

C工具D文档

2.软件工程是一门学科。

A理论性B原理性

C工程性D心理性

3.软件生存周期中时间最长的是阶段。

A 需求分析

B 概要设计

C 测试

D 维护

三、简答

1.软件产品的特性是什么?

2.什么是软件危机?产生原因是什么?

3.软件生存周期有哪几个阶段?

第二章可行性研究与项目开发计划

第一节可行性研究

一、问题定义的任务和主要工作?

1. 问题定义的任务:将用户提出的要求具体化、定量化;确定研制系统的范围,明确研制的边界。

2. 问题定义阶段的工作:

(1) 通过调查研究,了解系统需求;

(2) 确定系统的功能需求、性能需求、可靠性需求、安全及保密性、资源、开发费用及开发进度等

的需求;

(3) 问题定义阶段的产品--系统目标与范围说明书。

二、可行性研究的目的

是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。

三、可行性研究的任务

从三个方面分析:

(1)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;

(2)经济可行性:经济效益是否超出开发成本;

(3)社会可行性:要开发的项目是否存在任何侵权问题,运行方式在用户组织内是否可行,现有管理制度

﹑人员素质﹑操作方式是否可行。

四、可行性研究的步骤

1.确定项目规模和目标;

2.研究正在运行的系统;收集﹑研究﹑分析现有系统的文档资料,实地考察系统访问有关人员,然后描绘现有系统的高层系统流程图。

3.建立新系统的高层逻辑模型;使用数据流图和数据字典描述数据在系统中的流动和处理情况。

4.导出和评价各种方案;导出若干较高层次的物理解决方法,根据技术可行性﹑经济可行性﹑社会可行性进行评估,得到可行的解决方法。

5.推荐可行方案;进行成本~效益分析,决定该项目是否值得开发,若值得开发那么解决方案是什么,并且说明该方案可行的原因和理由。

6.编写可行性研究报告;将上述可行性过程的结果写成相应文档,即可行性研究报告。

五、可行性研究报告的内容

可行性分析的结果是可行性研究报告,内容包括:

(1) 系统概述:说明开发的系统名称,提出单位和开发单位。

(2) 可行性研究的前提:系统目标;要求;约束和限制;可行性研究的基本准则等。

(3) 对现有系统的分析:处理流程,图示说明现有系统的处理流程和数据流程;现有系统存在的问题。

(4) 系统需求:主要功能;主要性能及其要求;操作要求;信息要求;限制性要求。

(5) 建议系统:系统目标;处理流程;系统结构,功能,性能;系统技术可行性;投资和效益分析;

操作可行性;法律可行性。

(6) 其它可选方案:与国内外同类型方案的比较;提出一两个可行性方案供论证和探讨。

(7) 制定下一阶段的预算。

(8) 结论性意见:由用户方、设计方和投资方共同签署意见。

第二节系统流程图(SDF)

一.定义:描述系统工程物理模型的工具,用图形符号来表示系统中各个元素,表达各元素之间的信息流动情况。

二.符号与实例:

第三节成本/效益分析

一、目的:是从经济角度评价开发一个新的软件项目是否可行。

效益:

?有形效益:用货币的时间价值表、投资回收期、纯收入等指标来度量。

?无形效益:从性质上、心理上进行度量。

二、几种有形效益的分析

1.货币的时间价值(利率)

公式:

F=P(1+I)n

P:表示现在存入的钱

F:表示P元钱在n年后的价值

例:

假定开发CAD系统共需20万元,系统建成后估计每年节约9.6万元。若年利率为5%,利用货币现在价值公式,请计算建立CAD系统后,5年内每年预计节约的费用的现在价值。

定义:是积累的经济效益等于最初的投资所需的时间.

思考:CAD系统的投资回收期为多少?

(20-17.8513)/8.2928=0.259

2+0.259=2.259(年)

3.纯收入

定义:是系统的累积经济效益(折合成现在值)与投资之差。

思考:CAD系统的纯收入为多少?

40-41.5630=21.563(万元)

第四节项目开发计划

项目开发计划是管理性的文档。

项目开发计划的内容:

1.项目概述:说明项目的各项主要工作;说明软件的功能﹑性能;为完成项目应具有的条件;用户及合

同承包者承担的工作完成的期限及其他条件限制;应交付的程序名称;所使用的语言及程储形式;应交付的文档。

2.实施计划:说明任务的划分,各任务责任人,项目开发进度,项目的预算,各阶段的费用支出,各阶

段应完成的任务,用图表说明每项任务的开始和完成时间。

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

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

举例

一、名词解释

1.纯收入

2.系统流程图

二、选择

1.可行性研究的目的是。

A 开发项目

B 项目值得开发否

C 规划项目

D 维护项目

2.可行性研究要进行一次需求分析。

A 详细的

B 全面的

C 简化、压缩的

D 彻底的

3. 系统流程图用于可行性分析中的_____的描述。

A.当前运行系统B.当前逻辑模型

C.目标系统D.新系统

4.系统流程图是描述的工具

A 逻辑系统

B 程序系统

C 体系结构

D 物理系统

三、简答题

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

2.可行性研究有哪些步骤?

3.可行性研究的目的。

4. 项目开发计划的内容。

第三章需求分析

第一节需求分析的任务

一、需求分析的概念

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

在进行需求分析时,有以下几个难点:

⑴问题的复杂性。由用用户需求涉及的因素繁多引起,如运行环境和系统功能

⑵交流障碍。需求分析涉及人员较多,这些人具备不同的背景知识,处于不同角度,扮演不同角色,造成相互之间交流困难。

⑶不完备性和不一致性。用户对问题的陈述往往是不完备的,各方面的需求可能还存在矛盾,需求分析要消除矛盾,形成完备及一致的定义。

⑷需求易变性。

二、需求分析的目的

目的:是使软件设计人员和用户之间进行全面和深入的沟通,以明确用户所需的究竟是一种什么样的软件。

三、需求分析的任务(步骤)

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

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

⒊编写文档:

?编写"需求规格说明书"

?编写"初步用户使用手册"

?编写"确认测试计划"

?"修改完善软件开发计划"

四、需求分析的原则

1.必须能够表达和理解问题的数据域和功能域

2.按自顶向下、逐层分解问题

3.要给出系统的逻辑视图和物理视图

第二节结构化分析方法

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

结构化(SA)分析步骤:

⑴了解当前系统的工作流程,获得当前系统的物理模型。

⑵抽象出当前系统的逻辑模型。

⑶建立目标系统的逻辑模型。

⑷作进一步补充和优化。

一、数据流图:是描述数据处理过程的工具。

1.数据流图的含义

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

2.数据流图的特性

(1)抽象性:在DFD中具体的组织机构、工作场所、物质流等都已经去掉,只剩下信息和数据存储、流动、使用以及加工的情况。故描述的是抽象出来的数据。

(2)概括性:它把系统对各种业务的处理过程联系起来考虑,形成一个总体,可反映出数据流之间的概括情况。

3. 数据流图基本符号及实例

4.数据流图的用途

(1)系统分析员用这种工具可以自顶向下分析系统信息流程。

(2)可在图上画出需要计算机处理的部分。

(3)根据数据存贮,进一步作数据分析,向数据库设计过渡。

(4)根据数据流向,定出存取方式。

(5)对应一个处理过程,用相应的语言、判定表等工具表达处理方法。

5.数据流图的优缺点

(1)总体概念强,每一层都明确强调“干什么”,“需要什么”,“给出什么”。

(2)可以反映出数据的流向和处理过程。

(3)由于自顶向下分析,容易及早发现系统各部分的逻辑错误,也容易修正。

(4)容易与计算机处理相对照。

(5)不直观,一般都要在作业流程分析的基础上加以概括、抽象、修正来得到。

(6)如果没有计算机系统帮助的话,人工绘制太麻烦,工作量较大。

6.数据流图画法

(1)画数据流图的一般原则

画数据流图的基本步骤概括地说,就是自外向内,自顶向下,逐层细化,完善求精。

(2)数据流图的分层方法以及应该注意的几个问题

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

●编号。某个加工分解成加一张数据流图时,上层图为父图,下层图为子图。子图应编号,子图上的

所有加工也应编号,子图的编号应与父图的编号相对应。

(父图编号.子图的加工编号)

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

●局部数据存储。通常是本图中某些加工之间的数据接口。

二、数据字典

1.数据字典的定义

数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具。数据流图和数据字典共同构成系统的逻辑模型。

2.数据字典的内容

有以下四类条目:数据流,数据项,数据存储,基本加工。

(1)数据流条目,内容及举例如下:

报名单=姓名+性别+年龄+学历+身份证号码+地区+职业+待考专业

成绩单=姓名+专业+{科目+考生时间+成绩}6

1

考试通知单=姓名+专业+{科目+考生时间+成绩}6

1

准考证=编号+姓名+性别+年龄+身份证号

总报名单={报名单}+各专业人数+总人数

(2)数据项条目,内容及举例

数据项条目:是不能再分解的数据单位.

数据项名称:成绩

别名:无

类型:实型

长度:6位,保留1位小数

数据项名称:准考证编号

别名:无

类型:字符串

长度:10

取值范围及含义:前四位表示专业,后几位表示本专业内编号

(3)加工条目,内容及举例

加工名称:EMS

编号:无

输入:报名单、本次成绩

输出:准考证、成绩单、毕业证、考试通知单、总报名单、统计表

加工逻辑:对全市的成人自学考试进行管理,主要功能有:报名、考试、成绩管理等。

(4)数据存储条目,内容及举例

数据存储名称:考生数据库

15

组成:准考证编号+姓名+性别+年龄+地区+职业+{科目+成绩}

1

组织方式:索引文件,以准考证编号为关键字

查询要求:要求能立即查询

3.数据字典的实现

⑴手工建立:数据字典的内容用卡片形式存放

⑵利用计算机辅助建立并维护

举例

一、名词解释

1.SA

2.DFD

二、选择

1.系统流程图是描述的工具

A 逻辑系统

B 程序系统

C 体系结构

D 物理系统

2. 数据字典中,一般不包括条目。

A、数据流

B、数据存储

C、加工

D、源点与终点

三、简答题

1.什么是需求分析?该阶段的基本任务是什么?

四、综合应用题

第四章软件概要设计

第一节概要设计的基本任务

软件设计是把一个软件需求转换为软件表示的过程,而软件概要设计就是设计出软件的总体结构框架。而后对结构的进一步细化的设计就是软件的详细设计或过程设计。

一、概要设计的任务

1、设计软件系统结构(软件结构)

2、数据结构及数据库设计

对于大型的数据处理的软件系统,除了控制结构的模块设计外,数据结构与数据库设计也非常重要

3、编写概要设计文档

?概要设计说明书

?数据库设计说明书,主要给出所使用的DBMS简介、数据库的概念模型、逻辑设计、结果

?用户手册,对需求分析阶段编写的用户手册进行补充

?修订测试计划,对测试策略、方法、步骤提出明确要求

4、评审

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

二、概要设计的步骤

一般步骤如下:

1.设计系统方案

2.选取一组合理的方案

3.推荐最佳实施方案

4.功能分解

5.软件结构设计

6.数据库设计、文件结构的设计

7.制定测试计划

8.编写概要设计文档

9.审查与复审概要设计文档。

第二节软件设计的基本原理

一、模块化

模块:指在程序中的数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素。如高级语言中的过程,函数、子程序等。每个模块可以完成一个特定的子功能,各个模块可以按一定方法组装起来成为一个整体。从而实现整个系统的功能。

模块化:是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。

二、抽象

抽象:是抽出事物本质的共同的特性而在不考虑它的细节,不考虑其他因素。

三、信息隐蔽

信息隐蔽:是指在设计和确定时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的。

四、模块独立性

模块独立性:是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。

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

1.模块独立性的重要性

(1)具有独立的模块的软件比较容易开发出来。这是由于能够分割功能而且接口可以简化,当许多人分工合作开发同一个软件时,这个优点尤其重要。

(2)独立的模块比较容易测试和维护。这是因为相对说来,修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够“插入”模块。总之,模块独立是优秀设计的关键,而设计又是决定软件质量的关键环节。

模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。

?耦合衡量不同模块彼此间互相依赖(连接)的紧密程度。

?内聚衡量一个模块内部各个元素彼此结合的紧密程度。

2.耦合

耦合是对一个软件结构内各个模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,调用模块的方式,以及通过接口的信息。

具体区分模块间耦合程度的强弱的标准如下:

(1)无直接耦合:指两个模块之间没有直接的关系,他们分别从属于不同模块的控制与调用,它们之间不传递任何信息。

(2)数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。

(3)标记耦合:指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名等这些名字即为标记,其实传递的是这个数据结构的地址。

(4)控制耦合:指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等)被调用模块通过该控制变量的值有选择地执行块内某一功能。

如何将控制耦合改变为数据耦合?

方法:将被调模块内的判定上移到调用模块中去同时将被调模块按其功能分解为若干单一功能模块。

(5)公共环境耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。

(6)内容耦合:是指一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。

总之,耦合是影响软件复杂程度的一个重要因素。应该采取的原则是:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。

2.内聚

内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。

(1)偶然内聚:将语句和程序段随意地组合在一起,它们之间无任何关系。

(2)逻辑内聚:逻辑上相似的各成分组合在一起。

(3)时间内聚:同一时间内执行的各成分组合在一起。

(4)通信内聚:在同一数据结构上操作的各成分组合在一起

(5)顺序内聚:与同一功能相关的且按顺序执行的各成分组合在一起。

(6)功能内聚:仅为完成一个功能的各成分组合在一起。

耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚,低耦合,提高模块的独立性。在内聚性与耦合性发生矛盾的时候,最好优先考虑耦合性,也就是先保证耦合性低一些。

例题:

第三节结构设计原则

首先应学会用图形表示软件结构,软件结构图反映了整个系统的功能实现,即将来编好程序中的控制层次体系。软件结构往往用树状或网状结构的图形来表示。

改进软件设计、提高软件质量的原则:

1、模块的划分:要做到高内聚,低耦合,保持相对独立性。

2、模块的控制:模块的作用范围要在他的控制范围内,判定所在的模块应与受其影响的模块在层次上尽量靠近)

3、形成的结构;软件结构的深度、宽度、扇出、扇入要适当

4、模块的大小: 要适中。

5、模块的接口:模块的接口要简单、清晰、含义明确,便于理解、易于实现、测试与维护)。

第四节面向数据流的设计方法

(一)面向数据流的设计方法

面向数据流的设计方法是以需求阶段产生的数据流图为基础,按一定的步骤映射成软件结构,因此又称为结构化设计(Structured Design SD)。

1、首先要研究数据流图(DFD)的类型,无论何种软件系统,DFD一般都可分为变换型和事务型两类。

变换型数据流图:所谓变换就是把输入的数据处理后变成另外的数据输出,所以变换型数据的工作过程就是三步:取得数据、变换数据和输出数据。

事务型数据流图:所谓事务也是一个处理,但不是数据变换,而是将输入数据流分离成许多发散的数据流,形成许多加工路径,并根据值选择其中一个路径来执行。

在大型软件系统中的DFD数据流图中,这两种类型特征都有可能存在。

2、SD方法设计过程

1)精化DFD。

2)确定DFD类型并进行相应的映射。

3)分解上层模块,设计中下层模块结构

4)根据优化准则对软件结构求精。

5)描述模块功能、接口及全局数据结构

6)复查,如果有错则转向2)修改完善,否则进入详细设计。

3、变换分析设计

4、事务分析设计

5、综合型数据流图与分层数据流图映射成软件结构的设计

6、设计后的处理,在软件结构形成之后,我们知道,概要设计的基本任务还有文档的编写,在这个阶段就是要编写一些文档,包括:

(1)为每个模块写一份处理说明

(2)为每个模块提供一份接口说明

(3)数据结构说明

(4)给出设计约束或限制

(5)进行概要评审

(6)设计优化。

综合题

举例

一、名词解释

1、软件设计

2、模块化

3、信息隐蔽

4、模块独立性

5、耦合性

6、内聚性

二、选择

1、结构化设计方法在软件开发中,用于。

A、测试用例设计

B、概要设计

C、程序设计

D、详细设计

2、为了提高模块的独立性,模块之间最好是。

A、公共耦合

B、控制耦合

C、内容耦合

D、数据耦合

3、为了提高模块的独立性,模块内部最好是。

A、逻辑内聚

B、时间内聚

C、功能内聚

D、通信内聚

4、划分模块时,一个模块的。

A、作用范围应在其控制范围之内

B、控制范围应在其作用范围之内

C、作用范围与控制范围互不包含

D、作用范围与控制范围不受任何限制

三、简答题

1、软件概要设计的基本任务是什么?

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

3、模块的耦合性、内聚性包括哪些种类?各表示什么含义?

第五章软件详细设计

详细设计是软件设计的第二阶段,主要确定每个模块具体执行过程,所以也称为“过程设计”。

第一节详细设计的基本任务

1、为每个模块进行详细的算法设计。

2、为模块内的数据结构进行设计。

3、对数据库进行物理设计。

4、其他设计

?代码设计

?输入输出格式设计

?人机对话设计设计

5、编写详细设计说明书

6、评审

第二节结构化程序设计设计方法

结构化程序设计的基本要点:

1、采用自顶向下、逐步求精的程序设计方法。

2、使用三种基本控制结构构造程序。

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

3、主程序员组的组织形式。

详细设计的目标不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程清晰易读。结构化程序设计是实现该目标的关键技术之一,它指导人们用良好的思想方法开发出易于理解、易于验证的程

序。

第三节详细设计描述法

详细设计的描述方法有:图形描述、语言描述和表格描述。这一节介绍以下几种:N-S图和PAD图是图形描述,判定表和判定树是表格描述,程序设计语言是语言描述。

一、N-S图

例如,下列伪码可用盒图表示。

if P

while Q

F

endwhile

else

G

N

endif

利用盒图进行详细设计有以下好处:

1.功能域明确;

2.不可能任意转移;

3.很容易确定全局和局部数据的作用域;

4.很容易表现嵌套关系,也可以表示模块的层次结构。

二、PAD图

例如,上例中的伪码可转换为PAD图,如下所示。

PAD图有以下优点:

1.使用PAD图设计出来的程序必然是结构化的程序;

2.PAD图所描述的程序结构非常清晰;

3.PAD图表现的程序逻辑易读、易懂、易记;

4.容易将PAD图转换成程序;

5.PAD图还可以描述数据结构;

6.PAD图支持自顶向下、逐步求精方法的使用。

PAD图的结构类似于树型结构,如果按照自上而下、自左至右的顺序走树,即可将PAD图转换为相应的算法乃至程序,这些可有计算机自动实现。

三、判定表/判定树

例:“检查定货单”的处理逻辑是:如果金额超过1000元而未过期,则发出批准单和提货单;

如果金额超过1000元,但已过期,则不发出批准单;如果金额低于1000元,则不论是否过期都发出批准单和提货单,在过期的情况下,还要发出通知单。

判定树实质上是判定表的一种变形。

四、程序设计语言

程序设计语言(Program Design Language,简称PDL),是一种描述模块算法和处理细节的语言,语法是开放式的,其外层语法是确定的,而内部语法则故意不确定。

用PDL表示的程序结构一般有以下几种

例如,在下面的PDL描述中,外层语法if-then-else是确定的,内层操作“square root of X”是不确定的。

if X is not negative

then

return(square root of X as a real number);

else

return(square root of -X as an imaginary number);

end if

PDL有以下几点优点:

1.由于同自然语言(英语)比较接近,故易于理解;

2.可以作为注释嵌套在源程序中成为程序的内部文档,这将有效地提高程序的可读性

和可理解性;

3.由于是语言形式,所以易于被计算机处理,如编辑;

4.由于同程序是同结构的,相对来说,从中自动产生程序也较容易。

举例

一、选择题

1. 在详细设计阶段,一种二维树型结构并自动生成程序代码的描述工具是()

A、PAD

B、PDL

C、IPO

D、判定树

2.在详细设计阶段,可自动生成程序代码并可作为注视出现在源程序中的描述工具是()

A、PAD

B、PDL

C、IPO

D、流程图

二、简答题

1.结构化程序设计方法的基本要点是什么?

2.详细涉及主要使用那些描述工具?

第六章软件编码

一、程序设计语言的特性

程序设计语言有三个特性,他们是:心理特性、工程特性和技术特性。

二、程序设计风格

程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。

举例

一、简答题

1.程序设计语言的特性?

2、什么是程序设计风格?

第七章软件测试

7.1 软件测试的目的

一、软件测试的目的

软件测试的目的是为了发现错误。因此

1、软件测试就是为了发现错误而执行程序的过程。

2、一个好的测试是发现了至今尚未发现的错误测试。

3、一个成功的测试是发现了至今尚未发现错误的测试。

二、软件测试的原则

在软件测试中,应注意以下指导原则:

1.测试用例应有输入数据和预期的输出数据两部分组成。

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

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

4.应制定测试计划并严格执行。

5.长期保留测试用例。

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

7.程序员避免测试自己的程序。

7.2 测试方法

一、静态测试和动态测试

●静态测试是指被测程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进

行检测。

●动态测试是指通过运行程序发现错误。一般意义的测试多指动态测试。

动态测试分为黑盒法和白盒法两种。

●黑盒法,是指测试人员完全不考虑程序的内部结构和处理过程,只在软件接口处进行测试,依据需

求规格说明书,检查程序是否满足功能要求。

●白盒法,是指测试人员须了解程序内部结构和处理过程,以检查处理过程的细节为基础,对程序中

尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。

两种测试法都不可能对程序进行穷举测试。

7.3测试用例的设计

一、白盒技术

白盒测试是结构测试,所以被测对象基本上是源程序,以程序内部逻辑为基础设计测试用例。

(1)语句覆盖:就是要设计足够多的测试用例(也就是输入的数据),使被测程序中每个语句至少执行一次。

(2)判定覆盖:指设计足够的测试用例,使得程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次,因此判定覆盖又称为“分支覆盖”。

(3)条件覆盖:是指设计足够的测试用例,使得判定表达式中每个条件的各种可能的值至少出现一次。

(4)判定/条件覆盖:是指设计足够的测试用例,使得判定表达式中每个条件的所有可能取值至少出现一次并且每个判定表达式至少获得一次“真”值和“假”值。

(5)条件组合覆盖:是指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次。

(6)路径覆盖:是指测设计足够的测试用例,覆盖被测试程序中所有可能的路径。

例题:下图描述了某子程序的处理流程,根据判定覆盖、条件覆盖、判定/条件覆盖,条件组合覆

盖、路径覆盖等五种覆盖标准,设计测试数据。

-

(知识点快速复习)软件工程方法与实践

lei xiao

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

软件工程期末考试重点

软件工程期末考试重点 《软件工程》期末复习重点 第一章软件工程 1. 什么是软件工程。 A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。2. 软件工程的三要素:方法、工具和过程。 第二章软件过程 1. 软件生命周期分为哪几个阶段?每个阶段的基本任务是什么? a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么 可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么 b.软件开发:具体设计和实现在前一个时期定义的软件。概要设计:怎样宏观地解决问题 详细设计:应如何具体地实现这个系统 编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。 c.运行维护:修正错误,使软件持久地满足用户需要。改正性维护:诊断和改正使用中的错误适应性维护:修改

以适应环境变化 完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备 2. 常用的过程模型有哪些?各自的特点及不足。如:瀑布模型的不足是不能适应需求的动 态变更。 A.瀑布模型 特点: 可强迫开发人员采用规范化的方法。严格地规定了每个阶段必须提交的文档。要求每个阶段交出的所有产品都必须是经过验证的。 缺点:太理想化,于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。如果需求规格与用户需求之间有差异,就会发生这种情况。只适用于项目开始时需求已确定的情况。 B.快速原型模型 特点:快速 软件产品开发基本上是线性顺序进行。降低了规格说明文档变化的可能性。减少了后续阶段错误的可能性。 c.增量模型 1 优点: 人员分配灵活,刚开始不用投入大量人力资源。

软件工程期末试题(含答案)解析

一、填空题(每空1分,共25分) 1.软件生存周期一般可以划分为,问题定义、可行性研究、需求分析、设计、编码、测试和运行 和维护。 2.基于软件的功能划分,软件可以划分成___系统软件_、支撑软件、应用软件__三种。 3.可行性研究,应从经济可行性、技术可行性、运行可行性、法律可行性和开放方 案可行性等方面研究。 4.系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子 形式描绘系统里面的每个部件 5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、加工、数据流和数据存储文 件。 6.结构化分析方法是面向_数据流_进行需求分析的方法。结构化分析方法使用_数据流图DFD_与_ 数据字典_来描述。 7.继承性是自动地共享类、子类和对象中的方法和数据的机制。 8.软件详细设计工具可分为3类,即_图示工具_、_设计语言_和_表格工具_。 9.为了在软件开发过程中保证软件的质量,主要采取下述措施:_审查__、复查和管理复审、___ 测试_。 10.大型软件测试包括单元测试、集成测试、确认测试和系统测试四个步骤。 二、单项选择题(每小题2分,共20分) 1.软件设计中划分模块的一个准则是(C )。 A、低内聚低耦合 B.低内聚高耦合C.高内聚低耦合 D.高内聚高耦合 2.Jackson设计方法是由英国的M. Jackson提出的,它是一种面向( C )的软件设计方法。 A、对象 B.数据流 C.数据结构 D.控制结构 3.试判断下列叙述中,哪个(些)是正确的( C )。 a、软件系统中所有的信息流都可以认为是事务流 b、软件系统中所有的信息流都可以认为是变换流 c、事务分析和变换分析的设计步骤是基本相似的 A、a B、b C、c D、b和c 4.( A )是用户和设计交换最频繁的方法。 A、原型化方法 B、瀑布模型方法 C. 螺旋模型方法D、构件组装模型 5.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证 是( C )。 A、硬件环境 B、软件开发的环境 C.软件开发工具和软件开发的环境 D、开发人员的素质 6.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言 ( D )。 A、PASCAL B、 VISUAL BASIC C. C++ D、汇编语言 7.软件测试的目的是?( D ) A、证明软件的正确性 B.找出软件系统中存在的所有错误 C.证明软件系统中存在错误 D.尽可能多的发现软件系统中的错误 8.使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。 A、程序的内部逻辑 B、程序的复杂程度 C、该软件的编辑人员 D、程序的功能 9.软件维护工作的最主要部分是( C )。 A、校正性维护 B、适应性维护 C.完善性维护 D、预防性维护

软件工程一级学科的发展和内容(精)

软件工程一级学科简介 一、软件工程一级学科出现的理由: (一软件工程学科已发展为计算机科学与技术、数学、工程学、管理学等相关学科的交叉性学科。传统的计算机科学与技术学科已经涵盖不了软件工程可归属的二级学科问题, 不适应软件产业对软件工程人才培养的需要。 (二软件工程学科已形成较完整的理论与工程技术体系,课程体系基本明确,高端人才培养能力基本形成,创新型复合型人才的社会需求不断提高。 (三软件工程涉及软件产业、信息产业和现代服务业,代表未来社会产业发展方向。 (四现有软件工程人才培养体系不完整,需要通过进一步学科建设方能适应产业发展对高端人才的需求。 二、软件工程学科的主要支撑二级学科: 软件工程理论 软件工程技术 软件工程管理 软件服务工程 三、软件工程学科的主要研究方向及研究内容: (一软件工程理论:主要研究软件工程形式化方法、软件自动生成与演化、软件建模分析与验证、软件行为学等。

(二软件工程技术:主要研究需求工程、软件方法学、软件规范语言、软件体系结构、软件测试与质量保证、软件再工程、基于模型和逻辑推理的软件验证方法、软件工程环境与开发工具、面向领域的软件工程方法与技术等。 (三软件工程管理:主要研究软件配置管理、软件过程技术、软件项目管理、软件度量方法与技术等。 (四软件服务工程:主要研究软件服务的理论、方法、技术与应用,软件工程过程服务、面向服务的计算及服务工程。 四、研究生培养 软件工程学术型硕士研究生的课程设置侧重于软件理论知识和学术基础研究, 核心课程包括算法分析与设计、并行与分布式计算、软件工程的形式化方法、软件工程统计方法、软件工程经济学、软件需求工程、软件体系结构、软件质量工程、软件项目管理、信息系统安全、机器学习与知识发现、数据服务工程、软件服务工程等。

软件工程方法学作业6-答案

1. 软件设计一般分为总体设计和详细设计,它们之间的关系是(B)。 A. 全局和局部 B. 抽象和具体 C. 总体和层次 D. 功能和结构 2. 软件结构使用的图形工具,一般采用(C)图。 A. DFD B. PAD C. SC D. E-R 3. 下列中属于软件设计的基本原理的是(D)。 A. 数据流分析设计 B. 变换流分析设计 C. 事务流分析设计 D. 模块化 4. 在软件结构的后处理中,下列说法错误的是(E)。 A. 为模块写的处理说明及接口说明可采用IPO图 B. 数据结构的描述可用Warnier图或Jackson图 C. 给出设计约束或限制。如数据的边界值、数据类型、格式、内存容量及时间的限制 D. 在概要设计评审中,应着重评审软件需求是否得到满足及软件结构的质量等 E. 设计的优化工作主要放在软件结构设计的后处理阶段 5. 在分层数据流图映射成软件结构的设计中,下列说法错误的是(D)。 A. 分层的数据流图映射成软件结构图也应该是分层的 B. 软件结构图的物理输入与输出部分放在主图中较为合适 C. 分层DFD图的映射方法:主图是变换型,子图是事务型;或主图是事务型,子图是变换型 D. 变换型通常用于高层数据流图的转换,而事务型通常用于较低层数据流图的转换 6. 软件设计阶段一般又可分为(B)。 A. 逻辑设计与功能设计 B. 概要设计与详细设计 C. 概念设计与物理设计 D. 模型设计与程序设计 7. 结构图中,不是其主要成分的是(C)。 A. 模块 B. 模块间传递的数据 C. 模块内部数据 D. 模块的控制关系 8. 好的软件结构应该是(B)。 A. 高耦合、高内聚 B. 低耦合、高内聚 C. 高耦合、低内聚 D. 低耦合、低内聚 9. 结构分析方法就是面向(B)自顶向下逐步求精进行需求分析的方法。 A. 目标 B. 数据流 C. 功能 D. 对象 10. 程序内部的各个部分之间存在的联系,用结构图表达时,最关心的是模块的内聚性

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

《软件工程》 期末考试试卷 考生注意:1.本试卷共有五道大题,满分100分。 2.考试时间90分钟。 3.卷面整洁,字迹工整。 4.填写内容不得超出密封线。 一、名词解释题(每小题3分,共15分) 1.软件生存周期模型 2.数据字典DD

3.内聚性 4.JSP方法 5.多态性 二、填空题(每空2分,共20分) 1.在软件开发过程中要产生大量的信息,要进行大量的修改,能协调软件开发,并使混乱减到最低程度。

2.规定功能的软件,在一定程度上对自身错误的作用具有屏蔽能力,则称此软件具有的软件。 3.McCall提出的软件质量模型包括个软件质量特性。 4.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、、可使用性和效率。 5. 为了便于对照检查,测试用例应由输入数据和预期的两部分组成。 6. 程序设计语言的心理特性主要表现在、简洁性、传统性、局部性和顺序性。 7. 软件结构是以为基础而组成的一种控制层次结构。 8. 使用类创建对象的过程实际上是类的过程。 9. 结构化语言是介于自然语言和之间的一种半形式语言。 10.若年利率为i,不计复利,n年后可得钱数为F,则现在的价值P= 。 三、简答题(每小题5分,共20分)

2.以G.J.Myers的观点,简述对软件测试的目的。 3.就程序设计语言的工程特性而言,对程序编码有哪些要求? 4.模块的内聚性包括哪些类型?

四、理论应用题(每小题15分,共30分) PDL语言描述在数组A(1)~A(10)中找最大数的算法。 2.根据下列条件使用等价类划分法设计测试用例。某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065。

软件工程要点(包括部分内容)

1,软件工程基本概念 软件工程是软件工程师用工具和技术(方法),按照某一过程和范例来构造软件,从而增强软件产品的质量,更有效地解决问题. 2,软件危机的原因 a , 软件产品是复杂的人造系统,具有复杂性、不可预见性和易变性,难以处理。 b ,个人和小组非常有效的开发小型软件的编程技术和过程,在开发大型、复杂系统时难以发挥同样的作用。 c ,软件是知识产品,技术更新快,行业竞争激烈,难以在可以接受的成本和工期内提供高质量的产品。 3,软件工程包括的四个元素(特点) 方法(methods) 语言(languages) 工具(tools) 过程(procedures) 4,软件的生命周期(由哪几部分组成) 计划需求分析设计程序编写测试运行维护等六个步骤 5,瀑布模型(有哪几种模型) 6,面向对象生存期模型 7,面向对象性—统一过程 8,可行性研究目的、任务(技术、经济、操作) 目的:确定问题是否值得去解 任务 进一步分析和澄清问题的定义 导出系统的逻辑模型 探索若干种解决方案,并分析各种方案的 技术可行性 经济可行性 操作可行性 对以后的行动方针提出建议 9,数据流图(*) 数据字典的定义 对数据流图中包含的所有元素的定义的集合 10,需求分析的任务,综合要求 分析系统的数据要求 导出系统的逻辑模型: 数据流图, 数据字典, 处理算法。 修正系统开发计划 开发原型系统 功能性能可靠性和可用性出错处理接口需求约束逆向需求 11,分析过程的基本方法 结构化分析方法(SA) 面向对象的分析方法(OOA) 12,什么是概念模型或信息模型 按用户的观点来对数据和信息建模

13,概念模型的基本概念E-R图 概念模型的基本概念 实体(Entity):客观存在并可相互区分的事务 属性(Attribute) 码(Key) 域(Domain) 实体型(Entity Type) 实体集(Entity Set) 联系 14,状态转换图 15,IPO图 16,知道有哪几种形式化说明技术 形式化方法:用基于数学的技术描述系统需求规格说明和设计结果。 非形式化方法:用自然语言描述系统需求规格说明和设计结果。 半形式化方法:用数据流图或E-R图描述需求规格说明和设计结果。17,总体设计的任务 划分出组成系统的物理元素;设计软件的结构。 18,总体设计的过程 设想供选择的方案:设计各种可能的分组。 选取合理的方案。 对每个方案准备以下资料: 系统流程图 物理元素清单 成本/效益分析 进度计划 推荐最佳方案,并制定详细的实现计划。 19,模块化(*)(概念) 模块化:将程序分成若干个模块。 模块化的目的:将复杂问题简单化。 模块化程度应适当。 20,抽象的定义 抽象是抽取事务的本质特性而暂不考虑细节 21,模块独立 模块的独立性:每个模块的功能相对独立,与其他模块的关系简单。 模块独立的优势 易于分工开发; 易于测试和维护。 通过模块化、抽象、信息隐蔽和局部化,即可达到模块独立。 22,耦合内聚(*) 低内聚 偶然内聚:一个模块完成的一组任务之间有松散的关系。 逻辑内聚:完成的任务在逻辑上属于相同或相似的一类。 时间内聚:完成的任务必须在同一段时间内执行。 中内聚

软件工程-原理、方法与应用【第三版】复习总结

第一章绪论 1.每18个月芯片的性能和速度均提高一倍,每隔12年软件生产大约提高一倍。 2.软件:是能够完成预定功能和性能的可执行的计算机诚信度。包括使程序正常执行所需的数据,以及有关描述程 序操作和使用的文档。即:软件= 程序+ 文档 3.软件的特征: 软件的开发不同于硬件设计、不同于硬件制造、不同于硬件维修。 4.软件危机出现的原因: 软件维护费用的急剧上升,直接威胁计算机应用的扩大; 软件生产技术进步缓慢,是家居软件危机的重要原因。 -------------------------------------------------------------------------------------------------------------------------------------------------------------------- 5.软件工程学的范畴: 软件开发技术(软件开发方法学、软件工具、软件工程环境)、软件工程管理(软件管理学、软件经济学、度量学)。 6.软件工程:是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件, 目的是为了实现按照预期的进度和经费完成软件生产计划,同时提高软件的生产率和可靠性。 7.软件的发展:大体经历了程序、软件、软件产品3个阶段。 8.工具和方法是软件开发技术的2大支柱。 9.3种编程泛型: 过程式编程泛型、面向对象编程泛型、基于构件技术的编程泛型 10.面向对象程序设计中,数据和操作被封装在一个对象中,对象之间则是通过消息相互联系。 11.构件:标准化/规格化的对象类。 12.常用变成力度的大小来比较3种编程泛型的差异。 粒度由小到大依次是:过程式编程范式、面向对象编程范式、基于构件的编程泛型。 13.软件工程的分化: 传统软件工程:结构化分析-》结构化设计-》面向过程编码-》软件测试 面向对象软件工程:OO分析与对象抽取-》对象详细设计-》面向对象的编码与测试 基于构件的软件工程(以可复用构件和测试工具为后盾): 领域分析和测试计划定制-》领域设计-》建立可复用构件库-》按‘构件集成模型’查找与集成构件 14.分析先于设计,设计先于编码,使程序(的结构)适合于问题(的结构)。 第二章软件生存周期与软件过程 1.软件生存周期:计划、开发、运行3个时期。 需求分析-》软件分析-》软件设计-》编码测试-》软件测试-》运行维护 2.需求分析(用户视角):功能需求、性能需求、环境约束、外部接口描述。 3.软件分析(开发人员视角):建立与需求模型一致的,与实现无关的软件分析模型。 4.软件设计:总体设计/概要设计、详细设计(确定软件的数据结构和操作)。 5.单元测试通常与编码同时进行。 6.软件测试:单元测试、集成测试、系统测试。 7.Boehm软件生存周期的划分:系统需求、软件需求、概要设计、详细设计、编码纠错、测试和预运行、系统维护。-------------------------------------------------------------------------------------------------------------------------------------------------------------------- 8.瀑布模型特点:阶段间的顺序性和依赖性、推迟实现的观点、保证质量的观点。 9.瀑布模型存在的问题:只有在需求分析准确的前提下,才能得到预期的结果。 快速原型模型:原型系统只包括对未来系统的主要功能以及系统的重要接口。特点:快速开发工具、循环、低成本。种类:渐进型、抛弃型。

软件工程期末考试参考试题

软件工程期末考试参考试题 一、填空题 1、软件生存周期一般可分为问题定义、可行性研究、需求分析、设计编码、测试、运 行与维护阶段。 2、按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。 3、可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和抉择。 4、用户界面的可使用性是用户界面设计最重要的也是最基本的目标。 5、常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的结构化设计 方(SD),以数据结构为基础构造模块的Jackson方法,以对象、类、继承和通信为基础的面向对象设计方法(OOD)。 6、数据流图和数据字典共同构成系统的逻辑模型。 7、软件测试的方法有分析方法和非分析方法(即黑盒法)。 8、单元测试一般以白盒测试为主,黑盒测试为辅。 9、成本估计方法主要有自底向上估计、自顶向下估计和算法模型估计三种类型。 10. 文档(document)—一种数据媒体和其上所记录的(数据)。 11 机器语言、汇编语言:依赖于机器,面向(机器) 12. 软件有效性(efficiency),指软件系统的时间和(空间)效率。 13. 软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。 14. 软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。 15. 为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。 16. 一个软件的深度是指其控制的(层数)。 17. 以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并 最终可运行的代码的过程叫(编码)过程。 18. 软件维护是软件生命周期的(最后)一个阶段 19. 软件工程由(方法)、工具和过程三部分组成,称软件工程的三要素。 20. 基于计算机系统的软件要素中的软部件由程序、数据和(文档)组成。 21. 数据流图就是用来刻画数据流和转换的信息系统建模技术。它用简单的图形记号分 别表示数据流、转换、(数据源)以及外部实体。 22. 被继承的类我们称之为基类(父类),在基类的基础上新建立的类我们称之为派生 类子类。 23. 流程图也称为程序框图是最常用的一种表示法,它有顺序、分支和(循环)三个基 本控制构件。 24. 机器语言和汇编语言,也称为(低级)语言。 25. 软件测试是执行程序发现并排除程序中潜伏的(错误)的过程。 26. 软件可维护性,是指软件产品交付使用后,在实现改正潜伏的错误、改进性能等属性、适应环境变化等方面工作的(难易)程度。 27. 软件可理解性,指系统具有清晰的结构,能直接反映问题的(需求)。 28 在实体-关系图简称E-R图中,数据对象实体用长方形、关系用(菱形)、属性用椭 圆表示。 29. 建立数据流模型要遵循的原则包括:每个加工至少应有一个输入数据流以反映被处 理数据的来源和一个(输出)数据流来反映加工的结果 30. 从工程管理的角度软件设计可分为概要设计和(详细)设计两大步骤。

软件工程期末试题(部分答案)

选择题 . 开发软件的高成本和产品的低质量之间有着尖锐的矛盾,这称作()。.软件投机.软件危机.软件工程.软件产生 . 软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是()。 .引入新技术提高空间利用率.用较少的投资获得高质量的软件.缩短研制周期扩大软件功能.硬软件结合使系统面向应用 . 瀑布模型把软件生存周期划分为软件定义、软件开发和()三个阶段,而每一阶段又可细分为若干个更小的阶段。 .详细设计.可行性分析.运行及维护.测试与排错 . 一个软件项目是否进行开发的结论是在()文档中作出的。 .软件计划.可行性报告.测试报告.需求分析说明书 . 常用的成本估计技术不包括()。 .任务分解.自动估计成本.代码行.投资回收估算 . 需求分析说明书不能作为()。 .可行性研究的依据.用户和开发人员之间的合同.系统概要设计的依据.软件验收测试的依据 . 需求分析需要确定的系统基本需求不包括()。 .开发语言.功能.性能.接口 . 状态图中定义的状态不包括()。 .初态.终态.中间状态.事件 . 验证软件正确性不包括()。 .一致性.易操作性.完整性.有效性 . 软件的()设计主要任务是建立软件系统的总体结构。 .总体.抽象.逻辑.规划 . 下面()不是模块化设计的目的。 .可采用结构化设计方法.降低复杂度 .有利于信息隐蔽.描述系统的功能与性能 . 模块内部的算法设计在结构化方法的()阶段进行。 .系统分析.概要设计.详细设计.可行性分析 . ()先于任何技术活动之前开始,贯穿于软件的整个生命周期中。 .项目计划.风险评估.软件测试.软件项目管理 . 实现包括编码和()两个阶段。 .选择开发工具.测试.数据库设计.程序复杂度计算

软件工程简答题

简答题: 软件工程的内容和方法 1.开发文档都有哪些?用图来表示他们之间的关系。 开发文档包括目标程序、源程序、详细设计说明书、概要设计说明书、需求规格说明书、用户需求报告、软件合同,它们之间的关系如图所示。 2.说明软件工程研究的内容。 软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。 其中软件开发方法的内容又含盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级。 常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型。 软件支持过程由所支持的CASE工具组成,常用的CASE工具有PowerDesigner和RationalRose。 软件管理过程主要有CMMI、ISO9000、微软企业文化和敏捷文化现象。 3.请详细解释软件的定义和程序的定义。 软件的定义:软件=程序+数据+文档。这里的程序是指程序系统。这里的数据不仅包括初始化数据、测试数据,而且包括研发数据、运行数据、维护数据,也包括软件企业积累的项目工程数据和项目管理数据中的大量决策原始记录数据。这里的文档指的是软件开发过程中的分析、设计、实现、测试、维护文档、管理文档。 现在有一种新提法正在引起关注,这种提法是:软件=知识+程序+数据+文档。 程序是计算机为完成特定任务而执行的指令的有序集合。从应用的角度可理解为: 面向过程的程序=算法+数据结构 面向对象的程序=对象+信息 面向构件的程序=构件+构架 4.是否存在这样一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI 和ISO模式只适用于搞应用软件的企业?如果是,为什么?如果不是,又是为什么? 不是。因为CMMI和ISO9000模式规定了严格的管理制度、文档和评估软件能力与成

软件工程教学大纲正式版

软件工程教学大纲正式 版 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】

《软件工程导论》课程教学大纲一、课程基本信息 课程编号: 英文名称名:Software Engineering 总学时:54学时 学分:3 课程类别:专业必修课 适用专业:全校本(专)计算机科学与技术 先修课程:数据结构,大学数学,离散数学,计算机算法设计。 二、课程性质与目的、要求 《软件工程》是计算机专业的一门工程性基础课程,在软件工程学科人才培养体系中占有重要的地位。软件开发是建立计算机应用系统的重要环节,人们通过软件工程学把软件开发纳入工程化的轨道,而软件工程学是用以指导软件人员进行软件的开发、维护和管理的科学。《软件工程》已成为高等学校计算机软件教学体系中的一门核心课程, 本课程以IEEE最新发布的软件工程知识体系为基础构建内容框架,注重贯穿软件开发整个过程的系统性认识和实践性应用,以当前流行的统一开发过程、面向对象技术和UML语言作为核心,密切结合软件开发的先进技术、最佳实践和企业案例,力求从“可实践” 软件工程的角度描述需求分析、软件设计、软件测试以及软件开发管理,使学生在理解和实践的基础上掌握当前软件工程的方法、技术和工具。 通过本课程的学习,要求学生能掌握软件工程的基本概念、基本原理、开发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准和规范等;学生应能掌握开发高质量软件的方法,以及有效地策划和管理软件开发活动,为学生参加大型软件开发项目打下坚实的理论基础。 本课程注重培养学生理论应用于实践的能力,课堂上教师向学生讲述软件工程中的相关原理和概念,并通过课程设计,培养学生对整个软件开发过程的能力,让学生能切实体会到软件工程在实践中的指导作用,并按软件工程的要求完成规范的各项软件开发文档。本课程对提高学生的软件开发能力和项目管理能力有重要的现实意义。 三、教学内容及学时分配 本课程的教学内容共分十三章。

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

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

软件工程期末试题及答案

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

软件软件工程的基本概念和特点

2017-2018 学年第一学期第四次作业 专业:计算机科学与技术班级:17级3班学号:姓名:任亚磊 作业内容: 简述软件、软件工程的基本概念和特点 软件: 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操作信息的数据结构;文档是与程序开发,维护和使用有关的图文资料。 软件的特点: 1.软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性 2.软件的生产和硬件不同,在它的开发过程中没有明显的制造过程、没有磨损 3.在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。 4.软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同的依懒性 5.软件的开发至今尚未完成摆脱手工艺的开发方式,没有实现自动化 6.软件本身是复杂的、实际问题的复杂性、程序逻辑结构的复杂性 7.软件的成本相当昂贵。 8.相当多的软件工作涉及社会因素。 软件的分类: 1.系统软件:操作系统、数据库管理系统、设备驱动程序、通信处理程序 2.应用软件:商业数据处理软件、工程和科学计算软件、系统仿真软件 软件的其他角度分类: a.按规模划分:微型软件、小型、中型、大型、甚大型、极大型 b.按工作方式划分:实时处理软件、分时软件、交互式软件、批处理软件 c.按软件服务对象的范围划分:项目软件、产品软件 软件生产的发展: 1 程序设计时代:这个阶段生产方式是个体劳动,生产工具是机器语言,汇编语言。(1946-1956年) 2 程序系统时代:这个阶段生产方式是小集团合作生产,生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。(1956-1968年) 3 软件工程时代:这个阶段生产方式是工程化的生产,使用数据库,开发工具,开发环境,网络,分布式面向对象技术来开发软件。(1968年至今) 软件工程: 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。主要包括三个方面的内容:软件开发方法,软件过程和软件工具。 软件工程的原则: 1.抽象2.信息隐蔽3.模块化4.局部化5.确定性6.一致性7.完备性

软件工程课 心得体会

心得体会 通过本学期的学习,独立完成了软件工程方法实践与案例的作业,同时也收获了学习方法和思维方式。由于我是从电气专业调剂到计算机专业,几乎没有基础,所以在刚开始进入学习时感觉非常的困难。但是,李老师每节课都循序渐进的引导教学,让我慢慢理解了软件工程的学习思维,并且坚持学习,逐渐找到了学习软件工程的方法。在整个的学习中,一点一点的学习:上网搜索、问同学和老师、找参考书、查文献,甚至下仓库管理的软件进行使用研究,用了很多方法,也终于对软件工程的整体设计有了深刻概念和理解。 老师给我们分组分配任务,同时又每个人有不同的具体任务,这样既锻炼了我们的合作沟通的能力,同时也强调了独立自主的思考。我们仓库管理小组进行过好几次集体讨论,大家互相讨论,共同学习,也曾出现过意见不统一,通过探讨,共同解决,我觉得这也是学习提升的过程。明确了自己的任务后,就努力去完成,按时完成自己的任务。 在完成作业的同时,学到了很多的数据库知识和软件使用方法。首先接触了visio软件,发现了它画图比较方便,之后老师介绍用rose软件后,发现其功能更加强大。由于rose软件是英文版,所以刚开始用的时候比较吃力,经过搜索使用教程和多次使用练习后,终于可以熟练使用了。 整个设计过程,包括调研设计、需求分析、概要设计、数据库设计、详细设计等。其中,我对UML图印象最为深刻,也是从这个地方开始,我对软件设计有了质的改变,体会和理解了软件设计应该树立的思维方式,对以后的学习和任务有有很大帮助,后期做作业时也没有那么困难了。 在这整个课程学习和完成作业过程中,收获知识,提高能力的同时,我也学到了很多人生习惯,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把这种习惯带到生活中,不畏,勇往直前! 最后感谢李老师对我们耐心的教育和指导,认真细心的给我们批改作业,给予我们这些没有基础的学生耐心指导,谢谢老师!

软件工程方法论期末复习

软件工程方法论(郑有才) 期末复习 一、软工概述 (一)软件定义:程序+数据+文档 软件特点:逻辑实体(不是物理实体)、开发出来的(不是制造出来的)、可能被废弃(不会用坏)、大多是定制的(不是装配的)、受计算机系统限制(p2两个图) 软件分类:系统、应用、支撑(工具)、可复用软件 (二)软件过程:使用适当的资源(人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。 四个基本活动:软件规格说明、设计与实现、确认、演进 (三)生存周期:是软件产品的一系列相关活动的整个生命周期,即从形成概念开始,经过开发、交付使用、在使用中不断修改和演进,直到最终被废弃,让位于新软件产品为止的整个时期。通常被划分为软件定义、软件开发和运行维护3个阶段。(四)瀑布模型与增量模型(p14、15画图) 瀑布优点: 1)为项目提供了按阶段划分的检查点 2)当前一阶段完成后,只需要去关注后续阶段 3)可在迭代模型中应用瀑布模型 瀑布缺点: 1)各阶段划分固定,缺乏灵活性,阶段间产生的大量文档增加了工作量 2)开发模型基本是线性的,用户只有在项目生命周期的末期才能看到结果 3)早期的错误到后期测试才能发现,进而带来严重后果 增量优点: 1)客户不必等到系统全部完成就能得到他们所需要的的东西 2)客户可用较早增量构件做原型,取得经验后活得新的增量构建需求 3)项目失败风险较低,不会因为个别问题导致整项目不能交付 4)优先级最高的服务最先交付,然后逐次集成其他的增量构建 增量缺点: 1)加入构件必须不破坏已构造好的系统部分,需要软件具备开放式的体系结构 2)当需求频繁变化时,容易使软件过程的控制失去整体性 3)如果增量构件之间存在相交的情况且未很好处理,则必须做全盘系统分析

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

《软件工程》期末考试样题 一、填空题 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.耦合用于衡量一个模块内部的各个元素彼此结合的紧 密程度。()

软件工程填空全

二.填空题 1软件质量与产品运行特性为,健壮性,效率,安全性,可用性,风险性和可靠性. 2软件工程的目的是成功地建造大型的软件系统,主要内容是软件开发技术和软件工程管理两方面 3软件开发方法的主要目的是克服软件手工生产,使软件开发能进入工程化和规范化的环境 4软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的工程管理. 5瀑布模型把软件生命周期划分为软件定义,软件开发,与运行与维修3个阶段,而没个阶段又可分为若干个小更小的阶段. 6软件文档是软件工程实施中的重要成分,它不仅是软件开发的各阶段的重要依据,而且也是影响软件的可维护性. 7文档是软件开发人员,维护人员,用户,以及计算机之间的桥梁. 8在软件生命周期的各个阶段都会产生一系列的文件,如手册,数据和程序等,他们总称为软件配置 9软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要是关于软件系统目标 10.软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是分析人员和用户人员 11.可行性研究的目的是要用最小的代价,在尽可能段的时间内确定软件项目的可行性 12.从可行性研究从技术可行性经济可行性,和社会可行性3各方面进行论证. 13软件成本—效益分析的目的是从经济的角度评价软件项目的开发是否可行. 14.在可行性研究中,要用软件的描述工具画出现行系统流程图,它反映了现行系统的基本功能和处理流程. 15.流程系统图表达了系统中各个元素之间信息的流动情况. 16需求分析阶段需要编写的文档有:需求规格说明书,初步用户使用手册和确认测试计划. 17.软件计划包括总体设计(或概要设计)和详细设计两个阶段. 18.软件概要设计的成果是软件设计说明书. 19.软件的详细设计,也称模块设计.它要求设计人员为每一个程序模块确定所使用的算法,数据结构,接口细节和输入,输出数据等. 20.结构化分析方法是面向数据流进行分析的方法. 21.在软件开发的结构化方法中,构成系统逻辑模型的是数据流和数据字典. 22.数据流图是描述数据在软件中流动和被处理的过程,是软件模型的一种图示,它一般包括4种图形符号:变换/加工,外部实体,数据流向和数据储存. 23.判定表是一种用以描述软件加工时组合条件的一种图示方法,一般它由条件和条件项目以及操作部和操作组成. 24.数据字典有4类条目,它们是数据项,数据流,数据储存和基本加工. 25.数据流图采用4种符号表示数据储存,数据源点和终点,数据流向和数据加工. 26.面向数据流的软件设计中,一般是把数据流图的数据流划分为变换流和事物流 27.结构化分析方法用于加工逻辑的工具有结构化语言、判定表、判定树共三种工具。 28.在软件研制过程中,CASE是指计算机辅助软件工程。 29.计算机辅助软件工程(CASE)的目标是实现软件开发各个阶段的自动化。 30.PAD是一种详细设计工具。 31.模块的独立性可以通过软件的耦合性和内聚性这两个指标来衡量。 32.软件模块独立性的两个定性度量标准是内聚性和耦合性。 33.为了便于软件模块的维护和测试,模块的接口应当简单。 34.在白盒法测试中,对程序的语句逻辑有6种覆盖技术,其中发现错误能力最强的技术是 路径覆盖技术。 35.若有一个计算类型程序,它的输入量只有一个X,其范围是[-1.0,1.0]。现在输入的 角度考虑设计一组测试该程序的测试用例为-1.001,-1.0,1.0,1.001,设计这组测 试的方法是边界值分析法。 36.软件测试中路径覆盖测试是整个测试的基础,它是对软件的结构进行测试。 37.软件工程的提出起源于软件危机,其目的是最终解决软件的生产工程化。 38.回归测试是校正性维护中最常运用的方法。 39.软件复审时,其主要的复审对象是软件文档。 40.软件项目开发计划属于管理文档。 二,填空题 1.软件开发技术包括:软件开发方法学、工具和环境支持,其内容是。 2.软件工程中,开发阶段包括、概要设计、详细设计、编码及测试几个阶段。 3.在软件工程中,高质量的文档标准是完整性、一致性和性。 4.软件的生产经历了程序设计、程序系统和3 个阶段。 5.软件开发方法中的结构化方法是一种面向数据流的开发方法,其指导思想是。 6.综合应用观点和虚拟机观点,软件可分为系统软件、和应用软件3类。 7.软件工程的结构化生命周期方法中,一般将软件设计阶段划分为和详细设计两个阶段。 8.总体设计阶段主要由两个小阶段组成,首先要进行,然后进行软件结构设计。 9. 阶段主要完成的任务是确定每个模块的具体执行过程。 10.软件的详细设计可采用图形、和过程设计语言3种形式的描述工具表示模块的处理过程。 11.软件工程是一种分阶段实现的软件程序开发过程。 12.采用自顶向下逐步分解的分析方法是。

相关文档