软件工程(研)复习提纲答案

合集下载

《软件工程》复习提纲答案

《软件工程》复习提纲答案

1.选择正确答案:(1)在软件生存周期中, A 阶段所占的工作量最大;(2)结构化分析方法产生的软件需求说明书由一套分层的 B 、数据字典和补充说明材料组成;(3)软件的 C 一般可用平均无故障时间和故障平均修复时间来度量;(4)采用 D 编写程序可提高程序的可移植性;(5)仅根据规格说明书描述的程序功能来设计测试用例的方法称为 E 。

A ①分析②设计③编码④测试⑤维护B ①因果图②数据流图③ PAD图④流程图C ①易维护性②可靠性③效率④易理解性D ①机器语言②宏指令③汇编语言④高级语言E ①白盒方法②静态分析法③黑盒方法④人工分析法2.需求分析的主要任务是建立新系统的 A ;总体设计的主要任务是设计出新系统的B ;详细设计的主要任务是完成模块的C ;编码的主要任务是写出各模块的D 。

A:①系统结构②逻辑模型③软件结构④系统流程B:①软件结构②模块结构③逻辑模型④数据流程C:①输入输出设计②逻辑功能设计③过程设计④结构设计D:①PAD ②PDL ③源程序④过程性描述3.软件设计将涉及到软件的结构、过程和模块的设计,其中软件过程设计是指描述。

①模块间的关系②模块的操作细节③软件层次结构④软件开发过程4.模块独立是软件模块化所提出的要求,衡量模块独立的度量标准是模块的。

①抽象和信息隐蔽②局部化和封装③高内聚和低耦合④激活机制和控制方法5.在结构化分析和设计技术(SADT)中,数据流图是用于描述系统的 A 的主要工具,数据字典是定义 B 中关于数据的描述工具。

A ①详细设计②需求分析③总体设计④逻辑模型B ①数据流图②系统流程图③程序流程图④软件结构图6.人们在使用高级语言编码时,首先可通过编译程序发现源程序中的全部 A 和部分语法错误,然后可采用 B 来发现程序中的运行错误并采用纠错来确定错误的性质,设计错误是泛指用户在验收中发现的结果与需求不符的错误。

A的选项:①符号错误②逻辑错误③通路错误④语义错误B的选项:①诊断②测试③检验④排错⑤纠错⑥试探7.用面向对象方法开发软件时,人们通常从三个侧面建立三种不同的模型:一是描述系统静态结构的A对象模型;二是描述系统控制结构的B动态模型;三是描述系统计算结构的C功能模型。

软件工程复习提纲.doc

软件工程复习提纲.doc

《软件工程》考试复习提纲第一章1、软件工程定义;软件工程是用工程、科学与数学的原则与方法研制、维护计算机软件的有关技术与管理方法。

2、软件危机定义;3、软件工程三要素;方法、工具和过程4、软件生存周期各阶段名称;软件定义、软件开发、软件使川与维护退役5、软件开发各个模型的特点;以软件需求完全确定为前捉的瀑布模型(具有因果关系)只能提供基木需求时采用的渐进式开发模型:原型模型、螺旋模型(风险分析)以形式化开发方法为基础的变换模型基于四代技术的模型(独立于具体的处理机)组合模型可行性研究包括经济可行性、技术可行性、法律可行性、还有开发方案的可行性输入-处理-输出结构是系统建模的基础,它将基于计算机的系统转换成一个信息变换模型第四章需求分析可分为问题分析、需求描述、需求评审三个阶段1、需求分析的任务与原则;任务:1.对问题的识别和理解;2.对需求信息的综合和分析;3.写出软件需求规格说明文档;4.需求分析工作的复审。

2、问题抽象、问题分解与多视点分析;(需要掌握的技术)第五章『—1、数据流图定义,数据流图的画法,基本数据流图的符号;_______ ------ 数据流图就是用来刻曲数据流和转换的信息系统建模技术的。

实体转换数据流数据源顶级1级2级数据对象的属性:命名性属性、描述性属性、引用性属性2、实体关系图的定义与应法:表示数据对彖及其关系的图形语言机制。

数据对象川长方形表示,关系用菱形表示。

数据字典中数据条目包括的内容:名称类型列表简要说明解析性说明补充说明3、基于数据流的分析方法;结构图:用来刻画H标软件系统的结构。

活动图:用來刻画目标软件系统的功能视点。

状态图:用來刻画口标软件系统的行为视点。

第六章1、面向对彖的概念与思想;对彖、类、属性、操作等概念;(1)客观世界屮的应川问题都是市实体及其相互关系构成的。

可以将客观卅:界屮与应川问题有关的实体及其属性抽象为问题空间屮的对象。

(2)对象:是现实世界中个体或事物的抽象表示,是英属性和相关操作的封装。

软件工程复习提纲

软件工程复习提纲

1.可行性分析,需求分析,概要设计,详细设计阶段的参与人员有哪些?需求分析用户、管理人员、分析人员、软件开发小组成员2.在软件详细设计过程中采用的工具有哪些?程序流程图、N-S图、PAD图(问题分析图)、判定表&判定树、PDL等、Jackson方法3.白盒技术测试技术有哪些?(5.3-5.4)a)单元测试b)逻辑覆盖i.语句覆盖ii.判定覆盖(分支覆盖)iii.条件覆盖iv.判定/条件覆盖v.条件组合覆盖c)控制结构测试i.基本路径测试ii.条件测试iii.数据流测试iv.循环测试4.黑盒技术测试方法有哪些?(5.5-5.6)a)等价划分b)边界值分析c)错误推测d)验收测试e)集成测试5.软件生存周期的活动中,哪个阶段要进行软件结构设计?(概要设计阶段)软件生命周期由软件定义、软件开发、和运行维护3个时期组成的软件定义:问题定义、可行性分析、务求分析软件开发:系统设计(概要设计、详细设计)、编码、测试6.什么是瀑布模型?瀑布模型是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈。

如果有信息未被覆盖或者发现了问题,可以“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,7.什么是ER模型?实体联系模型,是概念数据模型的高层描述所使用的数据模型或模式图,它为表述这种实体联系模式图形式的数据模型提供了图形符号。

8.什么是螺旋模型?螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。

螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。

同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。

螺旋模型更适合大型的昂贵的系统级的软件应用。

9. 什么是喷泉模型?喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于采用对象技术的软件开发项目。

软件工程复习提纲(20160615)

软件工程复习提纲(20160615)

