《软件工程》重点考试知识点,简答_第1页
《软件工程》重点考试知识点,简答_第2页
《软件工程》重点考试知识点,简答_第3页
《软件工程》重点考试知识点,简答_第4页
《软件工程》重点考试知识点,简答_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

WORD完善格式第一章1、软件概念:由计算机程序,数据,软件文档组成软件的特点:无法直接观看它的物理形态,只能通过观看他的是实际运行状况来了解他的功能特性和质量等; 人们在分析设计开发测试过程以及软件开发工程的治理过程中渗透了大量的人类的脑力劳动;不存在磨损和老化但存在缺陷维护和技术更的问题; 开发运行依靠确定的计算机系统环境;具有可复用性软件的分类:按功能分:系统支撑应用软件; 按效劳对象:通用定制软件;按规模:大中小型软件;按工作方式:实时分时交互式批处理2、软件危机:是指落后的软件生产方式无法满足快速增长的计算机软件需求,从而导致软件的开发与维护过程中消灭一系列严峻问题的现象。主要表现:开发人员开发的软件产品不能完全满足用户的需求;开发人员开发的软件产品不能完全满足用户的需求;软件产品的质量难以得到保障;开发周期开发经费和维护费用很难被准确估量从而给工程的治理带来很多麻烦;随着技术的更,用户的扩大,已有的软件产品不能灵敏地适应环境的转变;软件文档不完备并且存在文档内容与软件产品不符的状况。缘由:②没有完善的质量保证体系③软件文档的重要性没有得到软件开发人员和用户的足够重视④从事软件开发的专业人员对这个产业生疏不够充分缺乏阅历⑤软件独有的特点也给软件的开发和维护带来困难3、软件工程是指应用计算机科学与技术,数学和治理学的原理,运用工程学理论方法和技术,争论和指导软件开发和演化的一门穿插学科。使软件开发的本钱把握在估量的合理范围内;使软件产品的各项功能和性能能够满足用户需求;使软件开发的本钱把握在估量的合理范围内;使软件产品的各项功能和性能能够满足用户需求;提高软件产品的牢靠性;使生产出来的软件产品易于移植维护升级和使用;使软件产品的开发周期能够把握在估量的合理时间范围内。软件工程学科内容:软件工程原理过程方法模型治理度量环境应用。软件工程的根本原则:将软件的生命周期划分为多个阶段,对各个阶段实施严格的工程治理;坚持阶段评审制度已确保软件产品的质量;实施严格的产品把握以适应软件规格的变更;承受现代程序设计技术;开发出来的产品应当能够清楚地被审查;合理地安排软件开发小组人员并且开发小组的人员要少而精;实施严格的产品把握以适应软件规格的变更;承受现代程序设计技术;开发出来的产品应当能够清楚地被审查;合理地安排软件开发小组人员并且开发小组的人员要少而精;不断改进软件工程的实践。促进世界范围内对软件工程的全都观点;说明软件工程相对于其他学科的位置;刻画软件工程学科的内容;技术资料 专业整理WORD完善格式供给使用学问体系的主题。4、软件的生命周期:是指从设计该产品的设想开头到软件的需求确实定软件设计软件实现产品的测试与验收投入使用及版本的不断升级,到最终被市场淘汰的全过程。供给使用学问体系的主题。各个阶段:①可行性争论②需求分析③软件设计5、软件开发模型:⑴瀑布模型。

