您好,欢迎访问三七文档
⒈计算机软件发展的3个时期及其特点时间特点程序设计程序系统软件工程软件所指程序程序及说明书程序,文档,数据主要程序设计语言汇编及机器语言高级语言软件语言软件工作范围程序编写包括设计和测试软件生存期需求者程序设计本人少数用户市场用户开发软件的组织个人开发小组开发小组及大中型开发机构软件规模小型中小型大中小型决定质量的因素个人程序技术小组技术水平管理水平开发子程序,程序库结构化程序设计数据库,开发工具,开发环境。工程化开发方法,标准和规范,网络和分布式开发,面向对象技术维护责任者程序设计者开发小组专职维护人员硬件特征价格高存储容量小工作可靠性差降价速度容量及工作可靠性有明显提高大容量模型化及网络化方向发展软件特征完全不受重视软件技术的发展不能满足需求,出现软件危机开发技术有进步2.软件工程的定义软件工程的定义:采用工程的概念、原理、技术和方法来计划、开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以较经济的手段获得能在实际机器上运行的可靠软件的一系列方法。软件工程=工程技术+管理技术+技术方法3.软件开发方法的模型随意编程面向过程面向对象面向组件面向配置文件面向WebService4.软件危机定义:是计算机软件在它的开发和维护过程中所遇到的一系列严重问题5.软件危机主要包含问题:⑴如何开发软件,怎样满足对软件日益增长的需求;⑵如何维护数量不断膨胀的已有软件。6.软件危机的原因:⑴客观:软件本身特点(软件的规模庞大、复杂性高)⑵主观:不正确的开发方法,软件开发和维护有许多错误的认识和作法。(忽视需求分析;软件开发=程序编写;轻视软件维护)7.软件危机的特征:软件价格在整个项目投入中的比例不断升高软件开发成本严重超标软件开发周期大大超过规定日期软件质量难于保证软件修改,维护困难失败的根本原因在于:开发人员写出的东西达不到用户要求(人的问题技术问题)8.软件工程的原理:⒈用分阶段的生命周期计划严格管理不成功的软件项目中有一半左右是由于计划不周造成的。⒉坚持进行阶段评审软件的质量保证工作不能等到编码阶段结束之后再进行。⒊实行严格的产品控制在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价。⒋采用现代程序设计技术采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。⒌结果应能清楚地审查根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。⒍开发小组的人员应该少而精⒎承认不断改进软件工程实践的必要性不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。9.软件生命周期:软件定义,软件开发和运行维护10.常用的软件生存周期模型有瀑布模型,演化模型,螺旋模型,增量模型,喷泉模型,快速应用开发(RAD)模型。11.软件过程分类及各类内容:基本过程:生命周期原动力支持过程:辅助基本过程执行组织过程:建立控制和改进生命周期过程12.软件过程的构造:建立一个公共过程框架,其中定义了少量可用于所有软件项目的框架活动给出各个活动的任务集合,使得框架活动能够活动能够适合于项目的特点和项目组的需求保护伞活动,如软件质量保证等,它们独立于任何一个框架活动并将贯穿于整个过程13.软件工程包括三要素:方法、工具和过程。14.软件工程过程的基本活动⑴软件规格说明:规定软件的功能及其运行的限制;⑵软件开发:产生满足规格说明的软件;⑶软件确认:确认软件能够完成客户提出的要求;⑷软件改进:为满足客户的变更要求,软件必须在使用的过程中改进。15软件工程的原则:抽象与自顶向下、逐层细化采用分层抽象的方法,有效控制软件开发的复杂性。模块化把问题分解为若干较小的较易解决的模块,有助于信息隐蔽和抽象。信息隐蔽和数据封装将模块中的软件设计决策封装在模块内部,使得模块实现与使用分离,有助于控制修改局部化。抽象与自顶向下、逐层细化局部化在一个物理模块内集中逻辑上相互关联的计算机资源,促使聚合具有特定目的的事物。一致性整个软件系统的模块使用一致的设计策略、编程风格,保持程序内部接口的一致性、软件与硬件接口的一致性、系统规格说明与系统行为的一致性。完备性软件系统中不丢失任何成分。可验证性系统分解应当遵循易检查、易测试和易评审的原则,以保证系统的正确性。16.需求的层次?业务需求;用户需求;功能需求和非功能需求;系统需求17.信息系统需求获取的步骤?定义项目的视图和范围确定用户类确定目标系统的业务工作流运用需求获取技术开发反映主要业务规则的用例(或数据流图)并设置优先级。收集来自用户的质量特性信息和其他非功能需求分类在用例(或数据流图)中涉及的数据详细拟订用例(或数据流图)的规格说明开发并评估界面原型从功能描述中开发概念测试用例18.功能性需求包括什么?1.功能需求例举出开发软件在职能上应做什么,这是最主要的需求。2.性能需求给出所开发软件的技术性能指标,包括存储容量限制、运行时间限制、安全保密性等。3.环境需求软件系统运行时多所处的环境要求。4.可靠性需求各种软件在运行时,失败的影响各不相同,在需求分析时,应对所开发的软件在投入运行后不发生故障的概率,按实际的运行环境提出的要求。5.安全保密要求把软件运行的安全需求恰当地做出规定,以便对所开发的软件给予特殊的设计,使其在运行中其安全保密方面的性能得到必要的保证。6.用户界面需求软件与用户界面的友好性是用户能够方便有效、愉快地使用该软件的关键之一。7.资源使用需求开发软件运行时所需的数据、软件、内存空间等各项资源。8.软件成本消耗与开发进度需求软件项目立项后,要根据合同规定,对软件开发的进度和各项步骤的费用提出要求,作为开发管理的依据。9.预先估计系统可能达到的目标在开发过程中可对系统将来可能的扩充与修改做准备。19.非功能性需求包括什么?过程需求;产品需求;外部需求20.如何将分析模型转换为设计?将数据流图转换为体系结构设计21.软件设计的主要手段设计应遵循抽象化的原则,包含数据抽象和过程抽象。过程抽象是指在软件设计中将处理过程的实现细节隐藏在数据抽象中,可以直接通过模块接口使用这些处理操作。数据抽象是指采用抽象数据类型表示数据,实现数据封装,使得使用者可通过接口使用数据而不必关心数据结构的实现。设计应遵循自顶向下、逐步细化的原则,建立一个层次的结构。设计应当遵循模块化的原则设计应遵循信息隐蔽的原则22.衡量功能独立性的两个准则?模块间的耦合和模块的内聚23.结构化设计方法的实施要点?首先研究、分析和审查数据流图根据数据流图确定数据处理的类型由数据流图推导出系统的初始结构图。利用一些启发式原则改进系统初始结构图,直到得到符合要求的结构图为止。修改和补充数据字典。制定测试计划。24.结构图的主要成分?模块;模块的调用关系和接口;模块间的信息传递;重复调用和选择调用的符号25.结构图中的4种类型的模块?传人模块;传出模块;变换模块;协调模块26.使用结构化方法进行软件系统设计的过程?复查并改造数据流图;确定数据流图具有交换流特性还是事务流特性;导出初始的软件结构图;逐级分解;改进软件结构;导出接口描述和全局数据结构。27.改进系统结构的启发式原则?模块功能的完善化;消除重复功能,改善软件结构;模块的作用范围应在控制范围之内;尽可能减少高扇出结构,随着控制层次深度的增大增加扇入;减少或者避免使用病态连接;模块的大小是适中;设计功能可预测的模块,避免过分受限的模块;软件包应满足设计的约束和可移植性28软件开发的4个阶段:状态捕获,问题定义,技术开发,方案综合29数据设计的原则?①为在需求分析阶段所确定的数据对象选择逻辑表示,需要对不同结构进行算法分析②确定对逻辑数据结构所必需的那些操作的程序模块(软件包),以便限制或确定各个数据设计决策的影响范围。30内聚类型?功能内聚;层内聚;通信内聚;顺序内聚;过程内聚;时间内聚;实用程序内聚31举例说明如何实现程序的自顶向下?32程序设计的风格?源程序文档化数据说明语句结构输入/输出方法33在语句结构中需要注意什么?(315)⑴尽量只采用三种基本的控制结构来编写程序⑵在一行内只写一条语句,并且采用适当的移行格式,使程序的逻辑和功能变得更加明确。在一行内写多个语句,会使程序可读性变差,因而不可取⑶程序编写首先应考虑清晰性,不要刻意追求技巧性,使程序编写得过于紧凑34什么是软件测试?目的是什么?从用户的角度出发,普边希望通过软件测试暴露软件中隐藏的错误和缺陷从软件开发者角度出发,希望测试称为表明软件产品中不存在错误的过程35软件测试的原则?软件测试原则:1.应当把“今早的和不断的进行软件测试”作为软件开发者的座右铭2.测试用例应由测试输入数据,执行条件对应的预期输出结果组成3.程序员应当避免检查自己的程序4.再设计测试软件时,应当包括合理的输入条件和不合理的输入条件5.充分注意测试中的集群现象6.严格执行测试计划,排除测试的随意性7.应对每一个测试结果做全面检查8.妥善保存测试计、测试用例、出错统计和最终分析报告。为维护提供方便。36软件测试与程序设计之间的区别?软件测试并不等于程序测试软件测试贯穿于软件定义与开发的整个期间程序测试只涉及到编码阶段37基本路径测试的步骤?1.基本流经测试方法把覆盖的路径压缩到一定程度内,程序中的循环体最多执行的依次2.在程序控制流图上的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合;针对每条路径设计测试用例3.设计出的测试用例需保证在测试中,程序的每一个可执行语句至少要执行一次38划分等价类的原则?1.如果输入条件规定了取值范围,或者值的个数。则可以确立一个有效等价类和两个无效等价类2.如果输入条件规定了输入值的集合,或者是规定了必须如何的条件,这时可确立一个有效的等价类和一个无效的等价类3.如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类4.如果规定了输入数据的一组值,而且程序要对每个输入值进行分别处理,这时可为每一个输入的值确立一个有效的等价类,此外针对这组值确立一个无效的等价类,他们是所有不允许的输入值的集合。5.如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。6.如果我们却只,已划分的等价类中各元素在程序中的处理方式不同,则应该将此等价类进一步划分成更小的等价类。39如何选择边界测试用例的原则?1)整数边界:1大小范围边界2.极限边界3.位边界2)字符串边界:1前后边界2长度边界3结束边界4取值范围边界5相似边界6数值边界7显示边界40因果图的适用范围?1.如果在测试时必须考虑输入条件的各种组合,可以使用一种适合于描述对于多种条件的组合,相应的产生多个动作的形式来设计测试用例,这就需要利用因果图2.适合于检查程序输入条件的各种组合的情况41使用各种测试方法的综合策略?.任何情况下,必须使用边界值分析法2.必要时用等价划分法补充一些测试用例3.用错误推测法再追切一些测试用例4.对照程序逻辑,检查已有的测试用例的逻辑覆盖程度,若达到标准,应在补充足够的测试用例5.若程序的功能说明中含有输入条件的组合情况,则一开始就可以选用因果图法。42接口测试中包含的错误类型有哪些?以及接口测试的准则?类型:参数接口、共享内存接口、程序接口、消息传递接口错误类型:接口勿用、接口误解、计时错误准则:1)为传递给其他构件的参数选择紧靠取值范围边界得值2)当有指针通过接口传递时,可用空指针参数来测试3)设计一些容易引起构件执行失效的假设进行测试4)在有消息传递的系统中进行强度测试,即就加大消息传递的量,增加系统的负荷5)当构件之间通过空想内存交互时,可以设计一种测试,改变正常的激活构件的顺序43软件过程的构造是什么?1)建立一个公共过程框架,定义少量可用于所有软件项目的框架活动2)给出各个框架活动的集合,便得框架活动能够是用于项目的特点项目组的需求3)最后是保护伞活动,独立于任何一个框架活动冰贯穿于整个过程44软件过程的三大类包含什么内容?基本过程,支持过程,组织过程基本过
本文标题:软件工程知识点答案
链接地址:https://www.777doc.com/doc-5008127 .html