软件工程复习提纲Chapter11.开发文档都有哪些?用图来表示它们之间的关系。

2.说明软件工程研究的内容.3.软件工程的7条基本原理有何现实意义。

4.怎样理解ISO9000的文档体系?质量手册、程序文件、质量记录三者有何联系和区别?5.怎样理解CMMI,如何用CMMI去管理软件企业?6.是否存在这一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和ISO9000模式只适用于搞应用软件的企业?如果是,为什么,如果不是,又为什么?7.软件工程与信息系统工程有何异同?8.怎样理解元数据?Chapter21.为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系?2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。

3.软件公司的ISO9000或CMM管理体系与软件开发模型有关吗,为什么?4.你对“生存周期模型裁剪指南"有什么看法?5.“图书馆信息系统”的开发选用什么开发模型合适?Chapter31.立项的具体表现形式是什么?2.立项建议书的编制者为什么主要是软件公司的市场销售人员,而不是开发人员?3.什么叫风险分析,技能风险与技术风险有何区别?3.合同、任务书、立项建议书三者有何异同?有何关系?4.对软件项目和产品的“功能、性能、接口"三项指标如何理解?Chapter41.需求分析的目的是什么,需求分析的难点在哪里?2.需求分析的理论基础有哪几条?3.为什么说需求分析是面向流程的?4.解释术语:元数据、实体、中间数据.5.用户需求报告与需求规格书有何差异?6.需求描述有哪几种工具?你喜欢哪一种,为什么?1.简述软件策划的步骤.2.简述软件策划的方法。

3.简述对软件工作产品规模进行量化估计的方法。

4.软件工作产品和软件产品有何异同?5.名称解释:直接人工、直接费用、间接成本、制造费用、管理费用、不可预见费用。

6.怎样理解软件中的度量,它有何作用?Chapter61.概要设计说明书和详细设计说明书有何区别?2.怎么理解“软件概要设计是系统总体结构设计或系统架构设计”?3.模块实现设计包括哪些内容?4.为什么软件设计要遵守“抽象、分解与模块化、低耦合高内聚、封装、接口和实现分离”的设计原理?Chapter71.简述UML的优缺点。

软件工程复习提纲

软件工程复习提纲

软件工程复习点一、判断题1.在分析用户需求时同时考虑维护问题。

(正确)2.测试完程序后,删去程序中的注解以缩短源程序长度。

(不正确)3.在软件开发过程中尽量保证各阶段文档的正确性。

(正确)4.编码时尽量多用全局变量。

(不正确)5.选用时间效率和空间效率尽可能高的算法。

(不正确)6.尽可能利用硬件特点以提高程序效率。

(不正确)7.尽可能使用高级语言编写程序。

(正确)8.进行总体设计时加强模块间的联系。

(不正确)9.尽量减少程序模块的规模。

(不正确)10.用数据库系统代替文件系统来存储需要长期保存的信息。

(正确)11.用CASE环境或程序自动生成工具来自动生成一部分程序。

(正确)12.尽量用可重用的软件构件来组装程序。

(正确)13.使用先进的软件开发技术。

(正确)14.采用防错程序设计技术,在程序中引入自检能力。

(正确)15.把与硬件及操作系统有关的代码放到某些特定的程序模块中。

(正确)二、简答题1.北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。

请定义上述的电话号码。

电话号码=[校内电话号码|校外电话号码]校内电话号码=非零数字+3位数字校外电话号码=[本市号码|外地号码]本市号码=数字零+8位数字外地号码=数字零+3位数字+8位数字非零数字=[1|2|3|4|5|6|7|8|9]数字零=03位数字=3{数字}38位数字=非零数字+7位数字7位数字=7{数字}7数字=[0|1|2|3|4|5|6|7|8|9]2.从供选择的答案中选出在下列叙述中括弧内字母应该代表的正确内容,把答案写在答案栏内。

(1)一组语句在程序的多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚度是(A)的。

(2)将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是(B)的。

软件工程复习提纲

软件工程复习提纲

1 软件危机产生的原因和方法(1)原因:一方面与软件本身的抽象性和复杂性有关,这是客观原因;另一方面则与软件开发和维护过程中使用的技术和方法有关,这是主观原因.(2)方法:既要有技术措施(包括方法和工具),又要有组织管理措施2 软件生命周期阶段(1)可行性研究(2)需求分析(3)软件设计(4)编码(5)软件测试(6)软件维护3 常见软件开发模型(1)瀑布模型(2)原型模型(3)增量模型(4)螺旋模型(5)统一软件开发过程4 软件需求分析目标和任务(1)目标:研究用户需求,得到目标系统的需求定义(2)任务:1确定目标系统的具体要求2建立目标系统的逻辑模型5 需求分析步骤(1)获取需求,识别问题(2)分析和描述系统的逻辑模型(3)需求分析的复审6数据流图有四种基本符号:(1).正方形或立方体表示数据的源点或终点;(2).圆角矩形或圆形代表数据处理;(3).开口矩形或两条平行横线代表数据存储;(4).箭头表示数据流,即数据流动得方向.7 实体-联系图(E-R图)的三个基本组成部分:(1).实体。

用矩形框表示实体;(2).关系。

用菱形框表示实体之间的关系;(3).属性。

用椭圆形或圆角矩形表示实体(或关系)之间的属性。

8 软件设计基本原则(1)抽象与分解(2)模块化和信息隐藏(3)模块独立性9 耦合和类聚的分类:(1)耦合:1数据耦合,2控制耦合,3特征耦合,4公共环境耦合,5内容耦合(2)内聚:1偶然内聚,2逻辑内聚,3时间内聚,4过程内聚,5通信内聚,6顺序内聚,7功能内聚10数据流图中数据流的分类: 变换型数据流和事务型数据流11 如何高质量的完成详细设计的目标和任务?(1)目标:设计目标系统,得出新系统软件的详细规格,同时要求设计出规格简明易懂,便于下一阶段用某种程序语言在计算机上的实现(2)任务:①算法过程的设计,②数据结构的设计,③数据库物理设计,④信息编码设计,⑤测试用例的设计,⑥其他设计,⑦编写详细设计说明书12结构化程序设计通常采用自顶向下, 逐步求精的设计方法13 软件测试的分类(1)根据程序是否运行分为:静态分析,动态分析(2)测试数据的设计依据分为:黑盒测试,白盒测试14 黑盒测试含义及分类(1)含义:又称功能测试,,是以用户的观点,从输入数据与输出数据的对应关系出发测试的,不涉及程序的内部结构(2)分类:等价类划分法,边界值分析法,决策表法,因果图法15 白盒测试含义及分类(1)含义:按照程序内部逻辑结构测试程序,检验是否程序能够按照规定正常运行(2)分类:覆盖测试,功能性测试,结构性测试(3)16 软件测试步骤(1)单元测试(2)集成测试(3)确认测试(4)系统测试17 软件维护的种类(1).改正性维护(2)适应性维护(3)完善性维护(4)预防性维护18 软件维护的策略(1) 改正性维护(2)适应性维护(3)完善性维护19 软件维护的过程(1)建立维护机构(2)用户提出维护申请并提交维护申请报告(3)维护人员确认维护类型并实施相应的维护工作(4) 整理维护记录并对维护工作进行评审(5)对维护工作进行评价20 决定软件可维护性的因素(1)可理解性(2)可测试性(3)可修改性21 统一建模语言UML是用一组专用符号描述软件规模的语言,这些符号统一、直观、规范,可以用于任何软件开发过程22. UML分为结构图和行为图,其中共有六种结构图和七种行为图。