④编码⑤软件测试⑥软件维护。是一种线性的软件开发模型回溯性很差,是一种基于里程碑的阶段过程模型,强调软件开发的阶段性,每个阶段完成特定的任务。瀑布模型适应:需求可以一次性全部获得,开发人员阅历丰富,软件工程风险低。优点:阶段性强易于治理缺点开发过程不灵敏不能适应环境的变化。需求可以一次性全部获得,开发人员阅历丰富,软件工程风险低。⑵原型模型:是开发人员为了快速而准确的猎取需求常承受的方法。特点:主要用于挖掘需求,原型系统通常针对软件开发系统的指功能模块,功能相对不完善,通常结合其他模块共同使用。适应:对现有的软件系统产品进展升级或完善,开发人员与用户需求受限需求猎取困难,开发人员对将要采用的技术手段不生疏,具备快速开发工具。优点:是简洁快速缺点是需要花费一些额外的本钱。⑶增量模型:、是把带开发软件系统模块化和组件化。优点:可以分批次的提交软件产品,减低了软件开发的风险,开发挨次灵敏。缺点:要求待开发的工程可模块化。⑷螺旋模型:用于风险较大的大型软件开发模型,分为制定打算风险分析实施工程客户评估。6、灵敏模型:是一种轻量级的软件方法。避开了传统重量级软件开发过程简洁文档繁琐的弊端,强调软件开发过程中团员的沟通,过程的简洁,用户反响的特性其次章1、可行性争论的目的不在于提出解决问题的方案,而在于争论解决问题的必要性和可能性。意义是尽早的停顿工程的开发就能够避开时间、资金、人力和物力的铺张2、可行性争论包括:技术、社会、经济可行性争论3、技术型可行性争论是对技术解决方案的有用性、技术资源的可用性和设备条件作出评估。 争论要对工程的开发总本钱与开发系统将带来的经济效益之间的差值进展度量。社会可行性争论从政策、法律和制度等社会因素方面考虑工程开发的合理性和意义4、可行性争论的步骤:确定系统的目标;分析争论正在运行的系统;设计系统的高层规律模型;提出可行的解决方案并对其进展评估和比较;选择适宜的解决方案;撰写可行性争论报告可以按打算进展软件工程的开发;需要解决某些存在的问题或者需要对现有的解决方案进展一些调整可以按打算进展软件工程的开发;需要解决某些存在的问题或者需要对现有的解决方案进展一些调整的开发;或改善后才能进展软件工程技术资料 专业整理WORD完善格式待开发的软件工程部不具有可行性、马上停顿该软件工程6、本钱-效益分析第三章待开发的软件工程部不具有可行性、马上停顿该软件工程1、面对对象的根本概念包括对象类封装继承多态,对象是客观世界中存在的事物,已可以是概念化的实体,他由一组属性和操作组成。类是对对象的抽象,是对具有一样属性和一样操作的一组相像对象的定义。封装是指把对象的属性和操作结合在一起组成一个独立的单元,强调独立与封闭。继承表示类之间的层次关系他使得某类对象可以自动拥有另外一个或多个对象的全部属性和操作。多态是一种使父类中定义的属性或操作被子类继承后可以有不同的实现的机制。2、面对对象软件工程方法的优点:符合人们的思维习惯,稳定性好,可复用性好。3、目标系统的类可以划分为边界类、把握类和实体类4、UML号来图形化的呈现一个软件系统第四章1、需求分析是在可行性争论的根底上,将用户对系统的描述,通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程。2、需求分析的步骤:猎取需求识别问题,分析需求建立目标系统的规律框架,将需求文档化,需求验证3、数据流图dataflowdiagram是描述系统中数据流的图形工具,是一种用来表示信息流和信息变换过程的图解方法可以标识一个系统的 为规律输出所需的加工处理。4、构造化需求分析承受的是:自顶向下由外到内逐层分解的思想5、数据字典用数据流图流图来表示系统的规律模型直观且形象,但是缺乏细节描述,也就是说他没有准确和完整的定义各个图元。包含 四类条目:数据流、数据存储、数据项、数据加工6、ER第五章1、软件设计的分类前期进展概要设计,得到软件系统的根本框架;前期进展概要设计,得到软件系统的根本框架;后期进展具体设计,明确系统内部的实现细节。①模块化②抽象③逐步求精④信息隐蔽3、模块化就是把系统或程序划分为独立命名且可以独立访问的模块, 每个模块完成一个特定的子功能。在模块化的过程中需要留意:模块的规模要适中,提高模块的独立性,降低模块间的耦合程度,提高模块的内聚程度,加强模块的保护性。模块的规模要适中,提高模块的独立性,降低模块间的耦合程度,提高模块的内聚程度,加强模块的保护性。①确定以事务为中心的构造,找出事务中心、接收数据、处理路三个局部。②将数据流图转换为厨师的系统构造图。③分解和细化接收分支和处理分支。5、面对数据构造的设计方法比较流行的有Jackon方法和Warnier方法。6、Jackon方法把数据构造分为三种根本类型:挨次构造、选择构造、和循环构造。技术资料 专业整理WORD完善格式7、流程图是对过程、算法、流程的一种图形表示,它对某个问题的定义、分析或解法进展描述,用定义完善的符号表示操作、数据、流向等概念。8、流程图分为数据、程序、系统、程序网络图和系统资源图。9、流程图五种根本构造:挨次型、选择型、先判定型循环、后判定型 循环和多路分支选择型。10、面对对象的设计原则①模块化②抽象化③信息隐蔽④低耦合⑤高内聚⑥复用性。11、软件系统的设计模式解决某一类相像问题的方法论。描述了该问题的解决方案的核心。12、23种模式分3类:①创立型模式②构造型模式③行为型模式。13、所谓模式,就是只解决某一类相像问题的方法论。每种设计模式都包含四个要素:模式名称,问题,解决方案,效果描述第七章1.编码的过程就是把软件设计阶段得到的解决方案转化为可以在计算机上运行的软件产品的过程。2.编程语言①机器语言②汇编-面对机器的低级语言〔简捷、快速〕③高级语言面对过程、对象④超高级语言。3、选择编程语言时,考虑的因素:①应用领域②用户要求③开发人员喜好力气④可移植要求⑤算法和数据构造的简洁性。4、源程序文档化①按实际意义命名②遵循确定命名规章③变量不要过于相像④定义时作出解释;数据说明;语句构造;输入输出;效率。第八章、第九章软件测试是觉察软件中错误和缺陷的主要手段。软件测试的原则:①完全测试是不行能的③软件测试只能说明缺陷的存在

