《软件工程复习资料》word版.doc_第1页
《软件工程复习资料》word版.doc_第2页
《软件工程复习资料》word版.doc_第3页
《软件工程复习资料》word版.doc_第4页
《软件工程复习资料》word版.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程复习资料第一章1.软件危机软件总是超出预算、落后于进度表,而且不可靠;在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件受其自身特点的影响,生产过程不象硬件那样规范,受人的因素和外界影响很大,在软件生产的各阶段都会引入不同程度的错误,造成不能预期完成任务,致使成本上升,甚至导致软件失败。2.软件危机的表现(1)用户对开发出的软件很难满意(2)软件产品的质量往往靠不住(3)一般软件很难维护(4)软件生产效率很低(5)软件开发成本越来越大(6)软件成本与开发进度难以估计(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。3.软件危机的原因一方面是与软件本身的特点有关;另一方面软件开发和维护的方法不正确:忽视软件开发前期的需求分析;开发过程没有统一、规范方法论的指导;文档资料不齐全;忽视人与人的交流;忽视测试工作,提交给用户的软件质量差;轻视软件的维护。4.怎样使用软件工程消除软件危机?软件工程应使用已有的工程规则的理论和模式,来解决所谓的软件危机。5.软件工程概念软件工程是指导计算机软件开发和维护的工程学科。(1)它采用工程的概念、原理、技术和方法来开发和维护软件;(2)它将管理技术与当前经过时间考验的而证明是正确的技术方法结合起来;(3)它强调使用生存周期方法学和结构分析和结构技术;(4)经过人们长期的努力和探索,围绕着实现软件优质高产这个目标,从技术到管理两个方面做了大量的努力,逐渐形成了软件工程学这一新的学科。6.软件工程与软件工程方法学有何关系?软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤;软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。7.软件工程三要素1)工具为软件工程方法提供了自动的或半自动的软件支撑环境;2)方法为软件开发提供了如何做的技术;3)过程定义了方法使用的顺序,要求交付的文档资料,为保证质量和适应变化所需要的管理,软件开发各个阶段完成的里程碑。8.软件工程的基本准则严格阶段管理;坚持阶段评审;加强产品控制;采纳新技术;结果应能清楚地审查;开发小组的人员应该少而精;承认不断改进软件工程实践的必要性。9.软件生存周期软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。一般说来,软件生命周期划分为三个时期:计划时期、开发时期、运行时期。计划时期划分为问题定义和可行性研究;开发时期又划分为需求分析、概要设计、详细设计、编码和测试阶段;运行时期主要是在运行中完成各类维护。10.软件生存周期各阶段任务问题定义:要解决的问题是什么;可行性研究:对于上一个阶段所确定的问题有行得通的解决办法吗;需求分析:为了解决这个问题,目标系统必须做什么;总体设计:概括地说,应该怎样实现目标系统;详细设计:应该怎样具体地实现这个系统呢;编码和单元测试:写出正确的容易理解、容易维护的程序模块;综合测试:通过各种类型的测试使软件达到预期的要求。11.软件生存期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架;是对软件过程的建模。12.几种常见模型优缺点:1)瀑布模型:优点:1.可强迫开发员采用规范的方法2.严格地规定了每个阶段必须提交的文件3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。缺点:传统的瀑布模型过于理想化,是由文档驱动的。2)快速原型模型:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的方法,获取用户真正的需要。缺点:可能导致系统设计差,难于维护。3)增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。缺点:需要开放式结构,可能会设计差。4)螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只是螺旋模型中另一个周期。缺点:风险分析人员需要有经验且经过充分训练。第二章1.可行性研究的三个方面(1)技术可行性:使用现有的技术能实现这个系统吗?(2)经济可行性:这个系统的经济效益能超过它的开发成本吗?(3)操作可行性:系统的操作方式在这个用户组织内行得通吗?2.可行性研究目的?用最小的代价在尽可能短的时间内确定问题是否能够解决。3.可行性研究的任务?(1)进一步分析和澄清问题的定义,在澄清问题的基础上,导出系统的逻辑模型;(2)从系统逻辑模型中,选择问题的若干种主要解法,研究每一种解法的可行性,为以后的行动提出建议;(3)如果问题没有可行的解,建议停止系统开发;如果问题有可行的解,应该推荐一个较好的解决方案,并为工程制定一个初步的计划。4.数据流图和数据字典共同构成系统的逻辑模型。5.数据字典的内容及作用数据字典是描述数据流图中数据的信息的集合。它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。作用:对用户来讲,数据字典为他们提供了数据的明确定义;对系统分析员来讲,数据字典帮助他们比较容易修改已建立的系统逻辑模型。6.数据字典最重要的用途是作为分析阶段的工具。7.成本/效益分析方法成本/效益分析首先要估算待开发系统的开发成本,然后与可能取得的效益(有形的和无形的)进行比较与权衡。其中有形的效益可用货币的时间价值、投资的回收期、纯收入、投资回收率等指标进行度量。无形的效益主要是从性质上和心理上进行衡量,很难进行量的比较。但是无形的效益有特殊的潜在价值,且在某些情况下会转化成有形的效益。8.项目开发计划包含什么内容?1)软件范围:确定软件需求描述,主要包括功能、性能、可靠性和接口问题。2)环境资源:包括硬件、软件和人,对每一种资源均从资源的描述、对资源的要求日程表、占用时间三个方面来说明。3)制定进度表:根据可用资源和项目的工作量,并考虑各项任务之间的依赖关系,安排工程进度时间表。4)软件成本:估算每阶段的软件成本。9.系统流程图系统流程图是描绘物理系统的传统工具,其表达的是信息在系统各部件之间的流动情况。基本思想是用图形符号以黑盒子形式描述系统里面的部件(程序、文件、数据库等)。系统流程图表达的是部件的信息流程,而不是对信息进行加工处理的控制过程。在可行性研究过程中,利用系统流程图来描述所建议系统的物理模型。10.数据流图概念及作用Data Flow Diagram,DFD,是描绘系统逻辑模型的优秀工具,用图形符号方式描述系统里面数据的流动方向及处理情况。数据输入到系统后,经过一些列的加工处理,最后输出新的数据。基本构成:数据流,加工,文件,源点与终点。作用:作为交流信息的工具;作为系统分析设计的工具;辅助物理系统的设计。11.系统流程图与数据流程图有什么区别?系统流程图描述系统物理模型的工具,数据流程图描述系统逻辑模型的工具。系统流程图从系统功能的角度抽象的描述系统的各个部分及其相互之间信息流动的情况。数据流程图从数据传送和加工的角度抽象的描述信息在系统中的流动和数据处理的工作状况。第三章1.需求分析的任务及成果清楚的理解用户要解决的问题,完整准确的获取用户的需求,并用需求规格说明书规范的形式准确地表达用户的需求。成果是需求规格说明书。2.需求分析的几个阶段问题分析;问题评估和方案综合;建模;规约;复审3.需求获取的内容功能需求;性能需求(软件开发的技术性指标);环境需求;界面需求;用户或人的因素;文档需求;数据需求;资源需求;安全保密要求;软件材料成本消耗与软件开发进度要求;质量保证。4.需求分析的描述工具有哪些?数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier图、IPO图和需求描述语言等。5.软件需求规格说明书由哪些部分组成?(1)引言:编写目的、背景说明、术语定义及参考资料等。(2)概述主要功能、约束条件或特殊需求。(3)数据流图与数据字典。(4)用户接口、硬件接口及软件接口。(5)性能需求、属性等。(6)其它需求,如数据库、操作及故障处理等。6.需求规格说明书(SRS)作用开发者与用户间事实上的技术合同书;开发者下一步设计和编码的基础;测试验收目标系统的依据。7.加工逻辑描述工具用结构化语言;用判定表描述;用判定树描述。第五章1.系统设计包括哪两个阶段?系统设计包括总体设计(概要设计、结构设计)与详细设计(过程设计)两个阶段。2.总体设计的主要任务是什么?总体设计的主要任务是完成软件结构的设计,确定系统的模块及其模块之间的关系。3.概要设计的任务与步骤(1)设想可能的方案(2)选取合理的方案(3)推荐最佳方案(4)功能分解(5)设计软件结构(6)数据库设计(7)制定测试计划(8)编写文档(9)审查与复审4.模块化的重要特征:抽象;信息隐藏。5.模块的独立性基本概念开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,可以做到模块独立。特点:具有特定子功能、接口简单。6.模块的独立性衡量标准耦合:亦称块间联系,衡量不同模块间相互依赖的紧密程度,为独立性的直接衡量。耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。耦合性越高,模块独立性越弱。内聚:亦称块内联系,模块内各部分(语句或段落)之间结合的紧密程度。设计目标:高内聚(一模块的所有成分都直接参与并且对于完成同一功能来说都是最基本的)。7.耦合强度依赖的因素:一模块对另一模块的引用;一模块向另一模块传递的数据量;一模块施加到另一模块的控制的数量;模块间接口的复杂程度;8.模块间耦合的类型:低耦合:非直接耦合,数据耦合(属松散耦合),标志耦合(特征耦合);中耦合:控制耦合;较强耦合:外部耦合,公共耦合;强耦合:内容耦合(最不好)。9.模块化设计的原则和目标原则:尽量使用数据耦合;少用控制耦合;限制公共耦合的范围;坚决避免使用内容耦合。目标:建立模块间耦合度尽可能松散的系统。10.模块的内聚性类型:由内聚性及模块独立性从低到高排列:巧合内聚(偶然内聚);逻辑内聚;时间内聚(经典内聚);过程内聚(模块内各处理成分相关,且必须以特定次序执行);通信内聚(模块内各部分使用相同的输入数据,或产生相同的输出结果);信息内聚(模块完成多个功能,各功能都在同一数据结构上操作,每一功能有唯一入口);功能内聚:模块仅包括为完成某个功能所必须的所有成分(模块所有成分共同完成一个功能,缺一不可),内聚性最强。11.耦合、内聚与模块独立性关系内聚与耦合密切相关,同其它模块强耦合的模块意味者弱内聚,强内聚模块意味着与其它模块间松散耦合。设计目标:强内聚,弱耦合。耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。但耦合是直接的主导因素,内聚则辅助耦合共同对模块独立性进行衡量。12.结构设计中的图形工具层次图(H图);HIPO图;结构图(SC)。13.面向数据流设计方法的任务:将DFD映射为软件系统的结构。14.变换型数据流由哪几部分组成?变换型结构由三部分组成:传入路径、变换(加工)中心和传出路径。15.变换分析设计的步骤?(1)区分传入、传出和变换中心三部分,划分DFD图的分界线;(2)完成第一级分解:建立初始SC图的框架;(3)完成第二级分解:分解SC图的各个分支;(4)对初始结构图按照设计准则进行精化与改进。第六章1.详细设计的目的?确定应该怎样具体的实现所要求的系统,即在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。2.详细设计的主要任务?编写软件的详细设计说明书。3.结构化程序设计的基本原则?在详细设计中所有模块都使用单入口、单出口的顺序、选择、循环三种基本控制结构.4.程序设计工具程序流程图;盒图(N-S图);问题分析图(PAD);过程设计语言(PDL)(伪码);判定表。5.比较面向数据流和面向数据结构两类设计方法的异同?相同点:(1)遵守结构程序设计由顶向下逐步细化的原则,并以其为共同的基础;(2)均服从程序结构必须适应问题结构的基本原则,各自拥有从问题结构(包括数据结构)导出程序结构的一组映射规则。不同点:(1)面向数据流的设计以数据流图为基础,在分析阶段用DFD表示软件的逻辑模型,在设计阶段按数据流类型,将数据流图转换为软件结构。面向数据结构的设计以数据结构为基础,从问题的数据结构出发导出它的程序结构。(2)面向数据流的设计的最终目标是软件的最终SC图,面向数据结构的设计的最终目标是程序的过程性描述。6.详细设计的描述工具应具备什么功能?无论哪类描述工具不仅要具有描述设计过程,如控制流程、处理功能、数据组织及其它方面的细节的能力,而且在编码阶段能够直接将它翻译为用程序设计语言书写的源程序。第7章1.什么是实现?编码?测试方案?测试用例?实现:编码和测试的统称。编码:把软件设计结果翻译成用某种程序设计语言书写的程序。测试方案:包括具体的测试目的应该输入的测试数据和预期的结果。测试用例:测试结果和预期的输出结果。2.测试的概念?(1)软件测试:软件测试是对软件计划、软件设计和软件编码进行查错和纠错的活动,这个过程包括了代码执行活动和人工活动。(2)程序测试:程序测试是对编码阶段出现的语法错、语义错、运行错进行查找的编码执行过程。(3)动态测试:动态测试包括白盒测试和黑盒测试。黑盒测试是根据软件的功能而设计测试用例而进行测试的过程,白盒测试是根据测试的内部结构而设计测试数据,发现程序的错误。(4)静态测试:静态测试包括代码审查和静态分析。3.测试的基本原则?(1)测试前要认定被测试的软件有错,不要认为被测试的程序是正确的(2)要确定测试软件的预先测试结果(3)尽量避免测试自己编写的程序(4)测试时要考虑合理的输入和不合理的输入数据(5)测试时应以软件需求规格说明书中的需求为标准(6)要确定找到的新错与已找到的旧错成正比(7)所使用的测试用例应该纪录下来,以后测试时再用,以供后来的测试和维护使用。4.软件测试的目标及定义?目的:(1)测试是为了发现程序中的错误而执行程序的过程(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案(3)成功的测试是发现了至今为止尚未发现的错误的测试。定义:为了发现程序中的错误而执行程序的过程。5.软件测试的步骤?模块的测试;子系统测试;系统测试;验收测试;平行测试。6.单元测试:单元测试几检测软件设计的最小单元,即模块。主要使用白盒测试技术。(1)模块接口测试:通过测试模块接口的数据流是否可以通畅地流入/出模块,如果数据不能正常地进出,则其他测试都不能进行(2)局部数据结构:测试模块内部数据是否完整,内容、形式、相关关系是否正确(3)逻辑覆盖(执行路径)问题:不可能对模块内部的所有逻辑执行路径进行测试,所以选择最有可能发现错误的执行路径进行测试是至关重要的(4)出错处理问题:一个好的模块应该能够分析出错的原因、报告出错和提供很好的处理错误,保证程序能正常的运行。因此应该详细测试错误处理的通路。7.什么是集成测试?比较的两种方式的优劣?测试和组装软件的系统化技术。优点:自顶向下:可在测试早期实现并验证系统主要功能,不需驱动模块;自底向上:设计测试用例容易,不需桩模块。缺点:自顶向下:需桩模块,且底层关键模块,测试较晚。自底向上:只有到最后程序才能作为一个整体。8.编码风格遵循规则?(1)程序内部的文档:包括恰当的标识符,恰当的注解和程序的视觉组织等。(2)数据说明(3)语句构造:每个语句要简单直接。(4)输入输出(5)效率:程序运行时间;存储器效率;输入输出效率。9.什么是白盒测试?主要采用的技术?白盒:测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致。白盒技术:(1)基本路径测试技术(2)条件测试(3)循环测试。10.什么是逻辑覆盖?逻辑覆盖的类型有哪些?逻辑覆盖:是以程序的内部逻辑结构为基础的测试用例设计技术,属于白盒测试。它要求测试人员十分清楚程序的逻辑结构,考虑的是测试用例对程序内部逻辑覆盖的程度。类型:(1)语句覆盖:选择足够多的测试数据,使被测试程序中每个语句至少执行一次(2)判定覆盖:使被测程序中的每一个分支至少执行一次。故也称为分支覆盖。(3)条件覆盖:执行所有可能的穿过程序的控制路流程。(4)判定/条件覆盖(5)条件组合覆盖:设计足够的测试用例,使每个判定中的所有可能条件取值组合至少执行一次(6)点覆盖(7)边覆盖(8)路径覆盖。11.什么是黑盒测试?主要采用的技术有哪些?黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒技术:等价划分法;边界值分析法:选取的测试数据应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论