《软件工程》复习提纲

《软件工程》复习提纲

《软件工程》课程要点●每章教学课件中的“本章小结”列出了需要掌握的内容●教学过程中的例题和习题也是课程重点一、软件工程与软件过程概述1.概念:(1)软件的概念(组成成分、作用);答:计算机软件是程序、数据和相关文档的集合;用于实现计算机系统所需要的逻辑方法和控制过程(2)软件危机的含义、表现、产生原因(客观、主观)答:计算机软件开发和维护过程中遇到的一系列严重问题。

软件危机的表现:①对软件开发成本和进度的估计很不准确②已完成的软件不能满足用户需求③软件质量差④软件不可维护⑤软件没有开发文档⑥软件成本在计算机系统总成本中所占的比例逐年上升⑦软件生产率跟不上硬件的发展和计算机迅速普及的趋势与软件的特点有关(客观原因):①软件是计算机系统中的逻辑部件,缺乏“可见性”,管理和控制软件开发过程相当困难②软件在使用期间不存在机械磨损和老化问题,一旦发现错误,通常意味着修改原来的设计,因此软件难维护③软件规模庞大,程序复杂性增加,需多人分工合作(不能保证每个人完成的工作合在一起构成一个高质量的大型软件系统)与软件开发和维护的方法不正确有关(主观原因):①开发无计划②忽视软件需求分析的重要性③轻视软件维护④无过硬评测手段⑤缺乏有力的开发方法和工具⑥不重视开发文档等软件配置(3)软件工程学科包括的内容(三要素)、解决的主要问题答:(1)软件工程定义:1)软件工程是指导计算机软件开发和维护的工程学科 2)采用工程化的概念、原理、技术和方法来开发和维护软件3)将经过时间考验而证明正确的管理技术和开发技术结合起来,以较经济的手段开发出高质量的软件并有效维护它2)软件工程方法学的三要素:①方法:完成软件开发各项任务的技术方法②工具:为方法的高效运用,而提供的自动或半自动的软件支撑环境③过程:为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤(4)软件生命周期的含义、组成阶段及各阶段主要任务答:软件生命周期:一个软件从定义、开发、运行维护,直到最终被废弃要经历一个漫长的时期,这个时期称为软件生命周期。

软件工程复习提纲(附答案)

软件工程复习提纲(附答案)

软件工程复习提纲(附答案)软件工程第一章软件工程介绍1、软件的特性:P3软件是设计开发的,而不是传统意义上的生产制造;软件不会磨损;大多数软件仍是根据实际的客户需求制定的。

2、计算机软件的七大分类:P5系统软件、应用软件、工程/科学软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。

3、遗留系统发生系统演化的原因:P6软件需要修改其适应性,从而可以满足新的计算环境或技术的需求软件必须根据新的业务需求进行升级软件必须扩展以具有与更多现代系统和数据库的协作能力软件架构必须进行改建以适应多样化的网络环境4、软件神话:管理者,用户,从业者P135、软件的定义:P3软件是:指令的集合,通过执行这些指令可以满足预期的特征,功能和性能需求;数据结构,它使得程序可以充分利用信息;描述程序操作和使用的文档。

第二章过程综述1、软件工程的三个要素:工具,过程,方法P8过程:软件过程将各个技术层次结合在一起,并实施合理地,及时地开发计算机软件方法:为建造软件提供技术上的解决方法。

工具:为过程和方法提供自动化或半自动化的支持。

2、通用软件过程框架:沟通,策划,建模,构建,部署P9沟通:这个框架活动包含了与客户之间大量的交流和协作,还包括需求获取以及其他相关活动策划:指为后续的软件工程工作制定计划。

建模:它包括创建模型和设计两方面。

创建模型有助于客户和开发人员更好得理解软件需求;设计可以实现它。

构建:它包括编码和测试。

部署:软件交付到用户,用户对其进行评测并给出意见3、能力成熟度模型:P22第0级:不完全级;第1级:已执行级;第2级:已管理级;第3级:已定义级;第4级:已定量管理级;第5级:优化级;第三章过程模型1、简述惯例框架包含的主要活动:P19沟通、策划、建模、构建、部署2、简述瀑布模型所包含的主要框架活动:P24沟通、策划、建模、构建、部署3、简述瀑布模型在实际运用中所面临的问题(缺点):P24实际的项目很少遵守瀑布模型提出的顺序客户通常难以清楚地描述所有的需求客户必须有耐心,因为只有在项目的后期,他们才能看到可执行的程序。

软件工程复习提纲答案连同实验答案

软件工程复习提纲答案连同实验答案

软件工程复习提纲第1章概述1、什么是软件危机?产生软件危机的主要原因?P3软件危机是指计算机软件的开发和维护过程中所遇见的一系列严重问题出现软件危机的主要原因是人们在开发软件时使用了错误的方法2、软件工程的定义?P5软件工程是指导计算机软件开发与维护的工程学料,它采用工程的概念,原理、技术和方法来开发与维护软件3、软件生命周期定义,八个阶段,及基本任务是什么?P10软件生命周期是指一个软件从定义、开发、使用和维护,直到最终被废弃,经历了一个漫长的时期。