②测试中存在风险④软件产品中潜在的错误数与已觉察的错误数成正比⑤让不同的测试人员参与到测试工作中 ⑥让开发小组和测试小组分别⑦尽早并不断的进展测试 ⑧要重点测试简洁出错或错误较多的模块⑨应当长期保存全部的测试用例3、常用的软件测试模型有:V模型,WH技术资料 专业整理WORD完善格式4、软件测试的分类:依据时间阶段:单元测试,集成测试,系统测试,验收测试。依据是否运行程序:动态测试,静态测试。依据是否看源码:黑盒测试,白盒测试。依据质量因素:功能测试,牢靠性测试,可用性测试,性能测试,安全性测试5、审查和走查是静态测试的常用形式,且静态测试的效率比较高6、动态测试中有两种格外流行的测试技术,即黑盒测试和白盒测试7、单元测试是指对软件中最小的可测试单元进展检查和验证,根本单元一般来说是一个函数、一个过程或者一个类。通常状况下,测试人员承受的白盒测试的方法。8、集成测试是指在单元测试的根底上,对通过测试的单元模块组装成系统或子系统进展测试,由于测试的对象是经过单元限额是的代码,所以集成测试并不关注各个模块的内部细节, 口是否运行正常9、软件测试的一般步骤:单元测试、集成测试,系统测试,验收测试10、面对对象的软件测试可分为:面对对象的分析、设计、实现、单元、集成、系统测试和验收测试11、软件构造优化设计准则:⑴使每个模块执行一个功能⑶模块间传送的参数作数据用 ⑵每个模块用过程语句调用其他模块⑷模块间共用的信息尽量少下使用最简洁的数据构造。12、耦合耦合:是对一个软件构造内不同模块间彼此联系程度的一种定性耦合度量。13、对象对象:是系统中用来描述客观事物的一个实体,是具有明确语义、对象、边界的实体。14、测试方法⑴静态测试静态测试:通常不要求在计算机上实际执行所测程序,主要 静态测试以一些人工的模拟技术对软件进展分析和测试。主要包括代码审查和静态构造分析。⑵动态测试动态测试:是通过输入一组预先依据确定的测试准则构造的动态测试实例数据来动态运行程序,从而到达觉察程序错误的过程。它包括黑盒测试和白盒测试。16.测试技术⑴黑盒测试黑盒测试:在测试时,吧、把程序看作一个不能翻开的黑盒 黑盒测试子,在完全不考虑程序内部构造和内部特性的状况下,测试者在程序接口处进展测试。⑵白盒测试白盒测试:是一种广泛使用的规律测试技术。它的对象根本白盒测试上是源程序,是以程序的内部规律构造为根底的一种测试技术。18、软件测试要经过哪几个阶段?每个阶段与什么文档有关? 软件测试要经过哪几个阶段?每个阶段与什么文档有关?软件测试要经过测试打算过程、测试设计过程、测试执行过程、测试完毕过 4个阶段测试打算输出文档:测试打算与测试需求测试设计过程输出文档:测试说明与测试方案测试执行过程输出文档:测试用例与测试规程测试完毕过程输出文档:测试结论与测试报告第十章1、软件的维护是软件产品生命周期的最终一个阶段2、软件维护的过程:①建立维护机构 ②用户供给维护申请并提交维护申请报告纠错性维护是为了识别并订正软件产品中所浅尝的错误,改正软件性能上的缺陷所进展的维护;③维护人员确认维护类型并实施相应的维护工作 ④整理维护记录并对维护工作进展评审3、软件的维护可以分为:纠错性维护是为了识别并订正软件产品中所浅尝的错误,改正软件性能上的缺陷所进展的维护;技术资料 专业整理适应性维护时为了使软件产品适应硬件环境的变更而进展的维护;完善性维护是主要局部,他是针对用户对软件产品所提出的需求所进展的维护;预防性维护。适应性维护时为了使软件产品适应硬件环境的变更而进展的维护;完善性维护是主要局部,他是针对用户对软件产品所提出的需求所进展的维护;预防性维护。4、影响可维护性的因素:可理解性,可测试性,可修改性等。提高可维护性的措施:建立完整的文档;承受先进的维护工具和技术;建立完整的文档;承受先进的维护工具和技术;留意可维护性的评审环节。6、McCall〔运行维护移植〕:正确性、效率、牢靠性、可用性、完整性、可维护性、可测试性、灵敏性、可移植性、互联性、可复用性。7、软件质量的保证的措施:①基于非执行的测试②基于执行的测试③程序的正确性证明。8、配置治理的工作范围一般包括:标识配置项、进展配置把握、记录配置状态、执行配置审计。9、文档是指某种数据介质和其中所记录的数据。软件文档是用来表示对需求、过程或结果进展描述、定义、规定或认证的图示信息,他描述或规定了软件设计和实现的细节。10、软件工程文档可以分为:用户文档、开发文档和治理文档。二.解释名词后续的维护效劳。白盒测试:是对软件的过程性描述做细致的检查,软件测试员利用程序内部的规律构造及有关信息,设计或选择测试用例,对程序全部规律路径进展测试。边界值分析:就是首先确定边界状况,然后选取正好等于、刚刚大于,或刚刚小于边界的值作为测试数据。模块的扇入/模块的个数称为扇出数。静态模型:是通过系统对象类及其之间的关系描述系统的静态构造。模块的把握范围:指该模块及所包含的子树。测试和调试:测试是为了觉察错误;调试是要找出错误的位置并改正错误。继承:就是子类自动共享父类数据构造和方法的机制。渐增式测试:在对系统的测试过程中,将模块是依据测试方案,一个一个逐步添加到被测试的系统中。需求分析:是指开发人员要准确理解用户的要求,进展细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约〔需求规格说明〕的过程。数据流图,简称DFD绘数据在系统中流淌和处理的过程,由于它只反映系统必需完成的规律功能,所以它是一种功能模型。耦合性。也称块间联系。指软件系统构造中各模块间相互联系严密程度的一种度量。模块之间联系越严密,其耦合性就越强,模块的独立性则越差。对象是人们要进展争论的任何事物,从最简洁的整数以至简洁的飞机等均可着作对象,它不仅能表示具体的事物,还能表示抽象的规章、打算或大事。代码检查:以小组为单位阅读代码,应用一系列规程和缺陷检查技术,检查实际的产品,包括文档和程序代码,觉察存在缺陷和缺陷的过程。可移植性:将软件从一个系统平台搬到另一个系统平台的简洁程度。环路度量:程序的简洁性很大程度上取决于程序把握流的简洁性,单一的挨次程序构造最简洁,循技术资料 专业整理WORD完善格式环和选择所构成的环路越多,程序就越简洁。软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严峻问题。软件危机包含下述两方面的问题:如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。功能测试:即黑盒测试,测试者值考虑程序的输入和输出,主要看程序是否实行其要求的功能。19. 构造化程序设计:构造化程序设计是实现该目标的关键技术之一,它指导人们用良好的思想方法开发易于理解、易于验证的程序。构造化程序设计方法的根本要点是:1〕承受自顶向下、逐步求精的程序设计方法使用三种根本把握构造构造程序主程序员组的组织形式。状态图:状态图是一个标准的计算机概念,它是有限自动机的图形表示,它反映了状态与大事的关系,状态图确定了由大事序列引起的状态序列。软件配置治理:软件配置治理,简称SCM,它用于整个软件工程过程。其主要目标是:标识变更;把握变更;确保变更正确地实现;报告有关变更。 SCM是一组治理整个软件生存期各阶段中变更的活动。软件生存周期模型:描述软件开发过程中各种活动如何执行的模型数据字典〔DD〕:数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护供给了有关元素的全都的定义和具体的描述。内聚性:内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的严密程度的度量方法:JSP输入,输出的数据构造,按确定的规章映射成软件的过程描述,即程序构造。多态性:指一样的操作或函数、过程可作用于多种类型的对象上并获得不同结果。或〔不同的对象,收到同一消息可以产生不同的结果。〕内容。经济可行性:进开放发本钱的估算以及了解取得效益的评估,确定要开发的工程是否值得投资开发。社会可行性:要开发的工程是否存在任何侵害、阻碍等责任问题,要开发工程目的运行方式在用户组织内是否行得通,现有治理制度、人员素养、操作方式是否可行。对应关系:即有直接因果关系在程序中可以同时处理。构造冲突:输入数据与输出数据构造找不到对应关系的状况,称为构造冲突。可行性分析:用最小的代价在尽可能短的时间内确定问题是否能够解决。信息隐蔽:是指在设计和确定模块时,使得一个模块内包含的信息〔过程或数据〕对于不需要这些信息的模块来说是不能访问的。α测试是由一个用户在开发环境下进展的测试,也可以是开发机构内部的用户在模拟实际操作环境下进展的测试。β测试是由软件的多个用户在一个或多个用户的实际使用环境下进展的测试。测试是为了觉察错误;调试是要找出错误的位置并改正错误。程序的可维护性:为满足用户的需求,或当环境发生了变化,或运行中觉察了的错误时,对一个已投入运行的软件进展相应诊断和修改所需工作量的大小。模块的把握范围:指该模块及所包含的子树。容错技术:对那些无法避开的过失,使其影响削减至最小的技术。也就是说,当错误发生时,尽可能地不影响其它的系统元素,或是把用户的影响限制在某些容许的范围内。驱动模块与桩模块:在测试过程中,用以代替被测试模块的上级模块称为驱动模块,用以替代被测试模块的下级模块称为桩模块。技术资料 专业整理WORD完善格式渐增式测试:在对系统的测试过程中,将模块是依据测试方案,一个一个逐步添加到被测试的系统中。三.简要答复以下问题需求分析的任务是什么?需求分析的任务是确定待开发的软件系统“做什么”。具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册。数据流图由哪几种根本部件组成?画数据流图时最常犯的有哪些错误?⑴主要成分:数据的源点或终点,数据处理,数据存储,数据流。⑵数据存储必需“有进有出”;数据流线上有数据流名,且数据流名是名词;数据处理的命名是动词。什么叫模块化?设计一个系统时是否分的模块越多就越好说明缘由。成起来构成一个整体,可以完成指定的功能满足用户的需求。⑵不愿定。当模块数目增加时每个模块的规模将减小,开发单个模块需要的本钱〔工作量〕确实削减了,但是,随着模块数量增加,设计模块间接上所需要的工作量也将增加,依据这两个因素,得出设计一个系统时并不愿定模块越多越好。图的特点是什么?D4.PAD⑴清楚地反映了程序的层次构造。图中的竖线为程序的层次线,最左竖线是程序的主线,其后一层一层开放,层次关系一目了然。⑵支持逐步求精的设计方法,左边层次中的内容可以抽象,然后由左到右逐步细化。⑶易读易写,使用便利。⑷支持构造化的程序设计原理。 ⑸可自动生成程序。软件测试过程中需要哪些信息?软件测试时需要三类信息:⑴软件配置:指需求规格说明书、设计说明书、源程序等。⑵测试配置:指测试方案、测试用例、测试驱动程序等。⑵测试工具:指计算机关心测试的有关工具。描述具体设计的根本任务。具体设计的根本任务是为每个模块进展具体的算法设计,为模块内的数据构造进展设计,确定每个模块的内部特性,包括模块的算法和使用的数据。对数据库进展物理设计等。构造化生命周期方法的优点及其适应对象。构造化生命周期方法的主要优点是:方法强调需求分析的重要性,即表达软件开发中用户至上的原则;出文档的内容和格式,因此方法具有易操作性,是软件开发人员应当把握的根本方法。构造化方法更适合于需求能够预先明确定义的软件系统,如系统软件或某些实时把握软件等。画数据流图要留意哪些事项?⑴设计数据流图时只需考虑系统必需完成的根本规律功能,不需要考虑怎样 具体的实现这些功能。⑵从顶层数据流开头。⑶并不是全部数据存储和数据流都能直接从问题描述中提取出来;⑷当进一步分解将涉及如何具体地实现一个功能时,就不应当在分解了;⑸数据流图中个成分的命名要认真推敲,看是否恰当;技术资料 专业整理WORD完善格式Jackson方法的设计步骤。Jackson方法〔JSP〕设计步骤:⑴分析并确定输入数据和输出数据的规律构造,并用Jackson构造图表示这些数据构造。⑵找出输入数据和输出数据构造中有对应关系的数据单元。 “对应关系”指这些数据单元在数据内容上、数最上和挨次上有直接的因果关系,对于重复的数据单元,重复的次序和次数都一样才有对应关系。⑶按确定的规章由输入输出的数据构造导出程序构造。⑷列出根本操作与条件,并把它们安排到程序构造图的适当位置。⑸用伪码写出程序。如何把握因修改而引起的副作用?为了把握因修改而引起的副作用,要做到:⑴按模块把修改分组。⑵自顶向下地安排被修改模块的挨次。⑶每次修改一个模块。存储映像表、执行流程跟踪等。软件工程是指什么?软件工程的性质是什么?软件工程是用科学学问和技术原理来定义、开发、维护软件的一门学科。软件工程是一门综合性的穿插性学科,它涉及计算机科学、工程学科、治理学科数学等领域。计算机科学中的争论成果均可用于软件工程,但计算机科学着重于原理和理论,而软件工程着重于如何建筑一个软件系统。软件工程要用工程科学中的观点来进展费用估算、制定进度、制定打算和方案。软件工程要用管理科学中的方法和原理进展软件生产的治理。软件工程要用数学的方法建立软件开发中的各种模型和各种算法,如牢靠性模型,说明用户需求的形式化模型等。为了进展测试,为什么需要一个规格说明?规格说明用来打算程序的实际行为何时正确,何时不正确。衡量模块独立的两个标准是什么?它们各表示什么含义?衡量模块的独立性的标准是两个定性的度量标准:耦合性和内聚性。间联系越严密,其耦合性就越强,模块的独立性则越差。模块间的耦合凹凸取决于模块间接口的简洁性、调用的方式及传递的信息。⑵内聚性。又称块内联系,是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的严密程度的度量。假设一个模块内各元素〔语句之间、程序段之间〕联系得越严密,则它的内聚性就越高。耦合性与内聚性是模块独立性的两个定性标准,在软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件构造奠定根底。何谓软件维护?常用的软件维护有几种?软件维护就是在软件已经交付使用之后,为了改正错误或满足的需要而修改软件的过程。通常有四项根本维护:纠错性维护、完善性维护、适应性维护以及预防性维护等。15.什么是序言性注释?它包涵哪些内容?序言性注释通常放在每个程序模块的开头局部,它应当给出程序的整体说明,对于理解程序具有引导作用。序言性注释一般包含以下内容:①程序标题;有关该模块的功能和目的说明;主要算法;②接口说明:包括调用形式,参数描述、子程序清单;技术资料 专业整理WORD完善格式③有关数据描述〔重要的变量及其用途,约束或限制条件,以及其他有关信息〕;④模块位置〔在哪一个源文件中,或隶属于哪一个软件包〕;⑤开发简历模块设计者,复审者,复审日期,修改日期及有关说明等功能模型的特征有哪些?功能模型描述了系统的全部计算。功能模型指动身生了什么,对动态模型确定什么时候发生,而对象模型确定发生的客体。功能模型说明一个计算如何从输入值得到输出值,它不考虑所计算的次序。功能模型由多张数据流图组成。数据流图说明数据流是如何从外部输入、经过操作和内部存储输出到外部的。功能模型也包括对象模型中值的约束条件。什么是测试用例?动态测试有哪些方法?所谓“测试用例”是指为查找程序中的错误而细心设计的一组测试数据,每个测试用例一般是一个二元组〔输入数据、预期结果〕。动态测试主要有两种方法:白盒测试法和黑盒测试法。白盒测试法是从被测试程序的内部规律入手来设计测试用例:黑盒测试法着重测试被测试程序的功能,而不关心内部如何实现其功能的构造,是从用户观点动身的测试。但无论白盒测试法还是黑盒测试法都只能选择一些有代表性的测试用例进展有限的测试。⑴白盒测试法:有6种用于有判定存在的规律掩盖标准,即程序内部路径的掩盖程度。对于有循环存在的掩盖用限制循环次数的方法来测试。但是对于一个实际问题的程序测试中,其路径是一个浩大的数字,根本路径测试告知了最少路径的计算方法,在分析程序把握流程图环路简洁性的根底上,导出根本路径集合,从而设计测试用例,保证这些根本路径至少执行一次,以最少的用例觉察尽量多的错误。⑵黑盒测试法:具体方法有4种,承受黑盒测试法的综合策略是先用等价类划分法〔包括边界值分析法,即取边值上的数〕设计出测试用例,然后用错误推想法补充。假设被测试程序含有多个条件的规律组合,则开头就用因果图法。怎样抑制软件危机?充分吸取和借鉴人类长期以来从事各种工程工程中积存的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件争论和开发的阅历教训。在开发软件的过程中努力作到良好的组织,严格的治理,相互友好的协作。推广在实践中总结出来的开发软件的成功的技术和方法, 并争论更好、更有效的技术和方法,尽快抑制在计算机系统早期进展阶段形成的一些错误概念和作法。依据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支撑环境。总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织治理措施。说明软件工程治理的重要性。由软件危机引出软件工程,是计算机进展史上的一个重大进展。为了应付大型简洁的软件系统,须承受传统的“分解”方法。软件工程的分解是从横向和纵向即空间和时间两个方面进展的。横向分解就是把一个大系统分解为假设干个小系统,小系统分解为子系统,子系统分解为模块,模块分解为过程。纵向分解就是生存期,把软件开发分为几个阶段,每个阶段有不同的任务、特点和方法。为此,软件工程治理需要有相应的治理策略。依据软件产品的特征,且随着软件规模的不断增大,开发人员也随之增多,开发时间也相应地持续增长,这些都增加了软件工程治理的难度,同时也突出了软件工程治理的必要性与重要性。事实证明,由治理失误造成的后果比程序错误造成的后果更为严峻。很少有软件工程的实施进程能准确地符合预定目标、进度和预算的,这也就是以说明软件工程治理的重要性。请说多态重用与继承重用的关系。多态重用实际上是一种特别的继承重用,是充分利用多态性机制支持的继承重用。一般来说,使用多态重用方式重用已有的类构件时,在子类中需要重定义的操作比较少,因此,多态重用方式比继承重用方式技术资料 专业整理WORD完善格式本钱低。简述演绎法调试的具体步骤。演绎法调试步骤:列出全部可能的错误缘由的假设;排解不适当的假设;精化余下的假设;证明余下的假设。简述增量模型和瀑布模型的本质区分。瀑布模型属于整体开发模型,它规定在开头下一个阶段的工作之前,必需完成前一阶段的全部细节。而增量模型属于非整体开发模型,它推迟某些阶段或全部阶段中的细节,从而较早的产生工作软件。简述设计一个容错系统的步骤。按设计任务要求进展常会设计,尽量保证设计的正确对可能消灭的错误分类,确定实现容错的范围依据“本钱效率”最优原则,选用某种冗余手段〔构造,信息,时间〕来实现对各类错误的屏蔽分析或验证上述冗余构造的容错效果简述在工程开发时,选择程序设计语言应考虑因素。〔2〕软件开发的方法〔3〕软件执行的环境〔4〕算法和数据构造的简洁性〔5〕软件开发人员的学问25.简述容错技术的四种主要手段,并解释。构造冗余:包括静态冗余、动态冗余和混合冗余。信息冗余:为检测或订正信息在运算或传输中的错误,须外加一局部信息。时间冗余:指重复执行指令或程序来消退瞬时错误带来的影响。冗余附加技术:指为实现上述冗余技术所需的资源和技术。G.J.Myers的观点,简述对软件测试的目的。软件测试是为了觉察错误而执行程序的过程;一个好的用例能够觉察至今尚未觉察的错误的测试。一个成功的测试是觉察至今尚未觉察的错误的测试。就程序设计语言的工程特性而言,对程序编码有哪些要求?就程序设计语言的工程特性而言,对程序编码有如下要求:〔1〕可移植性〔2〕开发工具的可利用性〔3〕软件的可重用性 〔4〕可维护性模块的内聚性包括哪些类型?模块的内聚性包括:〔1〕偶然内聚〔2〕规律内聚〔3〕时间内聚〔4〕通信内聚〔5〕挨次内聚〔6〕功能内聚可行性争论报告的主要内容有哪些?解:一个可行性争论报告的主要内容如下:引言:说明编写本文档的目的;工程的名称、背景;本文档用到的特地术语和参考资料。方法和打算可行性的主要因素。业技术人员的数量;所需要各种设备;现有系统存在什么问题。所建议系统的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;承受所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价。所建议系统的经济可行性分析:说明所建议系统的各种支出,各种效益;收益投资比;投资回收周期。技术资料 专业整理WORD完善格式社会因素可行性分析:说明法律因素,对合同责任、侵害专利权、侵害版权等问题的分析;说明用户使用可行性,是否满足用户行政治理、工作制度、人员素养的要求。其他可供选择方案:逐一说明其他可供选择的方案,并说明未被推举的理由。结论意见:说明工程是否能开发;还需要什么条件才能开发;对工程目标有什么变动等。[解析]做软件的可行性争论的目的就是用最小的代价在尽可能短的时间内确定该软件工程是否能够开发,是否值得去开发,其中的问题能否解决,报告共分为八个根本内容。系统设计的内容是什么?解:系统设计阶段先从高层入手,然后细化。系统设计要打算整个构造及风格,这种构造为后面设计阶段的更具体策略的设计供给了根底。系统分解。系统中主要的组成局部称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。每次分解的各子系统数目不能太多,最底层子系统称为模块。确定并发性。分析模型、现实世界及硬件中不少对象均是并发的。 系统设计的一个重要目标就是确定哪些是必需同时动作的对象,哪些不是同时动作的对象。后者可以放在一起,而综合成单个把握线或任务。处理器及任务安排。各并发子系统必需安排给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必需完成下面的工作:估量性能要求和资源需求,选择实现子系统的硬软件,将软件子系统安排给各处理器以满足性能要求和微小化处理器之间的通信,打算实现各子系统的各物理单元的连接。数据存储治理。系统中的内部数据和外部数据的存储治理是一项重要的任务。通常各数据存储可以将数据构造、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量以及牢靠性之间做折中考虑。全局资源的处理。必需确定全局资源,并且制定访问全局资源的策略。全局资源包括:物理资源,如处理器、驱动器等;空间,如盘空间、工作站屏等;规律名字,如对象标识符、类名、文件名等。假设资源是物理对象,则可以通过建立协议实现对并发系统的访问,以到达自身把握;假设资源是规律实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则各个全局资源都必需有一个保护对象,由保护对象来把握对该资源的访问。选择软件把握机制。分析模型中全部交互行为都表示为对象之间的大事。系统设计必需从多种方法中选择某种方法来实现软件的把握。人机交互接口设计。设计中的大局部工作都与稳定的状态行为有关,但必需考虑用户使用系统的交互接口。31.什么是软件危机?软件危机的表现是什么?其产生的缘由是什么?解:软件进展其次阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、牢靠性有显著的提高,生产本钱显著下降,这为计算机的广泛应用制造了条件。一些简洁的、大型的软件开发工程提出来了,但是,软件开发技术的进步始终未能满足进展的需要。在软件开发中遇到的问题找不到解决方法,使问题积存起来,形成了锐利的冲突,因而导致了软件危机。软件危机表现在以下四个方面:经费预算常常突破,完成时间一再拖延。由于缺乏软件开发的阅历和软件开发数据的积存,使得开发工作的打算很难制定。主观盲目制定打算,执行起来与实际状况有很大差距,使得开发经费一再突破。由于对工作量估量缺乏,对开发难度估量缺乏,进度打算无法按时完成,开发时间一再拖延。开发的软件不能满足用户要求。开发初期对用户的要求了解不够明确,未能得到明确的表达。开发工作开头后,软件人员和用户又未能准时交换意见,使得一些问题不能准时解决,导致开发的软件不能满足用户的要求,因而导致开发失败。技术资料 专业整理WORD完善格式开发的软件可维护性差。开发过程中没有同意的、公认的标准,软件开发人员按各自的风格工作,各行其是,开发过程无完整、标准的文档,觉察问题后进展杂乱无章的修改。程序构造不好,运行时觉察错误也很难修改,导致维护性差。开发的软件牢靠性差。由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。造成软件危机的缘由是:〔1〕软件的规模越来越大,构造越来越简洁。〔2〕软件开发治理困难而简洁。〔3〕软件开发费用不断增加。〔4〕软件开发技术落后。〔5〕生产方式落后。6〕开发工具落后,生产率提高缓慢。软件质量保证应做好哪几方面的工作?解:软件质量保证是软件工程治理的重要内容,软件质量保证应做好以下几方面的工作:承受技术手段和工具。质量保证活动要贯彻开发过程始终,必需承受技术手段和工具,尤其是使用软件开发环境来进展软件开发。组织正式技术评审。在软件开发的每一个阶段完毕时,都要组织正式的技术评审。国家标准要求单位必需承受审查、文档评审、设计评审、审计和测试等具体手段来保证质量。加强软件测试。软件测试是质量保证的重要手段,由于测试可觉察软件中大多数潜在错误。推行软件工程标准〔标准〕。用户可以自己制定软件工程标准〔标准〕,但标准一旦确认就应贯彻执行。对软件的变更进展把握。软件的修改和变更常常会引起埋伏的错误, 和变更。对软件质量进展度量。即对软件质量进展跟踪,准时记录和报告软件质量状况。[解析]软件的质量保证是向用户及社会供给满足的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,是软件工程治理中的重要软件工程是指什么?软件工程的性质是什么?软件工程是用科学学问和技术原理来定义、开发、维护软件的一门学科。软件工程是一门综合性的穿插性学科,它涉及计算机科学、工程学科、治理学科数学等领域。计算机科学中的争论成果均可用于软件工程,但计算机科学着重于原理和理论,而软件工程着重于如何建筑一个软件系统。

温馨提示

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

评论

0/150

提交评论