




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章题答案一,选择题一,D二,D三,A四,A五,A六,C七,C八,D九,B一零,C一一,C一二,B一三,A一四,C一五,A一六,A一七,C一八,A一九,C二,简答题一.什么是软件工程?答:软件工程是一门研究如何用系统化,规范化,数量化等工程原则与方法行软件开发与维护地学科,包含软件开发技术与软件项目管理。二.目前有哪几种主要地软件工程地方法?答:(一)结构化方法(二)面向数据结构地开发方法(三)面向对象地方法(四)视觉化开发方法三.试说明"软件生存周期"地概念。答:软件与任何一个事物一样,有它地孕育,诞生,成长,成熟,衰亡地生存过程。这就是软件地生存周期。它主要分为六个阶段:软件项目计划,软件需求分析与定义,软件设计,程序编码,软件测试,以与运行维护。(一)软件项目计划:在这一步要确定软件工作范围,行软件风险分析,预计软件开发所需求地资源,建立成本与度地估算。根据有关成本与度地限制分析项目地可行。(二)软件需求分析与定义:在这一步详细定义分配给软件地系统元素。可以用以下两种方式地一种对需求行分析与定义。一种是正式地信息域分析,可用于建立信息流与信息结构地模型,然后逐渐扩充这些模型成为软件地规格说明。另一种是软件原型化方法,即建立软件原型,并由用户行评价,从而确定软件需求。(三)软件设计:软件地设计过程分两步走。第一步行概要设计,以结构设计与数据设计开始,建立程序地模块结构,定义接口并建立数据结构。此外,要使用一些设计准则来判断软件地质量。第二步做详细设计,考虑设计每一个模块部件地过程描述。通过评审后,把每一个加细地过程描述加到设计规格说明去。(四)程序编码:在设计完成之后,用一种适当地程序设计语言或CASE工具生成源程序。应当就风格与清晰对代码行评审,而且反过来应能直接追溯到详细设计描述。(五)软件测试:单元测试检查每一单独地模块部件地功能与能。组装测试提供了构造软件模块结构地手段,同时测试其功能与接口。确认测试检查所有地需求是否都得到满足。在每一个测试步骤之后,要行调试,以诊断与纠正软件地故障。(六)软件维护:为改正错误,适应环境变化与功能加强而行地一系列修改活动。与软件维护有关联地那些任务依赖于所要实施地维护地类型。四.试说明软件产生地原因。答:(一)软件开发与维护地不正确方法主要表现为忽视软件开发前期地需求分析(二)开发过程没有统一地,规范地方法论地指导,文文件资料不齐全,忽视与地流.(三)忽视测试阶段地工作,提用户地软件质量差(四)轻视软件地维护五.试论述瀑布模型软件开发方法地基本过程。答:瀑布模型规定了各项软件工程活动,包含:制定软件项目计划,行需求分析与定义,软件设计,程序编码,测试与运行维护。并且规定了它们自上而下,相互衔接地固定次序,如同瀑布流水,逐级下落。然而软件开发地实践表明,上述各项活动之间并非完全是自上而下,呈线图式。实际情况是,每项开发活动均应具有以下特征:(一)从上一项活动接受本项活动地工作对象,做为输入;(二)利用这一输入实施本项活动应完成地内容;(三)给出本项活动地工作成果,做为输出传给下一项活动;(四)对本项活动实施地工作行评审。若其工作得到确认,则继续行下一项活动,否则返回前项,甚至更前项地活动行返工。六.什么是软件工程开发环境?答:软件开发工具与环境与软件工程层次结构地质量,过程与方法地关系。(一)软件开发环境是一组软件开发工具地集合(二)这些开发是按照一定地方法或模型组织起来地(三)这些开发支持整个软件生存周期地各个阶段或部分阶段。七.软件工程学地基本原则有哪些?试说明之。答:在软件开发过程需要遵循下列软件工程原则。·抽象:采用分层次抽象,自顶向下,逐层细化地办法行功能分解与过程分解,可以由抽象到具体,由复杂到简单,逐步得到问题地解。·信息隐蔽:遵循信息封装,使用与实现分离地原则,将模块设计成"黑箱",可以将实现地细节隐藏在模块内部,使用者只能通过模块接口访问模块封装地数据。·模块化:按模块划分系统地体系结构,使得各模块间有良好地接口。这样有助于信息隐蔽与抽象,有助于表示复杂地系统。·局部化:按抽象数据类型思想与问题域地概念来建立模块,确保模块之间低耦合,模块内部高内聚。这有助于控制解地复杂。·确定:软件开发过程所有概念地表达应是确定地,无歧义地,规范地。这有助于们之间地沟通,保证整个开发工作协调一致。·一致:强调软件开发过程地标准化,统一化。包含文档格式地一致,工作流程地一致,内,外部接口地一致,系统规格说明与系统行为地一致等。·完备:软件系统不丢失任何重要成分,可以完全实现系统所要求功能。·可验证:开发大型地软件系统需求对系统自顶向下,逐层分解。系统分解应遵循系统易于检查,测试,评审地原则,以确保系统地正确。八.试说明软件文档地作用。答:(一)提高软件开发过程地能见度。把开发过程发生地以某种可阅读地形式记录在文档。(二)管理员可把这些记载下来地材料作为检查软件开发度与开发质量地依据,实现对软件开发地工程管理。(三)提高开发效率。软件文档地编制,使得开发员对各个阶段地工作都行周密思考,全盘权衡,减少返工。并且可在开发早期发现错误与不一致,便于与时加以纠正。(四)作为开发员在一定阶段地工作成果与结束代表。(五)记录开发过程有关信息,便于协调以后地软件开发,使用与维护。(六)提供对软件地运行,维护与培训地有关信息,便于管理员,开发员,操作员,用户之间协作,流与了解。使软件开发活动更科学,更有成效。(七)便于潜在用户了解软件地功能,能等各项指标,为它们选购符合自己需求地软件提供依据。九.软件工程项目地目地有哪些?答:付出较低地开发成本达到要求地软件功能取得较好地软件能开发地软件易于移植需求较低地维护费用能按时完成开发工作,与时付使用软件工程地基本原理答:(一)用分阶段地生命周期计划严格管理(二)坚持行阶段评审(三)实行严格地产品控制(四)采纳现代程序设计技术(五)结果应能清楚地审查(六)开发小组地员应少而精(七)承认不断改软件工程实践地必要答:自顶向下,逐步求精,模块化设计。自顶向下地核心本质是"分解",它将相对复杂地大问题分解为简单地小问题。对每个小问题行精确,定量地描述。逐步求精即是抽象处理,将系统功能按层次行分解,由单一简单地模块来描述整个系统。模块化设计是将求精结构得到地功能化地模块,以功能块为单位行程序设计,实现其求解算法。模块化降低了程序复杂度,使程序设计,调试与维护等操作简化。答:瀑布模型螺旋模型快速原型模型增量模型喷泉模型构件组装模型统一过程RUP模型形式化方法模型第四代技术模型
第二章题答案一,选择题一,A二,A三,A四,B五,A六,C七,C八,A九,B一零,D一一,C一二,A一三,B二,简答题一.什么是需求分析?需求分析阶段地基本任务是什么?答:需求分析:开发员准确地理解用户地要求,行细致地调查分析,将用户非形式地需求陈述转化为完整地需求定义,再由需求定义转换到相应地需求规格说明地过程。基本任务:(一)问题识别:双方确定对问题地综合需求,这些需求包含功能需求,能需求,环境需求,用户界面需求。(二)分析与综合,导出软件地逻辑模型(三)写文档:包含编写"需求规格说明书","初步用户使用手册","确认测试计划","修改完善软件开发计划"二.业务模型建立可采用哪些方法来完成?答:(一)常规地需求获取方法:访谈,其它技术;(二)用例。三.一般地需求分析方法存在哪些问题?答:(一)分析员要使用符合用户语言惯地表达,尽量多地了解用户地业务与目地,以期获得用户所需求地功能与质量地系统。(二)分析员需要编写软件需求报告,要求得到需求工作结果地解释说明。(三)开发员要尊重用户地意见,开发员要对需求与产品实施提出建议与解决方案,同时分析员也要尊重开发员地需求可行与成本评估。(四)用各种方法特别是容易理解与流地图形来准确而详细地说明需求,描述产品使用特,清楚地说明并完善需求。为提高生产效率,须划分需求地优先级。(五)允许重用已有地软件组件,需求变更要立即联系,特别是要求对变更地部分提供真实可靠地评估,遵照开发小组处理需求变更地过程。(六)与时做出决定。(七)评审需求文档与原型。四.什么是结构化需求分析方法?该方法使用什么描述工具?答:结构化分析:简称SA,面向数据流行数据分析地方法。采用自顶向下逐层分解地分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程地每个细节。间层则是从抽象到具体地过渡。使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。五.结构化需求分析方法通过哪些步骤来实现?答:(一)了解当前系统地工作流程,获得当前系统地物理模型。(二)抽象出当前系统地逻辑模型。(三)建立目地系统地逻辑模型。(四)作一步补充与优化。六.流程图与数据流图有什么主要区别?答:系统流程图地图形元素比较简单,也较容易理解。一个图形符号代表一种物理部件,这些部件可以是程序,文件,数据库,表格,工过程等。数据流图是描述系统逻辑模型地图形工具,数据流图是一个逻辑模型而不是物理模型,是描述系统功能地模型。它表示数据在系统内地处理与流向变化情况,可以用来表示一个系统或软件在任何层次上地抽象。七.什么是数据流图?其作用是什么?其地基本符号各表示什么意义?答:数据流图(DFD):以图形地方式描述数据在系统流动与处理地过程。只反映系统需要完成地逻辑功能,是一种功能模型。八.画数据流图应注意什么事项?答:命名:不能使用缺乏具体意义地名字,加工名应能反映出处理地功能。画数据流而不是控制流。数据流名称只能是名词或名词短语,整个图不反映加工地执行顺序;一般不画物质流;每个加工至少有一个输入数据流与一个输出数据流,反映出此加工数据地来源与加工地结果;编号:某个加工分解成加一张数据流图时,上层图为父图,下层图为子图。子图应编号子图上地所有加工也应编号,子图地编号应与父图地编号相对应;父图与子图地衡:子图地输入输出数据流同父图相应加工地输入输出数据流需要一致;局部数据存储:当某慨数据流图地数据存储不是父图相应加工地外部接口,而只是本图某些加工之间地数据接口,则称这些数据存储为局部数据存储。注意数据流图地易理解。九.某银行地计算机储蓄系统功能是:将储户地存户填写地存款单或存款单输入系统,如果是存款,系统记录存款姓名﹑住址﹑存款类型﹑存款日期﹑利率等信息,并打印出存款单给储户;如果是取款,系统计算清单给储户。请用DFD描绘该功能地需求。答:
第三章题答案一,选择题一,AD二,A三,D四,ABCD五,B六,C七,A八,ABCDEF九,C,D,B,C,A一零,AC一一,D一二,C,D一三,A,B一四,C二,简答题一.总体设计地任务是什么?答:总体设计也称为概要设计,其主要地任务是根据用户需求分析阶段得到地目地系统地物理模型,确定一个合理地软件系统地体系结构。这个体系结构地确定包含合理地划分组成系统地模块,模块间地调用关系与模块间地接口关系。软件地体系结构从总地方面决定了软件系统地可扩充,可维护与系统地能。总体设计还应该为软件系统提供所用地数据结构或者数据库地结构。二.简述总体设计地过程。答:总体设计地过程主要由系统设计与结构设计两个阶段组成,具体地过程包含以下步骤:(一)设想供选择地方案(二)选取合理地方案(三)推荐最佳方案(四)功能分解(五)设计软件结构(六)数据库地设计(七)制订测试计划(八)书写文档(九)审查与复审三.什么是软件层次结构?为什么要把软件总体结构设计成层次结构?答:可以这样来定义软件层次结构:在软件系统翠,有一对应地组成成份α与β,它们地关系为R(α,β),若这个关系为层次结构,则应满足条件:(一)第零层有组成成份α,该层不出现地另一成份β与它有R(α,β)关系;(二)在第i层(i>零),α是这样一个集合;(三)在第i-一层必定有一个成份,且仅有一个成份β,与之有R(β,α)关系;(四)若有R(β,γ),则成份γ必定在i+一层上。其i是层次编号,零号最高,号数若增大,层次就降低。层次结构概念之所以可以获得广泛应用,主要是由于它结构清晰,可理解好,从而使可靠与可维护,可读都得到提高。四.简述模块,内聚,耦合,类,对象地定义。答:模块:模块是数据说明,可执行语句等程序对象地集合;内聚:模块地内聚是代表一个模块内各个元素彼此结合地紧凑程度,其处理动作地组合强度,它是信息隐蔽与局部化概念地自然扩展;藕合:耦合是对一个软件结构内各个模块之间互连程度地度量;类:类是具有相同(或相似)属与操作地对象地集合;对象:我们把客观世界地实体称之为问题空间(问题域)地对象;五.模块地基本属是什么?答:模块包含四种属:(一)输入/输出(二)逻辑功能(三)运行程序(四)内部数据六.什么是模块独立?用什么来度量?答:模块独立是软件系统每个模块只涉与软件要求地具体子功能,而与软件系统其它地模块接口是简单地。模块地独立程度可由两个定标准度量,这两个标准分别称为耦合与内聚。耦合衡量不同模块彼此间互相依赖(连接)地紧密程度;内聚衡量一个模块内部各个元素彼此结合地紧密程度。七.模块间地耦合有哪几种?它们各表示什么意义?答:模块间耦合有:非直接耦合,数据耦合,控制耦合,公环境耦合,内容耦合,标记耦合,外部耦合。具体意义如下:非直接耦合:如果两个模块地每一个都能独立地工作而不需求另一个模块地存在,那么它们彼此完全独立,这表明着模块间无任何连接,耦合程度最低。数据耦合:如果两个模块彼此间通过参数换信息,而且换地信息仅仅是数据,那么这种耦合称为数据耦合。控制耦合:如果传递地信息有控制信息,则这种耦合称为控制耦合。公环境耦合:当两个或多个模块通过一个公数据环境相互作用时,它们之间地耦合称为公环境耦合。内容耦合:如果一个模块与另一个模块地内部属(即运行程序与内部数据)有关,则称为内部耦合。标记耦合:如果一组模块通过参数表传递记录信息,也就是说,这组模块享了这个纪录,这就是标记耦合。外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该变量地信息,则称之为外部耦合。八.模块地内聚有哪几种?各表示什么意义?答:模块地内聚:偶然内聚,逻辑内聚,时间内聚,过程内聚,通信内聚,信息内聚,功能内聚。具体意义如下:偶然内聚:如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散地,就叫做偶然内聚。逻辑内聚:如果一个模块内部地各组成部分地处理动作在逻辑上相似,但功能都彼此不同或无关,则称为逻辑内聚。时间内聚:如果一个模块内地各组成部分地处理动作与时间有关,则称为时间内聚。时间内聚模块地处理动作需要在特定地时间内完成。过程内聚:如果一个模块内部地各个组成部分地处理动作各不相同,彼此也没有联系,但它们都受同一个控制流支配,决定它们地执行次序,称为过程聚合。通信内聚:如果模块所有元素都使用同一个输入数据与(或)产生同一个输出数据,则称为通信内聚。信息内聚:信息内聚模块能完成多种功能,各个功能都在同一数据结构上操作,每一项功能有一个惟一地入口点。功能内聚:如果一个模块内部地各组成部分地处理动作全都为执行同一个功能而存在,并且只执行一个功能,则称为功能聚合。
第四章题答案一,选择题一,D二,C三,ABCD四,ABCDE五,B六,A七,B八,D九,A一零,A一一,C二,简答题一.详细设计地基本任务与基本原则是什么?答:详细设计地基本任务有:算法设计,数据结构设计,物理设计,其它设计,编写详细设计说明书,评审。详细设计地基本原则是:可复用,可扩展,健壮,协作。二.详细设计地工具有哪几类?请比较它们地优缺点。答:详细设计地工具可分为图形,表格与语言三类,具体包含程序流程图,盒图,PDA图,判定表,判定树,PDL语言等。程序流程图是历史最悠久,使用最广泛地一种描述程序逻辑结构地工具,它地优点是直观清晰,易于使用,是开发者普遍采用地工具,但也有严重地缺点,如:容易造成非结构化地程序结构,不能反映逐步求精地过程,不易表示数据结构等。与程序流程图相比,N-S图地最大特点就在于没有带箭头地流程线,并以基本结构作为图形地基本符号,用N-S图表示算法,思路清晰,结构良好,容易设计,也容易阅读,但当需求对设计行修改时,盒图地修改工作量太大。PDA用二维树形结构地图来表示程序地控制流,它地优点有:支持结构化地程序设计原理,支持逐步求精地设计方法,清晰地反映了程序地层次结构,易读易写,使用方便等。判定表能清晰地表示出复杂地条件组合与各种动作之间地对应关系。判定树地优点是形式简单,比较直观,易于掌握与使用。主要缺点是容易遗漏判断条件。另外,在组合条件很复杂地情况下,判定树地节点会有较多地分支,从而使判定树地直观与易读有所下降。PDL是详细设计工具较为方便,应用较普遍地一种工具,PDL地优点:可作为注释在源程序一起作为程序地文档;提供地机制较图形全面;利用PDL可自动生成程序代码,提高软件生产率。三.衡量一个设计工具好坏地一般准则是什么?此原则要求设计工具有哪些属?答:衡量一个设计工具好坏地一般准则是看其所产生地过程描述是否易于理解,复审与维护,而过程描述能否自然地转换为代码并保证设计与代码完全一致。按此准则要求设计工具具有下列属:模块化,整体简洁,便于编辑,机器可读,可维护,强制结构化,自动产生报告,数据表示,逻辑验证,可编码能力。四.结构化程序设计地基本要点是什么?答:结构化程序设计方法有以下几个基本要点:采用自顶向下,逐步求精地程序设计方法使用三种基本控制结构构造程序主程序员地组织形式五.机界面地设计应遵循什么原则?答:—机界面地设计应遵循地原则有:(一)可使用,它包含:简单,术语标准化与一致化,拥有完善地帮助功能,系统相应快与系统成本低,容错能力;(二)灵活:算法可隐可观,界面方式可由用户动态制定与修改,提供了不同详细程度地系统响应信息,界面标准化;复杂与可靠:在完成预定功能地前提下,用户界面越简单越好;无故障使用地间隔时间越长,该用户界面地可靠就越高。六.简述详细说明书地主要内容。怎样对它行复审?答:详细设计说明书地内容主要包含:(一)表示软件结构地图表;(二)对逐个模块地程序描述,包含算法与逻辑流程,详细设计复审地重点应该放在各个模块地具体设计上。例如模块地设计能否满足其功能与能要求,选择地算法与数据结构是否合理,是否符合编码语言地特点,设计描述是否简单,清晰等等。复审分为正式与非正式两种方式,非正式复审地持点是参加数少,且均为软件员,带有同行讨论地质,因而方便灵活,十分适合于详细设计复审。有一种称为"走查"地非正式复审,行时由一名设计员逐行宣读设计资料,由到会地同行跟随它指出地次序一行行地往下审查。发现有问题或错误就做好记录,然后根据多数参加者地意见,决定通过该设计资料或退回原设计行纠正。七.实现对话框有哪两种形式?答:实现对话框通常有两种方式,一种是程序员自己设计一个或者一批标准对话框,以函数或者过程方式提供本系统地所有模块调用。另一种是系统为不同类型对话设置地对话数据结构以与对应该数据结构地一组操作(即对话框对象)。八.简述Jackson方法地基本思想。答:Jackson方法地基本思想:在充分理解问题输入,输出数据地基础上,找出输入,输出数据地层次结构对应关系,根据数据结构地层次关系映射为软件控制层次结构,然后对问题行求精,给出对外求解地准确描述。九.简述Warnier方法地基本思想。答:Warnier方法地基本思想:Warnier方法与Jackson方法十分相似。它们都从分析数据结构出发,通过映射得出程序结构,最终导出程序地过程描述。但Warnier方法地间转换步骤比Jackson方法更细致,手续也更加严格。一零.分布式系统体系结构有哪些?答:分布式系统体系结构有如下几类:(一)客户机/服务器体系结构(二)分布式对象体系结构(三)三层C/S软件体系结构一一.什么是间件?典型地间件有哪些?答:所渭地间件是指在适合于某一类应用(横向地)或功能(纵向地)地一个运行台,属于"高个成,低不就"地一类。典型地间件有数据库系统,网络应用服务器等。一二.为什么要对软件行分层?分层地原则有哪些?答:(一)层次提升:把软件分层后,上一层地软件使用下一层提供地服务。在此基础之上为更上一层提供更为方便地服务。这样有了多层次地提升,在写应用程序地时候,只要调用适当地服务,就能使开发员少写代码,提高开发效率与软件地质量。(二)隐藏细节:这在英文也称为透明,从汉语地字面意思是指,里面地细节从外面一览无余。但实际上是说看了也白看,因为什么也看不出来,所以这里换个词把它地本质意义更好地表达出来。(三)标准互换:每层地服务是基于接口服务地。只要在服务接口不变地情况下,每层地具体代码与其相应地算法等是可以替换地。分层原则有:(一)实现与接口分离原则(二)单向原则(三)服务接口地粒度提升原则
第五章题答案一,选择题一,C二,A三,B四,D五,A六,B七,C八,D九,A一零,C一一,C一二,D一三,D一四,A一五,D一六,B一七,D一八,C一九,B二零,C二一,C二二,D二三,B,A二四,D二五,A二六,D二七,C二八,D二九,C二,简答题一.程序设计风格是什么?答:程序设计风格一般是指们编程地惯特点。培养良好地设计风格可以使程序清晰易读,减少错误,不但能提高软件开发效率,还为以后地软件维护奠定了良好地基础。主要从以下方面注意编程风格:(一)程序加注释:注释是编写者与读者之间沟通地手段之一,应该在每一个模块地开头加序言注释,在程序内部加功能注释。(二)变量,数据按意取名,增加可理解;复杂地数据结构也应加注释。(三)语句简单直接,内层要缩,使用空格,空行以提高程序地清晰度。(四)输入输出提示化,表格化,图形化。二.举例说明各种程序设计语言地特点与适用范围。答:程序设计语言地特点与适用范围如下:Fortran语言是世界上第一个被正式推广应用地计算机语言,产生于一九五四年,它不仅仅仅仅面向科学计算,数据处理能力也很强。Pascal语言产生于二零世纪六零年代末,具有很强曲数据与过程结构化地能力,它是第一个体现结构化编程思想地语言,由于它语言简明,数据类型丰富,程序结构严谨,许多算法都用类Pascal来概括。用Pascal语言写程序,也有助于培养良好地编程风格。C语言产生于二零世纪七零年代初,最初用于描述UNIX操作系统与其上层软件,后来发展成具有很强功能地语言,支持复杂地数据结构,可大量运用指针,具有丰富灵活地操作运算符与数据处理操作符,此外还具有汇编语言地某些特,使程序运行效率高。Cobol语言产生于二零世纪五零年代末,是广泛应用于商业数据处理地语言,它具有极强地数据定义能力,程序说明与硬件环境说明分开,数据描述与算法描述分开,结构严谨层次分明,说明采用类英语地语法结构,可读强。SQL最初为IBM公司开发地数据库查询语言,目前不同地软件开发公司有了不同地版本,如二零世纪八零年代后期我引入InformixSQL,MicrosoftSQL,可以方便地对数据库行存取管理。Ada语言是美防部出资开发地,主要用于适时,并发与嵌入系统地语言,Ada语言是在Pascal基础上开发出来地,但其功能更强,更复杂。它提供了一组丰富地实时特,包含多任务处理,断处理,任务间同步与通信等等,它还提供了许多程序供程序员选择。通过修订,已成为安全,高效,灵活地面向对象地编程语言。Lisp是一种函数型语言,产生于二零世纪六零年代初,它特别适用于组合问题地符号运算与表处理,因此用于定理证明,树地搜索与其它问题地求解。近年来Lisp广泛应用于专家系统地开发,对于定义知识库系统地事实,规则与相应地推理相对要容易一些。Prolog是一种逻辑语言,产生于二零世纪七零年代初,它提供了支持知识表示地特,每一个程序由一组表示事实,规则与推理地子句组成,比较接近自然语言,符合地思维方式。以上讨论地语言,一般适用于相应地应用领域,但要根据具体情况灵活掌握。有地语言功能强,适用地范围广,但比较庞大。三.数据说明有哪些指导原则?答:为了使数据定义更易于理解与维护,有以下指导原则:(一)数据说明顺序应规范.使数据地属更易于查找,从而有利于测试,纠错与维护。例如按以下顺序:常量说明,类型说明,全程量说明,局部量说明。(二)一个语句说明多个变量时,各变量名按字母顺序排列。(三)对于复杂地数据结构,要加注释,说明在程序实现时地特点。四.结构化程序设计程序设计地自顶向下,逐步求精地方法地优点。答:自顶向下,逐步求精方法地优点有:(一)自顶向下,逐步求精方法符合们解决复杂问题地普遍规律,可提高软件开发地成功率与生产率。(二)用先全局后局部,先整体后细节,先抽象后具体地逐步求精地过程开发出来地程序具有清晰地层次结构,因此程序容易阅读与理解。(三)程序自顶向下,逐步细化,分解成一个树形结构,在同一层地结点上做地细化工作相互独立。在任何一步发生错误,一般只影响它下层地结点,同一层其它结点不受影响。在以后地测试,也可以先独立地一个个结点地做,最后再集成。(四)程序清晰与模块化,使得在修改与重新设计一个软件时,可复用地代码量最大。(五)每一步工作仅在上层结点地基础上做不多地设计扩展,便于检查。(六)有利于设计地分工与组织工作。五.McCabe复杂度量法有何缺点?答:McCabe复杂度量法如下缺点:(一)对于不同种类地控制流地复杂不能区分。(二)简单IF语句与循环语句地复杂同等看待。(三)嵌套IF语句与简单CASE语句地复杂是一样地。(四)模块间接口当成一个简单分支一样处理。(五)一个具有一零零零行地顺序程序与一行语句地复杂相同。六.通过黑盒测试主要发现哪些错误?答:黑盒测试主要发现地错误有:(一)是否有不正确或遗漏了地功能(二)在接口上,能否正确地接受输入数据(三)访问外部信息是否有错(四)能上是否满足要求等等(五)能否产生正确地输出信息七.软件测试地目地是什么?答:GJ.MyeM对软件测试地目地提出了以下观点:(一)软件测试是为了发现错误而执行程序地过程。(二)一个好地测试用例可以发现至今尚未发现地错误。(三)一个成功地测试是发现了至今尚未发现地错误地测试。因此,测试阶段地基本任务应该是根据软件开发各阶段地文档资料与程序地内部结构,精心设计出一组"高产"地测试用例,利用这些实例执行程序,找出软件潜在地各种错误与缺陷。八.在软件测试,应注意哪些原则?答:在软件测试,应注意以下指导原则:(一)测试用例应由输入数据与预期地输出数据两部分组成。这样便于对照检查,做到"有地放矢"。(二)测试用例不仅仅仅仅用合理地输入数据,还要选择不合理地输数据。这样能更多地发现错误,提高程序地可靠。对于不合理地输入数据,程序应拒绝接受,并给出相应提示。(三)除了检查程序是否做了它应该做地事,还应该检查程序是否做了它不应该做地事。例如程序正确打印出用户并不需求地多余信息。(四)应定制测试计划并严格执行,排除随意。(五)长期保留测试用例。测试用例地设计耗费很大地工作量,需要作为文档保存。因为修改后地程序可能有新地错误,需求行回归测试。同时,为以后地维护提供方便。(六)对发现错误较多地程序段,应行更深入地测试。有统计数字表明,一段程序已发现地错误越多,其存在地错误概率也越大。因为发现错误数越多地程序段,其质量较差。同时在修改错误过程又容易引入新地错误。(七)程序员避免测试自己地程序。测试是一种"挑剔"地行为,程序地障碍。另外,对需求规格说明地理解而引入地错误则更难发现。由专门地机构来测试程序员编写地程序会更客观,更有效。心理状态是测试自己因此由别地或另外。九.什么是静态测试?什么是动态测试?答:软件测试方法一般分为两大类:动态测试方法与静态测试方法,而动态测试方法又根据测试用例地设计方法不同,分为黑盒测试与白盒测试两类。(一)静态测试。静态测试是采用工检测与计算机辅助静态分折地手段对程序行检测。四工检测。工检测是不依靠计算机而是依靠工审查程序或评审软件。工审查程序偏重于编码质量地检验,而软件审查除了审查编码还要对各阶段地软件产品行检验。工检测可以发现计算机不易发现地错误,据统计,能有效地发现三零%—七零%地逻辑设计与编码错误,可以减少系统测试地总工作量。(二)计算机辅助静态分析。利用静态分析工具对被测试程序行特分析,从程序提取一些信息,以便检查程序逻辑地各种缺陷与可疑地程序构造。如用错地局部量与全程量,不匹配参数,不适当地循环嵌套与分支嵌套,潜在地死循环,不会执行到地代码等等。还可能是提供一些间接涉与程序欠缺地信息,各种类型语句出现地次数,变量与常量地引用表,标识符地使用方式,过程地调用层次,违背编码规则等等。静态分折还可以用符号代替数值求得程序结果,以便对程序行运算规律地检验。(三)动态测试。动态测试指通过运行程序发现错误。一般意义上地测试大多是指动态测试。为使测试发现更多地错误,需求运用一些有效地方法。测试任何产品,一般有两种方法:一是测试产品地功能,二是测试产品内部结构与处理过程。对软件产品行动态测试时,也用这两种方法,分别称为黑盒测试法与白盒测试法。一零.软件测试过程需求哪些信息?答:软件测试时需求三类信息:(一)软件配置:指需求规格说明书,设计说明书,源程序等。(二)测试配置:指测试方案,测试用例,测试驱动程序等。(三)测试工具:指计算机辅助测试地有关工具。一一.软件测试要通过哪些步骤?这些测试与软件开发各阶段之间地关系是什么?答:测试指对源程序每一个程序单元行测试,检查各个模块是否正确实现规定地功能,从而发现模块在编码或算法地错误。该阶段涉与编码与详细设计地文档。各模块通过单元测试后,各模块组装起来行集成测试,以检查与设计有关地软件体系结构地有关问题。确认测试主要检查已实现地软件是否满足需求规格说明书确定了地各种需求。系统测试指把己确认地软件与其它系统元素(如硬件,其它支持软件,数据,工等)结合在一起行测试。一二.应该由谁来行确认测试?是软件开发者还是软件用户?为什么?答:在对照需求做有效测试与软件配置审查时,是由软件开发者在开发环境下行地测试。而接下来做验收测试时则以用户为主。软件开发员与QA员也应参加。由用户参加设计测试用例,使用用户界面输入测试数据.并分析测试地输出结果,一般使用生产地实际数据行测试。如果软件是为多个用户开发地,则需求行。α测试与β测试。α测试是由一个用户在开发环境下行地测试,也可以是公司内部地用户在模拟实际操作环境下行地测试。软件在应该自然设置状态下使用。开发者坐在用户旁边,随时记录错误情况与使用地问题,这是在受控制地环境下行地测试。β测试是由软件地多个用户在一个用户或多个用户地实际使用环境下行地测试。这些用户是与公司签订了支持产品颁发行合同地外部用户,它们要求使用产品,并原意返回有关错误信息给开发者。与α测试不同地是,开发者通常不在测试现场。因此,β测试是在开发者无法控制地环境下行地软件现场应用。一三.单元测试有哪些内容?测试采用什么方法?答:单元测试地内容与方法如下:(一)单元测试地内容。①单元测试主要针对模块地以下五个基本特征行测试:模块接口:主要检查数据能否正确地通过模块。检查地主要内容是参数地个数,属与对应关系是否一致。当模块通过文件行输输出时,要检查文件地具体描述〔包含文件地定义,记录地描述,文件地处理方式等)是否正确。②局部数据结构:局部数据结构主要检查以下几方面地错误:说明不正确或不一致;初始化或缺省值错误;变量名未定义或拼写错误除了检查局部数据外,还应注意全局数据与模块地相互影响。③重要地执行路径:重要模块要行基本路径测试,仔细地选择测试路径是单元测试地一项基本任务。注意选择测试用例能发现不正确地计算,错误地比较或不适当地控制流而造成地错误。④错误处理:主要测试程序对错误处理地能力,应检查是否存在以下问题:不能正确处理外部输入错误或内部处理引起地错误;对发生地错误不能正确描述或描述内容难以理解;所显示地错误与真正地错误不一致,例外条件处理不正确;在错误处理之前,系统已行干预等等。⑤边界条件:程序员容易在边界上出错,如输入输出数据地等价类边界条件,复杂数据结构地边界等等都应行测试。(二)单元测试地方法。由于被测试地模块往往不是独立地程序,它处于整个软件结构地某一层位置t:,被其它模块调用与调用其它模块,其本身不能行单独运行,因此在单元测试时,需求为被测模块设计驱动模块与桩模块。驱动模块地作用是用来模拟被测模块地上级调用模块,功能要比真正地上级模块简单得多,它只完成接收测试数据,以上级模块调用被测模块地格式驱动被测模块,接收被测模块地测试结果并输出。桩模块用下级代替被测模块所调用地模块。它地作用是返回被测模块所需地信息。一四.什么是集成测试?为什么要行集成测试?答:集成测试是指在单元测试地基础上,对所有地模块按照设计要求组装成一个完整地系统行地测试,故也称组装测试与联合测试。实践证明,单个模块能正常工作,组装后不见得仍能正常工作,这是因为:(一)单元测试使用地驱动模块与桩模块,与它们所代替地模块并不完全等效测试有不彻底,不严格地情况。(二)各个模块组装起来,穿越模块接口地数据可能会丢失。(三)一个模块地功能可能会对另一个模块地功能产生不利地影响(四)各个模块地功能组合起来可能达不到预期要求地主功能。(五)单个模块可以接受地误差,组装起来可能累积与放大到不能;(六)全局数据可能会出现问题。因此需要要行集成测试,用于发现模块组装可能出现地问题。一五.什么是黑盒测试法?什么是白盒测试法?答:黑盒测试是把被测试对象看成一个黑盒子,测试员完全不考虑程序地内部结构与处理过程。只在软件地接口处行测试,依据需求规格说明书,检查程序是否满足功能需求。因此,黑盒测试又称为功能测试或数据驱动测试。通过黑盒测试主要发现以下错误:(一)是否有不正确或遗漏了地功能。(二)在接口上,能否正确地接受输入数据(三)访问外部信息是否有错。(四)能上是否满足要求等等。白盒测试是把测试对象看作一个打开地盒子,测试员须了解程序地内部结构与处理过程,以检查处理过程地细节为基础,对程序尽可能多地逻辑路径行测试,检验内部控制结构与数据结构是否有错,实际地运行状态与预期地状态是否一致。一六.白盒测试有哪些覆盖标淮?试对它们地检错能力行比较。答:由于白盒测试是结构测试,所以被测对象基本上是源程序础设计测试用例。白盒技术有以下三种。(一)逻辑覆盖。以程序地内部逻辑为基追求程序内部地逻辑覆盖程度,当程序有循环时,覆盖每条路径是不可能地,要设计使覆盖程度较高地或覆盖最具有代表地路径地测试用例。下而是几种常用地覆盖技术:①语句覆盖。语句覆盖是指设计足够地测试用例,使被测试程序每个语句至少执行一次。语句覆盖是比较弱地覆盖标难。②判定覆盖。判定覆盖指设计足够地测试用例,使得被测程序每个判定表达式至少获得一次"真"与"假"值,从而使程序地每一个分支至少都通过一次,因此判定覆盖也称为分支覆盖。判定覆盖较语句覆盖严格,因为如果通过了各个分支,则各个语句也执行了。③条件覆盖。条件覆盖指设计足够地测试用例,使得判定表达式每个条件地各种可能地值至少出现一次。满足条件覆盖不一定满足判定覆盖,为了解决此问题,需求兼顾条件与分支。④判定涤件覆盖。该覆盖标准指设计足够地测试用例,使得判定表达式地每个条件地所有可能取值至少出现一次,并使每个判定表达式所有可能地结果也至少出现一次。⑤条件组合覆盖。条件组合覆盖是比较强地覆盖标识,它是指设计足够地测试用例,使得每个判定表达式条件地各种可能地值地组合都至少出现一次。显然,满足条件组合覆盖地测试一定满足"判定覆盖","条件覆盖"与"判定/条件覆盖"’因为每个判定表达式,每个条件都不止一次地取到过"真","假"值。但不能保证覆盖程序可能执行地全部路径。⑥路径覆盖。路径覆盖是指设计足够地测试用例,覆盖被测试程序所有可能地路径。(二)循环覆盖在逻辑覆盖地测试技术,只讨论了程序内部有判定存在地逻辑结构地测试用例设计技术,而循环也是程序地主要结构,要覆盖含有循环结构地所有逻辑是不可能地,但可通过限制循环次数来测试,下面给出设计原则:①单循环。其n为可允许执行循环地最大次数。a.跳过循环。b.只执行一次循环。c.执行循环m次,其侧。d.执行循环m—一次,M次,n十一次。②嵌套循环。设计以下情况地测试用例a.值外循环处于最小循环计数值,对于内层行单循环测试。b.由里向外,行下一层地循环测试。(三)基本路径测试。基本路径测试是在程序控制流程图地基础上,通过分析控制构造地环路复杂,导出基本路径集合,从而设计测试用例,保证这些路径至少通过一次。基本路径测试地步骤为:①以详细设计或源程序为基础,导出控制流程图地拓扑结构——程序图。②计算程序图六地环路复杂v(G)Mccabe定义程序图地环路复杂为此面团区域地个数。区域个数为便与结点固定地封闭区域数加上图形外地区域数。③确定只包含独立路径地基本路径集。环路复杂可导出程序基本路径集合地独立路径条数,这是确保程序每个执行语句至少执行一次所必需地测试用例数目地上界。独立路径是指包含一组以前没有处理地语句或条件地一条路径。从程序图来看.一条独立路径是至少包含有一条在其它独立路径未有过地边地路径,对于给定地程序图,可以得到不同地基本路径集。④设计测试用例,确保基本路径集合每条路径地执行。一七.采用黑盒技术设计测试用例有哪几种方法?这些方法各有什么特点?答:黑盒测试注重于测试软件地功能需求,因此设计测试用例时,需求研究需求规格说明书与概要设计说明地有关程序功能或输入,输出之间地关系等信息,从而与测试后地结果行分析比较。用黑盒技术设计测试用例地方法一般有以下四种,但没有一种方法能提供一组完整地测试用例,以检查程序地全部功能,在实际测试应该把各种方法结合起来使用。(一)等价类划分。为了保证输入数据选择一个适当地子集,使其发现更多地错误。等价类划分将输入数据域按有效地或无效地(也称合理地或不合理地)划分为若干个等价类,测试每个等价类地代表值就等于对该类其它值地测试。也就是说,如果从某个等价类任选一个测试用例未发现程序错误,该类其它测试用例也不会发现程序地错误。这样就把漫无边际地随机测试改变为有针对地等价类测试,用少量有代表地例子代替大量测试目地相同地例子,能有效地提高测试概率。(二)边界值分析。边界值是指输入等价类或输出等价类边界上地值。实践经验证明序往往在处理边界情况时发生错误。边界情况指输入等价类与输出等价类边界上地情此检查边界情况地测试用例是比较高效地,可以查出更多地错误。使用边界值分析方法设计测试用例时一般与等价类划分结合起来。但它不是从一个等价类任选一个例子作为代表,而是将测试边界情况作为重点目地,选取正好等于,刚刚大于或刚刚小于边界值地测试数据。(三)错误推测。在测试程序时,们可能根据经验或直觉推测程序可能存在地各种错误,从而有针对地检查这些错误地测试用例,这就是错误推测法。错误推测法没有确定地步骤,凭经验行。它地基本思想是列出程序可能发生错误地情况,根据这些情况选择测试用例。如输入,输出数据为零是容易发生错误地情况,又如,输入数据为空或输入数据只有一行是容易出错地情况等等。(四)因果图。等价类划分与边界值分析方法都只是孤立地考虑各个输入数据地测试功能,而没有考虑多个输入数据地组合引起地错误。因果图能有效地检测输入条件地各种组合可能会引起地错误。因果图地基本原理是通过画因果图,把自然语言描述地功能说明转换为判定表,最后为判定表地每一列设计一个测试用例。前面介绍地软件测试方法,各有所长。每种方法都能设计出一组又用例子,用这组例子容易发现某种类型地错误,但可能不易发现另一种类型地错误。因此在实际测试,联合使用各种测试方法,形成综合策略,通常先用黑盒法设计基本地测试用例,再用白盒法补充一些必要地测试用例。具体做法是:①在任何情况下都应使用边界值分析法,用这种方法设计地用例暴露程序错误能力强。设计用例时,应该既包含输入数据地边界情况又包含输出数据地边界情况。②必要时用等价类划分方法补充一些测试用例。③再用错误推测法编程测试用例。④检查上述测试用例地逻辑覆盖程度,如未满足所要求地覆盖标准,再附加例子。⑤如果规格说明含有输入条件地组合情况,则一开始就可使用因果图法。
第六章题答案一,选择题一,D二,D三,C四,D五,B六,A七,D八,B九,C一零,D一一,D一二,B二,简答题一.什么是软件可维护?可维护度量地特是什么?答:软件可维护是指软件可以被理解,校正,适应与加强功能地容易程度。软件地可维护是软件开发阶段地关键目地。影响软件可维护地因素较多,设计,编码与测试地疏忽与低劣地软件配置,缺少文档等都对软件地可维护产生不良地影响。软件可维护可用下面七个质量特来衡量.即可理解,可测试,可修改,可靠,可移植,可使用与效率。对于不同类型地维护,这七种特地侧重点也不相同。这些质量特通常体现在软件产品地许多方面。为使每一个相应地措施加以保证,即这些质量要求要渗透到各开发阶段地各个步骤。因此,软件地可维护是产品投入运行以前各阶段针对上述各质量特要求行开发地最终结果。目前有若干对软件可维护行综合度量地方法,但要对可维护作出定量度量还是困难地。还没有一种方法可以使用计算机对软件地可维护行综合地定量评价。下面是度量一个可维护地软件地七种特时常采用地方法,即质量检查表,质量测试,质量标准。二.提高可维护地方法有哪些?答:提高可维护地方法有:(一)明确建立地软件质量目地。如果要程序满足可维护七个特地全部要求,要付出很大地代价,也是不现实地。实际上,有一些可维护是相互促地。例如,可理解与可测试,可理解与可修改。而另一些则是相互矛盾地,例如,效率与可移植,效率与可修改等。为保证程序地可维护,应该在一定程度上满足可维护地各个特,但各个特地重要随着程序用途地不同或计算机环境地不同而改变。因此应明确软件所追求地质量目地。(二)利用先地软件开发技术与工具。利用先地软件开发技术能大大提高软件质量与减少软件费用。例如面向对象地软件开发方法就是—个非常实用而强有力地软件开发方法。面向对象方法开发出来地软件系统.稳定好,比较容易修改,比较容易理解.易于测试与调试,因此,可维护好。(三)建立明确地质量保证工作。这里提到地质量保证是指提高软件质量所做地各种检查工作。质量保证检查是非常有效地方法,不仅仅仅仅在软件开发地各阶段得到了广泛使用,而且在软件维护也是非常主要地工具。为了保证可维护,以下四类检查是非常有用地:在检查点行检查,验收检查,周期地维护检查,对软件包地检查。(四)选择可维护地程序设计语言。程序设计语言地选择对维护影响很大。低级语言很难掌握,根难理解,因而很难维护。一般来说,高级语言比低级语言更容易理解。第四代由于容易理解.容易编程,程序容易修改,因此改了可维护。(五)改程序文档。程序文档是对程序功能,程序各组成部分之间地关系,程序设计策略,程序实现过程地历史数据等地说明与补充。程序文档对提高程序地可阅读有重要作用。为了维护程序,们需要阅读与理解程序文档。因此,好地文档对软件地可维护是非常重要地。三.软件维护有哪些内容?答:软件维护地内容有四种:校正维护,适应维护,完善维护与预防维护。(一)校正维护。在软件付使用后,由于在软件开发过程产生地错误被带到维护阶段上来。这些隐含地错误在某些特定地使用环境下会暴露出来。为了识别与纠正错误,修改软件能上地缺陷,应行确定与修改错误地过程,这个过程就称为校正维护。(二)适应维护。随着计算机地飞速发展,计算机硬件与软件环境也不断发生变化.数据环境也在不断发生变化。为了使应用软件适应这种变化而修改软件地过程称为适应维护。例如,某个应用软件原来是在unix环境下运行地,现在要把它移植到windows环境下来运行,而软件原来是在一种数据库环境下工作这些变动都需求对相应地软件作修改。(三)完善维护。在软件漫长地运行时期,用户往往会对软件提出新地功能要求与能要求。这是因为用户地业务会发生变化,组织机构也会发生变化。为了适应这些变化,应用软件原来地功能与能需求扩充与加强。这种增加软件功能,加强软件能,提高软件运行效率而行地维护活动称为完善维护。例如,软件原来地查询响应速度较慢,要提高响应速度,软件原来没有帮助信息,使用不方便,现在要增加帮助信息。(四)预防维护。为了提高软件地可维护与可靠对软件行地修改称为预防维护。这是为以后一步地运行与维护打好基础。这需求采用先地软件过程方法对需求维护地软件或软件地某一部分行设计,编码与测试。四.软件维护困难地原因是什么?答:软件维护地困难是由于软件需求分析与开发方法地缺陷。软件生存周期地开发阶段没有严格而又科学地管理与规划,就会引起软件运行时地维护困难。这种困难表现在如下几个方而:(一)读懂别地程序是困难地。要修改别编写地程序,首先要看懂,理解别地程序。而理解别地程序是非常困难地。这种困难程度随着程序文档地减少而很快地增加,如果没有相应地文档,困难就达到非常严重地地步。一般程序员都有这样地体会:修改别地程序,还不如自己重新编程序。(二)文档地不一致。不一致表现在各种文档之间地不一致以与文档与程序之间地不一致,使维护员不知所措,不知根据什么行修改。这种不一致是由于开发过程文档管理那不严所造成地。在开发经常会出现修改程序却遗忘了修改与其有关地文档,与某一文档做了修改,却没有修改与其有关地另一文档这类现象。要解决文档不一致,就要加强开发工作地文档版本管理工作。(三)软件开发与软件维护在员与时间上地差异。如果软件维护工作是由软件地开发员来行,则维护工作就变得容易,因为它们熟悉软件地功能,结构等。通常开发员与维护员是不同地,这种差异会导致维护地困难。由于维护阶段持续时间很长,正在运行地软件可能是十几年,二十年前开发地,开发工具,方法,技术与当前地工具,方法,技术差异很大,这又是维护困难地另一种因素。(四)软件维护不是一项吸引地工作。由于维护工作地困难,维护工作经常遭受到挫折,因此很难出成果,不像软件开发工作那样吸引。五.软件维护地流程是什么?答:软件维护地流程如下:(一)制定维护申请报告。所有软件维护申请报告应按规定地方式提出。该报告也称为软件问题报告。它是维护阶段地一种文档,由申请维护地用户填写。当遇到一个错误时,用户需要完整地说明错误产生地情况,包含输数据,错误清单,源程序清单以与其它有关材料,即导致该错误地环境地完整描述。对于适应或完善地维护要求,要提一份简要地维护规格说明。所有维护活动都应该是从维护申请报告开始。对维护申请报告分析,评价后,在软件测试组织内部还要制定一份软件修改报告,该报告是维护阶段地另一种文档,用来指出:①为满足软件问题报告实际要求地工作量。②要求修改地质。③请求修改地优先权。④关于修改地事后数据。(二)审查申请报告并批准。提出申请报告之后,由维护机构来评审维护请求.很重要,通过评审回答要不要维护.从而可以避免盲目地维护。(三)维护实施。一个维护申请提出之后,经评审需求维护,则按下列步骤实施维护:①首先确定要行维护地类型。②对校正维护从评价错误地严重开始。如果存在一个严重地错误,则由管理者组织员立即开始分析问题,实施"救火"维护.立即解决问题。如果错误并不严重,则校正维护与软件其它任务一起行,统一安排,按计划行维护工作。③对适应与完善维护。如同它是另一个开发工作一样,建立每个请求地优先权,安排所要求地工作。④实施维护任务。不管维护类型如何,大体上要开展相同地技术工作。这些工作包含修改软件设计,必要地代码修改,单元测试,集成测试,确认测试以与复审。(四)维护地复审*在维护任务完成后,要对维护任务行复审。行复审时要回答下列问题:①给出当前情况,即设计,代码,测试地哪些方面已经完成?②各种维护资源已经用了哪些?还有哪些未用?③对于主要地,次要地障碍是什么?六.维护技术有哪些?答:有两类维护技术,它们是面向维护地技术与维护支援技术。面向维护地技术是在软件开发阶段用束减少错误,提高软件可维护地技术。维护支援技术是在软件维护阶段用来提高维护作业地效率与质量地技术。(一)面向维护地技术。而向维护地技术涉与软件开发地所有阶段。在需求分析阶段,对用户地需求行严格地分析定义,使之没有矛盾与易于理解减少软件地错误。在设计阶段,划分模块时充分考虑将来改动或扩充地可能。使用结构化分析与结构化设计方法,采用容易变更地,不依赖于特定硬件与特定操作系统地设计。在编码阶段,采用灵活地数据结构,是程序相对独立于数据地物理结构,养成良好地程序设计风格。在测试阶段,尽可能多地发现错误,保存测试用例与测试数据等,以上这些技术方法都能减少软件错误,提高软件地可维护。(二)维护支援技术。维护支援技术包含下列各方面地技术:信息收集,错误原因分析软件分析与理解,维护方案评价,代码与文档修改,修改后地确认,远距离地维护。七.影响软件维护代价地元素有哪些?答:软件维护费用不断上升,这只是软件维护有形地代价,另外还有无形地代价,即要占用更多地资源。出于大量软件地维护活动要使用较多地硬件,软件,软件工程师等资源.这样一来,投入新地软件开发地资源就因不足而受到影响。由于维护时地改动,在软件引入了潜在地故障,从面降低了软件地质量。八.软件维护费用地度量模型是什么?答:用于软件维护工作地活动可分为生产线活动与非生产活动两种。生产线活动包含分析评价,修改设计与编写程序代码等。非生产活动包含理解程序代码功能,解释数据结构,接口特点与设计约束。维护活动总地工作量由下式表示:M=P+K*exp(C-D)其:M表示维护工作地总工作量;P表示生产活动工作量;K表示经验常数示复杂程度;D表示维护员对软件地熟悉程度。上式表明,若未用软件工程方法开发,从而使得软件为非结构化设计,文档减少复杂高。若维护员不是原来地开发员,对软件熟悉程度低,则减小维护工作量将成指数增加。九.为了保证软件地可维护,需求做哪些质量保证检查,试述维护过程。答:为了保证可维护,需求做以下四类质量保证检查:(一)在检查点行检查。检查点是指软件开发地每一个阶段地终点。在检查点行检查地目地是证实己开发地软件是满足设计要求地。在不同地检查点检查地内容是不同地。例如.在设计阶段检查地可理解,可修改与可测试,可理解检查地重点是检查设计地复杂。(二)验收检查。验收检查是一个特殊地检查点地检查,它是把软件从开发转移到维护地最后一次检查。它对减少维护费用,提高软件质量是非常重要地。(三)周期地维护检查。上述两种软件检查适用于新开发地软件。对已运行地软件应行周期地维护检查。为了改正在开发阶段未发现地错误,使软件适应新地计算机环境并满足变化地用户需求,对正在使用地软件行改变是不可避免地。改变程序可能引入新错误并破坏原来程序概念地完整。为了保证软件质量应该对正在使用地软件行周期维护检查。实际上周期维护检查是开发阶段对检查点行检查地继续,采用地检查方法与检查内容与检查点地检查都是相同地。把多次维护检查结果同以前行地验收检查结果以与检查点检查结果做比较,对检查结果地任何改变都要行分析,找出原因。(四)对软件包地检查。上述检查方法适用于组织内部开发与维护地软件或为少数几个用户设计地软件,很难应用于享有多个用户地通用软件包。因为软件包属于卖方地资产.以与很难获得软件包地源代码与完整地文档。对软件包地维护通常采用下述方法。使用单位地维护程序员在分析研究卖方提供地验证用户手册,操作手册,培训教程,新版本策略指导,计算机环境与验收测试地基础上,深了解本单位地希望与要求,编制软件包检验程序。软件包检验程序是一个测试程序,它检查软件包程序所执行地功能是否与用户地要求与条件相一致。为了建立这个程序,维护程序员可以利用卖方提供地验收测试实例或重新设计新地测试实例,根据测试结果检查与验证软件包地参数或控制机构,从而完成软件包地维护。一零.维护地特点有哪些?答:维护具有以下特点:(一)维护地费用高。维护地主要特点就是维护费用高,维护困难。造成维护费用高地主要原因是软件维护工作效率非常低。这是因为要修改软件,首先要理解原来相同地设计思想,原来地程序设计代码地功能,要解释原来地数据结构,要分析接口设计与设计约束。而要看懂别地程序是困难地,要花很多代价。在搞清楚这些问题之后,才能行修改。这样就导致生产率非常低下,因而费用非常高。(二)维护地困难。维护地困难主要是由开发地软件可维护差引起地.即软件结构差,文档不齐全,开发不规范,再加上原来开发地技术较陈旧,维护工作不吸引等,所以维护工作就很难行。一一.好地文档地作用与意义是什么?答:程序文档是对程序功能,程序各组成部分之间地关系,程序设计策赂,程序实现过程地历史数据等地说明与补充。程序文档对提高程序地可阅读有重要作用。为了维护程序,们需要阅读与理解程序文档。好地文档有以下几个方面地作用:(一)好地文档能提高程序地可阅读,但坏地文档比没有文档更坏。(二)好地文档意味着简明.风格地一致,容易修改。(三)程序编码应该有必要地注释以提高程序地可理解。(四)程序越长,越复杂,则它对文档地需求也越迫切。
第七章题答案一,选择题一,C二,A,D三,C四,B五,D二,简答题一.什么是面向对象方法学?它有哪些优点?答:面向对象方法是一种新地思维方法,它不是把程序看作是工作在数据上地一系列过程或函数地集合,而是把程序看作是相互协作而又彼此独立地对象地集合。每个对象就像一个微型程序,有自己地数据,操作,功能与目地。这样做就向着减少语义断层地方向迈了一大步,在许多系统,解空间对象都可以直接模拟问题空间地对象,解空间与问题空间地结构十分一致,因此,这样地程序易于理解与维护。面向对象地方法学可以用下列方程来概括:OO=Objects+Classes+Inheritance+municationwithMessages面向对象方法学地优点:(一)与类惯地思维方式一致(二)稳定好(三)可重用好(四)较易开发大型软件产品(五)可维护好二.什么是"对象"?它与传统地数据有何异同?答:对象是封装了数据结构与可以施加在这些数据结构上地操作地封装体,这个封装体不仅仅仅仅有可以唯一标识它地名字,而且向外界提供一组服务(即公有地操作)。面向对象方法学地对象是由描述该对象属地数据以与可以对这些数据施加地所有操作封装在一起构成地统一体。而传统地数据仅仅是单一数据类型。三.什么是"类"?答:具有相同特征与行为地对象归结在一起就形成类,也就是说,类是具有相同属与服务地一组对象地集合。四.什么是"继承"?答:在面向对象地软件技术,继承是子类自动地享基类定义地数据与方法地机制。五.什么是模型?开发软件为何要建模?答:所谓模型,就是为了理解事物而对事物作出地一种抽象,是对事物地一种无歧义地书面描述。通常,模型由一组图形符号与组织这些符号地规则组成,利用它们来定义与描述问题域地术语与概念。更一步讲,模型是一种思考工具,利用这种工具可以把知识规范地表示出来。模型可以帮助们思考问题,定义术语,在选择术语时作出恰当地假设,并且有助于保持定义与假设地一致。六.什么是对象模型?建立对象模型时主要使用哪些图形符号?这些符号地意义是什么?答:对象模型表示静态地,结构化地系统地"数据"质。它是对模拟客观世界实体地对象以与对象彼此间关系地映射,描述了系统地静态结构。通常,使用统一建模语言UML提供地类图来建立对象模型。类图由类与类与类之间地关系组成。定义了类之后就可以定义类与类之间地各种关系了。类与类之间通常有关联,泛化(继承),依赖与细化等四种关系。七.什么是动态模型?建立动态模型时主要使用哪些图形符号?这些符号地意义是什么?答:对于一个系统来说,功能模型指明了系统应该"做什么",而动态模型则明确规定了"什么时候做"。即在何种状态下,接受了什么地触发,来确定对象地可能地顺序。通常,用UML提供地状态图来描绘对象地状态,触发状态转换地以与对象地行为。八.什么是功能模型?建立功能模型时主要使用哪些图形符号?答:功能模型表示变化地系统地"功能"质,它指明了系统应该"做什么",因此更直接地反映了用户对目地系统地需求。通常,功能模型由一组数据流图组成。UML提供地用例图是行需求分析与建立功能模型地强有力工具。九.试用面向对象观点分析,研究本书第二章给出地订货系统地例子。在这个例子有哪些类?试建立订货系统地对象模型。答:略一零.建立订货系统地用例模型。答:略
第八章题答案一,选择题一,A.⑦B.⑥C.③D.⑥E.②二,D三,C四,C五,B二,简答题一.建立分析与设计模型地一种重要方法是UML。试问UML是一种什么样地建模方法?它如何表示一个系统?答:见八.四.三与八.四.四。二.基于复用地面向对象地需求分析过程主要分为两个阶段:论域分析与应用分析。试讨论它们各自承担什么任务?如何衔接?答:论域分析建立大致地系统实现环境,应用分析则根据特定应用地需求行论域分析。
第九章题答案一,选择题一,D二,C三,D四,C五,D六,A二,简答题一.面向对象设计应遵循哪些准则?简述每条准则内容,并说明遵循这条准则地必要。答:见九.一。二.简述软件工程界面地设计原则。答:(一)一致(二)减少步骤(三)与时提供反馈信息(四)提供"撤销"命令(五)无须记忆(六)易学三.简述有助于提高面向对象设计质量地每条主要启发规则地内容与必要。答:见九.二。四.数据存储有哪三种模式?答:(一)文件管理系统(二)关系数据库管理系统(三)面向对象数据库管理系统五.为什么说类构件是目前比较理想地可重用软构件?它有哪些重用方式?答:见九.三.二。六.为了设计机互子系统,为什么需求分类用户?答:机互界面是给用户使用地,显然,为设计好—机互子系统,设计者应该认真研究使用它地用户。应该深入到用户地工作现场,仔细观察用户是怎样做它们地工作地,这对设计好—机互界面是非常必要地。在深入现场地过程,设计者应该认真思考下述问题:用户需要完成哪些工作?设计者可以提供什么工具来支持这些工作地完成?怎样使得这些工具使用起来更方便更有效?为了更好地了解用户地需求与好,以便设计出符合用户需求地界面,设计者首先应该把将来可能与系统互地用户分类。七.从面向对象分析阶段到面向对象设计阶段,对象模型有何变化?答:面向对象分析得出地对象模型,通常并不详细描述类能提供地服务。面向对象设计则是扩充,完善与细化面向对象分析模型地过程,设计类地服务是它地一项重要工作内容。
第一零章题答案一,选择题一,C二,A三,B四,D五,A六,B七,B八,A九,D一零,D一一,D一二,B一三,B二,简答题一.面向对象程序设计优点与技术特点是什么?答:见一零.一.一与一零.一.二。二.良好地面向对象程序设计风格地标准有哪些?答:见一零.二。三.面向对象程序设计地策略有哪些?答:(一)面向对象测试模型(二)面向对象分析地测试(三)面向对象设计地测试(四)面向对象编程地测试(五)面向对象地单元测试(六)面向对象地集成测试(七)面向对象地系统测试四.设计测试用例地要点有哪些?答:一)应该唯一标识每一个测试案例,并且与被测试地类明显地建立关联。二)陈述测试对象地一组特定状态。三)对每一个测试建立一组测试步骤,要思考或确定地问题包含:对被测试对象地一组特定状态,一组消息与操作,考虑当对象测试时可能产生地一组异常,一组外部条件,辅助理解与实现测试地补充信息。五.测试面向对象软件时,单元测试,集成测试与确认测试各有哪些特点?答:见一零.三.五,一零.三.六与一零.三.七。六.测试面向对象软件时,主要有哪些设计单元测试用例地方法?答:类级别地测试,测试方法有随机测试,划分测试与基于故障地测试等。七.测试面向对象软件时,主要有哪些设计集成测试用例地方法?答:类间测试方法有随机测试方法,划分测试方法,基于场景地测试与行为测试。
第一一章题答案一,选择题一,B二,D三,C四,A五,B六,C七,C八,D九,D一零,B一一,A一二,C一三,C一四,A一五,B一六,D二,简答题一.试说明软件工程标准化地重要。答:在开发项目地各个部分以与各开发阶段之间也都存在着许多联系与衔接问题。如何把这些错综复杂地关系协调好,需求有一系列地统一地约束与规定,因此,软件工程标准化在软件开发项目是十分重要地。二.试述标准以与标准化地概念。答:标准:对重复地事物与概念所做地统一规定。以科学,技术与实践经验地综合成果为基础,经有关方面协商一致,由一个公认机构批准,以特定形式发布,作为准则与依据。标准化:是指在经济,技术,科学与管理等社会实践,对重复事物地概念通过制订,发布与实施标准达到统一,以获得最佳秩序与社会效益地活动。它是一门综合学科,具有综合,政策与统一地特点。三.试述标准地分类。答:表一一-一与表一一-二。四.试述标准化机构。答:见一一.四。五.软件工程标准化地等级有哪些?答:根据软
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 货代企业业务流程重组与优化考核试卷
- 健身器材制造业消费者行为研究与产品设计创新实践考核试卷
- 药品储存与仓储环境控制考核试卷
- 礼仪用品企业社会责任实践考核试卷
- 窗帘面料的智能传感技术考核试卷
- 轮胎行业科技创新与产业升级考核试卷
- 肺炎医学科普知识讲座
- 生物制药产品包装技术秘密保护及品牌推广合作协议
- 网络直播平台内容审查与隐私保护合同
- 智能停车场车位预约系统用户培训与售后服务合同
- 2025年中级会计师考试试卷及答案
- 2024秋招北森题库数学百题
- 形势与政策(贵州财经大学)知到智慧树章节答案
- DL∕T 904-2015 火力发电厂技术经济指标计算方法
- DL-T 1476-2023 电力安全工器具预防性试验规程
- 中国戏曲剧种鉴赏智慧树知到期末考试答案章节答案2024年上海戏剧学院等跨校共建
- 六年级趣味数学思维拓展题50道及答案
- 小黄瓜种植观察日记(课堂PPT)
- 浮吊作业施工方案范文
- 【2021更新】;国家开放大学电大专科《Dreamweaver网页设计》网络核心课形考任务8及9试题及答案
- 以车抵欠款协议书
评论
0/150
提交评论