八个阶段为问题定义(关键问题是:“要解决的问题是什么?”);可行性研究(用最小的代价在尽可能短的时间内确定问题是否解决);需求分析(仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么”这个问题);概要设计(概括地回答“怎么实现目标系统?”这个问题);详细设计(还不是编写程序,而是设计出程序的详细规格说明);编码和单元测试(写出正确的容易理解、容易维护的程序模块);综合测试(通过各种类型的测试(及相应的调试)使软件达到预定的要求);软件维护(通过各种必要的维护活动使系统持久地满足用户的需求)4、螺旋模型:综合了瀑布模型和快速原型的优点,并增加了风险分析5、5种模型的特点。

瀑布模型具有三个特点:1阶段间具有顺序性和依赖性2推迟实现的观点3质量保证的重点快速原型模型是不带反馈环的,软件产品的开发基本上是线性顺序进行的增量模型也称为渐增模型,使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。

每一个构件由多个相互作用的模块构成,并且能够完成特定的功能螺旋模型综合了瀑布模型和快速原型的优点,并增加了风险分析喷泉模型第2章结构化分析1、可行性分析主要是进行哪三个方面的分析?P23技术可行性、经济可行性和操作可行性2、结构化分析主要建立什么模型?P32主要建立功能模型(数据流图)、数据模型(ER图)和行为模型(状态图)3、E-R关系图包含什么信息?P40包含着实体(客观世界中存在的且可相互区分的事物)、联系(客观世界中的事物彼此间往往是有联系的)和属性(实体或联系所具有的性质)4、什么是数据流图?P41数据流图(DFD )是一种形象直观的图形,它描绘数据在软件中从输入移动到输出的过程中所经受的变换(即加工处理)5、会画简单的实体联系图、系统流程图、数据流图?P426、什么是数据字典?P47数据字典是描述数据的信息的集合,是对目标系统中使用的所有数据的定义的集合7、结构化分析的策略是自顶向下逐步求精。

软件工程复习提纲

软件工程复习提纲

一、选择1.软件需求规格说明书的内容不应包括(D)A.主要功能B软件的性能C.用户界面及运行环境D.算法的详细描述2.数据字典……基本功能是(B)A数据库设计B数据定义C数据通信D数据维护3、面向对象的分析方法主要是建立三类模型即(C)A.系统模型、ER模型、应用模型B.对象模型、动态模型、应用模型C.对象模型、动态模型、功能模型D.ER模型、对象模型、功能模型4.软件概要设计(架构设计)结束后得到(C)。

A.初始化的软件结构图B.模块的接口图和详细算法C.优化后的软件结构图D.程序编码5.软件测试的目标是(B)A.证明软件是正确的B.发现错误,降低错误带来的风险C.删除软件中所有的错误D.与软件调试相同6.系统因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为(D)A.系统软件B.操作系统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.瀑布模型的存在问题是(B)A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求12.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫(D)A.生存期B.面向对象设计C.面向对象程序设计D.面向对象分析13.软件测试方法中的静态测试方法之一为(A)A计算机辅助静态分析B黑盒法C路径覆盖D边界值分析14.在E-R模型中,包含以下基本成分(C)A.数据、对象、实体B控制、联系、对象C.实体、联系、属性D.实体、属性、操作15.在软件测试中,白盒测试方法通过分析程序的(C)来设计测试用例的方法。

软件工程复习提纲

软件工程复习提纲

1.什么是软件?是一系列按照特定顺序组织的计算机数据和指令的集合,包括程序、数据和文档。

附:软件的特征:成本高、风险大、维护困难2.什么是软件危机,其内容主要是指什么?原因:1、与软件本身的特点有关;2、与软件开发人员有关;定义:在计算机软件开发和维护过程中所遇到的一系列严重的问题。

1)对软件开发成本和进度的估计常常不准确。

2)用户对“已完成”系统不满意的现象经常发生。

3)软件产品的质量不可靠。

4)软件的可维护程度非常之低。

5)软件通常没有适当的文档资料。

6)软件的成本不断提高。

7)软件开发生产率无法满足人们对软件的生产要求,软件开发生产率的提高落后于硬件的发展。

3.什么是软件工程?开发、运行和维护软件的系统方法•软件工程主要研究软件生产的客观规律性,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本、改进软件产品质量、提高软件生产率水平的目标。

4.软件工程的目标(PP.41 )及其组成部分。

方法、工具和过程。

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

方法: 是指产生某些结果的形式化过程,•工具: 是用更好的方式完成某件事情的设备或自动化系统,如各种集成开发环境、编译工具、测试工具等。

•过程: 生产特定产品的工具和技术的结合•软件工程方法学包含3个要素:方法、工具和过程。

5.软件开发方法的定义。

通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。

比如SASD方法、面向对象的软件开发方法。

6.好的软件的一些主要衡量指标。

例如McCall 的质量模型。

(1)质量,它的衡量:产品的质量、过程的质量、商业环境背景下产品的质量。

McCall 的质量模型:附:开发团队的成员•需求分析员: 与客户合作,确定并文档化客户需求•设计人员: 生成系统描述:系统要做什么•程序员: 编写事先指定需求的代码•测试人员: 发现错误•培训人员: 向用户说明如何使用这个系统•维护小组: 修复系统验收之后出现的错误•资料管理员: 准备和存储软件需求文档等•配置管理团队: 保持各工件之间的通信第二章1.什么是软件生命周期?主要分为哪些阶段?各个阶段的主要任务及产生的主要制品?定义:当过程是在开发软件产品时,把这种软件开发过程称为软件生命周期。

软件工程复习提纲

软件工程复习提纲

软件工程复习提纲第一章软件与软件工程1. 什么是软件工程?构成软件工程的要素是什么?2. 什么是软件危机?软件危机有那些表现?3.软件开发的三种最主要方法是什么?4.软件工程实践中的五个面向理论的含义是什么?5.用图表方式说明软件的生存周期6.结合软件生存周期理论,阐述几个重要的软件开发模型的特点及适用条件(如瀑布模型、快速原型模型、增量模型、迭代模型等)第四章需求分析基础1.什么是软件需求?软件需求的属性是什么?2.需求分析阶段的一般工作流程是什么?3.什么是需求分析?需求分析的任务、目的是什么?4.什么是需求定义?5.简述软件需求分析的任务与步骤,并以图书管理系统为例说明6.需求的分析的方法与切入点?(过程分析、对象分析;功能分析、对象分析、数据分析?)7.需求分析的描述工具?8.什么是业务流程图?业务流程图的主要绘图元素有哪几种?9.什么是数据流图?数据流图的绘图元素有哪几种?10.分别画出图书管理系统的业务流程图和数据流图11.画出图书管理系统的用例图12.画出一个网上招聘系统(招聘网站)的用例图第五章面向数据流的分析方法1. 阐述数据流图、数据字典和E-R图的构成2. 阐述基于数据流图进行需求分析的大致过程。

3. 归纳总结CASE工具的核心思想。

4. 如何判断数据流图的一致性和完全性?可否用CASE工具自动或半自动地完成这两类检查?如果可以,请给出相应的软件设施途径。

5. 设计一个简单图书信息系统上网E-R模型第六章面向对象的需求分析1. 基本概念:对象、类、消息、继承、聚集2. 简述利用UML尽心需求分析的主要步骤。

3. 简述面向对象的消息传递机制在程序设计语言中的实现过程。

4. 绘制表示“书籍”的UML类图,“书籍”可以描述为:一本书由许多部分组成,每一部分又由许多章组成,每一张由许多节组成。

部分、章和节都具有标题和序号属性。

第八章软件设计基础1.什么是软件设计?软件设计过程的输入和输出是什么?2.理解软件设计的原理3.什么是软件架构?理解软件的三层架构的内容及特点4软件设计有两大类方法是什么?5.面向过程设计的主要任务和内容和方法是什么?6.面向对象设计的内容和步骤是什么?第九章面向数据流的设计方法1. 简述SD方法将数据流图转换为软件结构的过程与步骤。

软件工程复习资料(提纲+答案)

软件工程复习资料(提纲+答案)

软件工程复习资料(提纲+答案)第一章软件工程的实质1、什么是软件?由什么组成?软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。

可以写作为:软件=程序+数据+文档。

2、什么是软件危机?为什么会产生?(原因)软件危机:指的是在计算机软件的开发和维护过程中所遇到的一系列严重的问题。

原因:用户需求不明确、缺乏正确的理论指导、软件规模越来越大、软件复杂度越来越高3、为什么要进行软件开发?4、软件工程的三段论?三段论:软件项目管理论、软件项目开发论、软件过程改进论5、软件工程生存期模型概念、类型、每种类型的特点?答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。

软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。

常见的软件生存周期模型有瀑布模型、V模型、原型模型、增量式模型、螺旋式模型。

6、了解复用的原则第二章软件项目的需求分析1、需求分析的主要任务?(基本任务)答:需求分析阶段的基本任务是要准确的定义新系统的目标,满足用户需要,回答系统必须“做什么”的问题。

本阶段要主要有以下几方面工作:(1)问题识别,双方确定对问题的综合需求,包括:功能需求、性能需求、用户界面需求,以及可靠性、安全性、可维护性等方面的需求。

(2)建立模型,对获取的需求,进行分析细化,划分系统功能,确定系统构成,并建立系统的逻辑模型。

(3)编写文档,也就是完成“需求规格说明书”的编写工作。

2、需求分析分两大块(功能与非功能)功能需求描述系统所预期提供的功能或服务。

非功能需求是对系统提供的服务或功能给出的约束。

包括时间约束、开发过程的约束、标准等。

3、(P27)需求建模的基本方法?答:关联模型、行为模型(数据流模型和状态机模型)、数据模型、面向对象模型、结构化模型(技术:数据流图(DFD)、数据字典(DD)、系统流程图)以及其他方法(如原型法、功能列表等)4、结构化方法的代表?(P29)7状态图活动图8、理解好数据流图为什么要分层?9、UML中常用的9种图?(P32 把包图去掉)静态图:类图、对象图、构件图、实施图和包图。

软件工程复习及答案

软件工程复习及答案

复习思考题(一)软件工程概论1.试说明“软件生命周期”的概念。

同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期(软件生命周期)。

2.论述瀑布模型软件开发方法的基本过程。

瀑布模型规定了各项软件工程活动,包括:制定软件项目计划,进行需求分析和定义,软件设计,程序编码,测试及运行维护。

并且规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。

3.软件工程的基本原理有哪些?1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实行严格的产品控制4.采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性4.从供选择的答案中选出正确答案填入下列叙述中的()内。

(1)软件开发时,一个错误发现得越晚,为改正它所付出的代价就()。

A)越大 B) 越小 C)越不可捉摸 D)越接近平均水平(2)功能模型中描述处理流程的最基本成分为()。

A)数据流图和数据结构图 B) 数据流图和程序流程图C)程序流程图和数据结构图 D) 数据流图和数据词典(3)模块内聚用于衡量模块内部各成分之间彼此结合的紧密程度。

若一组语句在程序的多处出现,为了节省空间把这些语句放在一个模块中,则该模块的内聚类型是()。

A) 功能内聚 B)通信内聚 C)偶然内聚 D)逻辑内聚(5)结构化分析方法(SA)是在软件开发过程中常用的方法,这个方法采用的基本手段是()。

A)分解与抽象 B)分解与综合 C)归纳与推导 D)试探与回溯(6)原型化方法是用户和设计者之间执行的一种交互过程,适用于()系统。

A)需求不确定性高的 B)需求确定的 C)管理信息 D)决策支持(7)软件测试的目的是()。

A)评价软件的质量 B)发现软件的错误C)找出软件中的所有错误 D)证明软件是正确的(8)在软件生存周期中,()阶段所占的工作量最大,约70%。

A)分析 B)设计 C)编码 D)测试 E)维护(二)软件需求分析1.软件需求分析是软件过程中交换意见最频繁的步骤。

08《软件工程》复习提纲.doc

08《软件工程》复习提纲.doc

1.填空(每题1分,10题,10分)(1)计算机软件是指计算机系统中的程序及其文档。

pagel(2)在软件发展的第二阶段,由于软件规模的日益增大,设计与编制程序的工作方式逐步从个体方式转向合作方式。

page2(3)需求分析主要解决开发软件要“做什么”的问题。

page8(4)软件设计主要解决待开发软件“怎么做”的问题。

page8(5)1990年我国颁布了《中华人民共和国著作权法》,其中将计算机软件作为著作权法的保护对象。

page44(6)模块独立性比较强的模块应是高内聚低耦合的模块。

page70(7)在结构化分析与设计方法中,模块的内聚度和耦合度是判断结构好坏的主要标准。

page75(8)数据流图用于软件系统的功能建模,描述系统的输入数据流如何经过一系列的加工,逐步变成系统的输出数据流,这些对数据流的加工实际上反映了系统的某种功能或子功能。

page87(9)一个模块的员出是指该模块直接调用的模块数目。

pagell7(10)一个模块的虜△是指能直接调用该模块的模块数目。

pagell7(11)模块的影响范围是指受该模块中决策(如判定条件)影响的所有其他模块。

pagellS(12)模块的控制殖围是指该模块自身以及它可直接或间接调用的所有模块。

pagellS(13)人机界面设计的好坏已成为人们衡量软件可用性的标准之一。

page231(14)系统响应时间是指从用户执行某个控制动作(如按回车键或单击鼠标)到软件做出响应(期望的输出或动作)的时间。

page242(15)一个测试用例由测试输入数据和预期结果组成。

page263(16)等价类是指输入域的某个子集,该子集中的每个输入数据对接露软件中的错误都是等效的。

page277(17)a测试是由一个用户在开发者的场所进行的,软件在开发者对用户的指导下进行测试。

page293(18)经a测试后的软件成为B版软件。

page293(19)B测试是软件的最终用户在一个或多个用户场所进行的,开发者通过不在测试现场。

南理工考研软件工程复习资料提要与习题1答案

南理工考研软件工程复习资料提要与习题1答案

习题参考答案1-1 A B )及)【、】软件是计算机系统中与硬件相互依存的另一部分,它是包括(( C A B )()是按事先设计的功能和性能要求执行的指令序列。

)(的完整集合。

其中,( C )是与程序开发、维护和使用有关的图文材是使程序能够正确操纵信息的数据结构。

(料。

供选择的答案:AC. 硬件③程序④①②软件代码?图表外设⑧数据⑤⑥文档⑦A. , B. , C. ⑤⑦②答案:分析:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及相关文档的完整集合。

其中,程序是按事先设计的功能和性能要求执行的指令序列。

数据是使程序能够正确操纵信息的数据结构。

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

需要注意的是,程序与算法在含义上有不同:算法的每一条指令必须是最基本的、必须通过有限步做完,而程序没有这个要求。

1-2 A )。

软件工程中描述生】开发软件时对提高软件开发人员工作效率至关重要的是【( B )、设计、编码、测试、维护等几个阶段,其中设存周期的瀑布模型一般包括计划、( C D 两步。

))和(计阶段在管理上又可以依次分成(供选择的答案:A 操作系统的资源管理功能程序开发环境.②①计算机的并行处理能力③④程序人员数量B 问题定义.可行性分析①③需求分析需求调查④②CD 数据设计.①概要设计方案设计③、②代码设计④软件体系结构设计运行设计⑦⑥⑤⑧详细设计故障处理设计A. , B. , C. , D. ⑥①答案:①③分析:有合适的程序开发环境可以提供有用的工具,大大提高开发人员的工作效率。

软件工程中描述软件生存周期的瀑布模型一般包括计划、需求分析、设计、编码、测试和运行维护等六个阶段。

需求分析完成对软件产品在功能、性能、用户接口、运行环境、可靠性、安全性、开发资源、开发进度、开发成本等方面的需求定义。

问题定义、可行性分析、需求调查都可能是需求分析中要做的一部分工作。

软件设计在管理上划分为概要设计与详细设计两个步骤。

软件工程复习提纲答案连同实验答案

软件工程复习提纲答案连同实验答案

软件工程复习提纲第1章概述1、什么是软件危机?产生软件危机的主要原因?P3软件危机是指计算机软件的开发和维护过程中所遇见的一系列严重问题出现软件危机的主要原因是人们在开发软件时使用了错误的方法2、软件工程的定义?P5软件工程是指导计算机软件开发与维护的工程学料,它采用工程的概念,原理、技术和方法来开发与维护软件3、软件生命周期定义,八个阶段,及基本任务是什么?P10软件生命周期是指一个软件从定义、开发、使用和维护,直到最终被废弃,经历了一个漫长的时期。

八个阶段为问题定义(关键问题是:“要解决的问题是什么?”);可行性研究(用最小的代价在尽可能短的时间确定问题是否解决);需求分析(仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么”这个问题);概要设计(概括地回答“怎么实现目标系统?”这个问题);详细设计(还不是编写程序,而是设计出程序的详细规格说明);编码和单元测试(写出正确的容易理解、容易维护的程序模块);综合测试(通过各种类型的测试(及相应的调试)使软件达到预定的要求);软件维护(通过各种必要的维护活动使系统持久地满足用户的需求)4、螺旋模型:综合了瀑布模型和快速原型的优点,并增加了风险分析5、5种模型的特点。

瀑布模型具有三个特点:1阶段间具有顺序性和依赖性2推迟实现的观点3质量保证的重点快速原型模型是不带反馈环的,软件产品的开发基本上是线性顺序进行的增量模型也称为渐增模型,使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。

每一个构件由多个相互作用的模块构成,并且能够完成特定的功能螺旋模型综合了瀑布模型和快速原型的优点,并增加了风险分析喷泉模型第2章结构化分析1、可行性分析主要是进行哪三个方面的分析?P23技术可行性、经济可行性和操作可行性2、结构化分析主要建立什么模型?P32主要建立功能模型(数据流图)、数据模型(ER图)和行为模型(状态图)3、E-R关系图包含什么信息?P40包含着实体(客观世界中存在的且可相互区分的事物)、联系(客观世界中的事物彼此间往往是有联系的)和属性(实体或联系所具有的性质)4、什么是数据流图?P41数据流图(DFD)是一种形象直观的图形,它描绘数据在软件中从输入移动到输出的过程中所经受的变换(即加工处理)5、会画简单的实体联系图、系统流程图、数据流图?P426、什么是数据字典?P47数据字典是描述数据的信息的集合,是对目标系统中使用的所有数据的定义的集合7、结构化分析的策略是自顶向下逐步求精。

软件工程复习重点答案

软件工程复习重点答案

软件工程复习重点一、选择题1、软件工程三要素是指( B )P8A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法2、瀑布模型本质上是一种( A )。

P23A、线性顺序模型B、顺序迭代模型C、线性迭代模型D、及早见产品模型3、结构化设计是一种应用最广泛的系统设计方法,是以( B )为基础,自顶向下,求精和模块化的过程。

P79A、数据流B、数据流图C、数据库D、数据结构4、概要设计的任务是设计系统的( B物理模型)P70A、逻辑模型B、物理模型C、概念模型D、程序流程图5、描述软件结构的工具有( A模块结构图)A、模块结构图B、PAD图C、数据流程图D、程序6、进行需求分析可以使用多种工具,但( C )是不适用的。

A、数据流程图B、判定表C、PAD图(详细设计)D、数据字典7、可行性研究要进行的需求分析和设计应该是(C )。

A、详细的B、全面的C、简化的、压缩的D、彻底的8、软件生命周期由( C )三个时期组成。

A、概要设计、详细设计和系统实现B、可行性分析、系统设计和编码C、定义、开发和运行维护D、分析、设计和测试9、以下( D )不是模块。

对象是一个实体A、过程B、程序C、函数D、对象10、程序流程图、N-S图和PAD图是( B )使用的算法表达工具。

A、设计阶段的概要设计B、设计阶段的详细设计C、编码阶段D、测试阶段11、一个模块直接控制(调用)的下层模块的数目称为模块的( B扇出)P78A、扇入数B、扇出数C、宽度D、作用域12、下列工具哪一个是需求分析阶段常用工具?( D )A、PADB、PFDC、N-SD、DFD数据流程图需求分析常用的是数据流程图和数据字典13、为了提高测试的效率,应该( D)A、随机地选取测试数据B、取一切可能的输入数据作为测试数据库C、在完成编码后制定软件的测试计划D、选择发现错误可能性大的数据作为测试数据14、成功的测试是指( B发现程序的错误)A、运行测试实例后未发现错误项B、发现程序的错误C、证明程序正确D、改正程序的错误15、软件工程中只根据程序的功能说明而不关心程序内部的逻辑结构的测试方法,称为( C黑盒测试)测试。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

复习提纲第一章软件工程概述1、分析60年代末出现的软件危机的原因。

如何理解“越早潜伏的错误越晚发现,越晚发现的错误,修正的费用越高”。

答:软件危机是指在软件开发过程中遇到的一系列严重问题,如:开发周期延长,成本增加,可靠性降低等。

开发大型软件与编制小程序主要有以下区别:⑴人员:小程序从确定要求、设计、编制、使用,直到维护通常由一个人完成;大型软件则由用户、项目负责人、分析员、程序员、资料员、操作员等组成一支开发队伍来协同完成。

⑵文档:小程序很少有书面文档;大型软件则是集体劳动的“产物”,必须有规范化的文档,便于开发和维护。

⑶产品。

小程序工作量小,如果需作大的修改,可舍弃旧程序而重新编写;但大型软件的开发耗费了大量的人力与物力,一般不会轻易抛弃,而总是在旧软件的基础上一再改动,以延长它的使用期,因此“版本”在不断升级。

大型软件的开发提出了许多新的问题,而开发方法却还停留在编制小程序的方法上,经验和技巧已不能满足开发大型软件的需要,导致软件开发过程混乱;使用的开发方法和技术不当,没有适当的文档,不易交流,维护困难,开发成本高,软件质量低等,这些问题是造成软件危机的主要原因。

2、软件复用的概念及两类软件复用技术:合成技术和生成技术。

答:软件复用是指在构造新的软件系统过程中,对已存在的软件产品(设计结构、源代码、文档等)重复使用的技术。

(1)合成技术利用部件(component,组件,构件)合成软件系统的技术。

部件是可复用的一小段软件(可为二进制形式),可以是对某一函数、过程、子程序、数据类型、算法等可复用软件成分的抽象,封装了功能细节和数据结构,有详细的接口。

(2)生成技术利用可复用的模式,通过生成程序产生一个新的程序或程序段,产生的程序可以看成是模式的实例。

可复用的模式有两种:代码模式和规则模式。

①代码模式可复用的代码模式存在于应用生成器中,通过特定的参数替换,生成抽象软件模块的具体实体。

各种程序生成器。

②规则模式利用程序变换系统,把用超高级规格说明语言编写的程序转化成某种可执行语言的程序。

IDL——CORBA的接口定义语言。

第二章需求分析工程3、简述需求分析工程的重要性。

答:(1)在软件生命周期中,一个错误发现越晚,修复错误的费用越高。

(2)许多错误是潜伏的,且在错误产生后很长一段时间才被检测出。

(3)需求分析中会产生大量错误。

(4)需求分析中的错误多为疏忽、不一致和二义性。

(5)需求错误是可以被检测出来的。

4、掌握和分析Petri网的有关问题;会用可达树分析死锁问题。

分析饿死现象并改进。

答:Petri网的局限性1、令牌缺乏表示信息内容的能力令牌只是表示动作控制的流向,无法表达信息的内容。

2、缺乏描述选择“使能”变迁的策略3、Petri网不能描述有定时要求的计算问题,而很多系统的定时问题则很重要。

用可达树分析死锁问题:若出现叶结点,则系统中有死锁。

分析饿死现象并改进: 图中存在激发序列<t1,t3,t5>无限循环,而<t2,t4,t6>被“饿死”,原因是Petri 网不能描述选择策略。

修改Petri 网,强制它使用一种选择策略,避免了t3在t4激发之前激发两次。

如下图:5、分析、理解电梯运动的Petri 网。

PPT 第二章49P 4P 5 P 6P 7P 3 t 1t 2 t 3t 4 t 5 t 6P1 P 2按下t min(C)=0.05t max(C)=0.05t min=0.1第三章软件开发的结构化方法6、传统的瀑布模型将软件开发分为几个步骤,每一步得到什么结果。

问题定义的结果:《问题目标和规模报告书》可行性研究的结果:《可行性研究报告》。

需求分析的结果:《需求规格说明书》7、简述结构化方法需求分析的综合要求。

答:需求分析阶段的任务主要是确定目标系统必须具备哪些功能。

结构化需求分析的综合要求:⑴功能要求:指系统必须完成的所有功能。

⑵性能要求:如联机系统的响应时间,系统的存储容量、健壮性和安全性等方面的要求。

⑶运行要求:指系统运行所需要的软硬件环境。

⑷未来要求:指系统将来可能的扩充要求。

⑸数据要求:指系统所要处理的数据以及它们之间的联系。

需求分析的结果:《需求规格说明书》8、能绘制DFD,并能将DFD映射为软件结构图。

PPT第三章18例子:某工厂采购部门每天要开出定货清单,清单中包括订购部件的部件号、部件名、规格、说明、订购量、当前价格、主要供应商和辅助供应商。

部件入库或出库称为业务,通过仓库中的终端把业务报告给定货系统,处理库存业务。

当某种部件的库存量少于标准线以下时,仓库管理员就应该及时通知定货系统开出定货清单,交由采购员采购。

根据画数据流图的步骤画出定货系统的数据流图。

(不需要答)(1)从系统的简述中提取数据流图的四个成分;1)源点和汇点。

仓库管理员视为源点,采购员视为汇点2)处理。

处理通常是系统简述中的动词短语,如产生定货清单,处理库存业务等。

3)数据流。

从系统的源点流出和流入汇点的数据流即是系统的输入数据流和输出数据流。

4)数据存储。

确定哪些数据应保存在数据存储中。

库存业务一旦产生就立即被处理,所以不必保存。

定货清单一天只产生一次,故需要保存产生定货清单的数据。

有关库存零部件的信息包括定货标准线也应作为数据存储,统称为库存数据。

(2)定货系统数据流图的基本成分源点/汇点处理数据流数据存储管理员产生定货清单定货清单定货数据采购员处理库存业务库存业务库存数据(3)画出系统的高层数据流图;图在PPT第三章28、29将DFD映射为软件结构图图在PPT第三章909、简述软件测试的三个步骤、黑盒和白盒测试方法。

内聚、耦合类型分析。

(1)单元测试:又称模块测试测试对象是软件设计中最小的单元——模块,其目的是发现模块内部存在的错误。

单元测试发现编码阶段的错误。

测试内容:(a)模块间的接口;(b)模块内的局部数据结构(c)模块内的重要通路尤其是错误处理的通路和影响上述各方面的边界条件。

(2)集成测试:又称组装测试或联合测试集成测试发现软件设计阶段的错误。

在单元测试的基础上,需要将所有模块按设计要求组装成系统。

在经过单元测试未发现错误的模块,组装之后仍可能出现各种问题。

集成测试的基本方法:边组装边测试。

有自顶向下或自底向上两种方法。

(a)自顶向下测试从主控模块开始,沿着模块层次,边组装边测试已组装部分的功能,直到全部组装完毕,系统达到设计的功能和性能要求为止。

为保证测试的进行,必须提供保证测试条件的桩模块。

桩模块:用来模拟被测模块的下层模块的模块。

再用实际的下层模块代替桩模块,并进行回归测试。

回归测试是相对于原始测试而言的,它部分或全部地重复前面进行过的测试工作。

(b)自底向上测试与自顶向下测试相反,它先组装最低层模块,向上逐步组装。

每组装一个模块,便测试由此模块及其下层模块组成的子功能。

直到全部装配完毕,达到系统设计的功能和性能要求为止。

为保证测试的进行,必须提供保证测试条件的“驱动程序”。

用实际的上层模块代替该驱动程序。

(3)确认测试:又称有效性测试或验收测试确认测试检查系统的功能和性能是否达到系统分析说明书提出的设计指标,即是否满足用户要求,检查文档是否齐全等。

确认测试发现软件分析阶段的错误。

黑盒测试法是根据程序的功能和性能进行测试的方法。

它把被测程序看成一个黑盒子,完全不考虑程序内部的数据结构和逻辑通路。

也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能和性能是否满足预期需要,程序是否能适当地接收输入数据产生正确的输出数据,并保持外部信息的完整性。

产生黑盒测试的测试用例的方法有如下几种:等价类划分法边界值分析法、因果图法、错误推测法白盒测试法是根据程序的逻辑结构进行测试的方法。

它把程序看成是装在一个透明的白盒中,也就是完全了解程序内部的结构和处理过程。

这种方法按程序内部的逻辑来测试程序,检验程序的每条通路是否都能按规定要求正确工作。

产生白盒测试用例的方法有如下几种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。

一般而言,测试时以黑盒测试法为主,白盒测试法为辅。

模块间的耦合程度按从低到高分类如下:⑴无耦合。

如果两模块之间没有任何联系,每一个都能独立地工作而不需要另一模块的存在,是彼此完全独立的,则这两个模块间属于无耦合的情况。

⑵数据耦合。

如果两个模块是通过参数表仅传递数据型信息,则这种耦合称为数据耦合。

数据耦合是松散的耦合,模块间的独立性较强。

软件结构中至少有这种耦合。

⑶特征耦合。

若两个模块通过参数表传递的是某一数据结构的子结构,而不是简单变量,这就是特征耦合。

是数据耦合的一种变种。

增加出错的机会,不易改动(数据结构变化时)。

将该数据结构上的操作全部集中在一个模块中,就可消除这种耦合。

⑷控制耦合。

如果传递控制型信息,这就是控制耦合。

对被控制的模块做任何修改,都会影响到控制模块,降低模块的独立性。

⑸公共耦合。

若一组模块使用了公共数据,则它们之间的耦合称为公共耦合。

公共数据包括全程变量、共享的通信区、内存的公共覆盖区等。

公共数据的使用,必然降低软件的可读性、可修改性和可靠性。

⑹内容耦合。

如果发生下列情况之一,两个模块间就是内容耦合:•一个模块直接访问另一个模块的内部数据;•一个模块通过不正常入口直接转入另一模块内部;•一个模块有多个入口;•两模块有一部分代码重叠(只在汇编语言中出现);内容耦合是耦合性最高的耦合,即是模块间最坏的联系方式,现在大多数高级程序设计语言中已经不会出现这种耦合。

在进行设计时应该采取以下原则:以数据耦合为主,特征耦合为辅,少用控制耦合,限制公共耦合,杜绝内容耦合。

模块的内聚性按从低到高分类如下:⑴偶然内聚。

如果模块中各组成成分间彼此没有实质联系,即使有联系也是很松散的,模块功能模糊,则称为偶然内聚。

例如有时写完一段程序后,发现一组语句在程序中多处出现,便将其组织在一个模块内以节省内存,就出现了偶然内聚的模块。

在模块设计时,如果发觉一个模块难以命名,就应考虑是否出现偶然内聚。

⑵逻辑内聚。

如果一个模块完成的是逻辑上相同或相似的一组功能,则称为逻辑内聚。

例如,设计一个模块打印各种报表,如固定资产报表、产品成本报表、利润报表等,打印何种报表靠传递控制参数调用。

由于不同功能在一个模块中,通常在设计模块时会出现几种功能共用部分代码,从而使得修改、添加或去掉功能都很困难。

⑶时间内聚。

若一个模块中包含的任务必须在同一时间内执行,而这些任务的次序无关紧要,则叫时间内聚。

例如各种初始化工作由初始化模块完成,而各种结束工作被组合到结束模块中,这样它的执行将涉及到其它许多模块。

⑷过程内聚。

如果一个模块内的处理成分间是相关的,而且必须以特定顺序执行,则称为过程内聚。

例如把程序流程图中的循环、判断和计算分成三个模块,则这三个模块就是过程内聚的模块。

相关文档
最新文档