软件工程知识点答案_第1页
软件工程知识点答案_第2页
软件工程知识点答案_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、1计算机软件发展的3个时期及其特点时间特点程序设计程序系统软件工程软件所指程序程序及说明书程序,文档,数据主要程序设计语言汇编及机器语言咼级语言软件语言软件工作范围程序编写包括设计和测试软件生存期需求者程序设计本人少数用户市场用户开发软件的组织个人开发小组开发小组及大中型开发机构软件规模小型中小型大中小型决疋质量的因素个人程序技术小组技术水平管理水平开发子程序,程序库结构化程序设计数据库,开发工具, 开发环境。工程化开 发方法,标准和规范, 网络和分布式开发, 面向对象技术维护责任者程序设计者开发小组专职维护人员硬件特征价格高存储容量小工作可靠性差降价速度 容量及工 作可靠性有明显提高大容量模

2、型化及网络化方向发展软件特征完全不受重视软件技术的发展不能 满足需求,出现软件 危机开发技术有进步2软件工程的定义软件工程的定义:采用工程的概念、原理、技术和方法来计划、开发与维护软件,把经过 时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结 合起来,以较经济的手段获得能在实际机器上运行的可靠软件的一系列方法。软件工程=工程技术+管理技术+技术方法3软件开发方法的模型随意编程 面向过程面向对象 面向组件面向配置文件面向WebService4软件危机定义:是计算机软件在它的开发和维护过程中所遇到的一系列严重问题 5软件危机主要包含问题:如何开发软件,怎样满足对软件日益增长的需求;如何

3、维护数量不断膨胀的已有软件。6软件危机的原因:客观:软件本身特点(软件的规模庞大、复杂性高)主观:不正确的开发方法,软件开发和维护有许多错误的认识和作法。(忽视需求分析;软件开发 =程序编写;轻视软件维护)7软件危机的特征: 软件价格在整个项目投入中的比例不断升高软件开发成本严重超标软件开发周期大大超过规定日期软件质量难于保证软件修改,维护困难失败的根本原因在于: 开发人员写出的东西达不到用户要求(人的问题技术问题)&软件工程的原理:1. 用分阶段的生命周期计划严格管理不成功的软件项目中有一半左右是由于计划不周造成的。2. 坚持进行阶段评审软件的质量保证工作不能等到编码阶段结束之后再进

4、行。3. 实行严格的产品控制在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价。4. 采用现代程序设计技术采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。5. 结果应能清楚地审查根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得 所得到的结果能够清楚地审查。6. 开发小组的人员应该少而精7. 承认不断改进软件工程实践的必要性不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。9软件生命周期:软件定义,软件开发和运行维护10常用的软件生存周期模型 有瀑布模型,演化模型,螺旋模型,增量模型,喷泉模型,快速应用开发( RAD )模型。

5、11软件过程分类及各类内容:基本过程:生命周期原动力支持过程:辅助基本过程执行组织过程:建立控制和改进生命周期过程12.软件过程的构造:建立一个公共过程框架,其中定义了少量可用于所有软件项目的框架活动给出各个活动的任务集合,使得框架活动能够活动能够适合于项目的特点和项目组的需 求保护伞活动,如软件质量保证等,它们独立于任何一个框架活动并将贯穿于整个过程13软件工程包括三要素:方法、工具和过程。14软件工程过程的基本活动 软件规格说明:规定软件的功能及其运行的限制; 软件开发:产生满足规格说明的软件; 软件确认:确认软件能够完成客户提出的要求; 软件改进:为满足客户的变更要求,软件必须在使用的过

6、程中改进。15软件工程的原则:抽象与自顶向下、逐层细化采用分层抽象的方法,有效控制软件开发的复杂性。模块化把问题分解为若干较小的较易解决的模块,有助于信息隐蔽和抽象。信息隐蔽和数据封装将模块中的软件设计决策封装在模块内部,使得模块实现与使用分离,有助于控制修改局部化。抽象与自顶向下、逐层细化局部化在一个物理模块内集中逻辑上相互关联的计算机资源,促使聚合具有特定目的的事物。一致性整个软件系统的模块使用一致的设计策略、编程风格,保持程序内部接口的一致性、软件与硬件接口的一致性、系统规格说明与系统行为的一致性。完备性软件系统中不丢失任何成分。可验证性系统分解应当遵循易检查、易测试和易评审的原则,以保

7、证系统的正确性。16.需求的层次?业务需求;用户需求;功能需求和非功能需求;系统需求17信息系统需求获取的步骤?定义项目的视图和范围确定用户类确定目标系统的业务工作流运用需求获取技术开发反映主要业务规则的用例(或数据流图)并设置优先级。收集来自用户的质量特性信息和其他非功能需求分类在用例(或数据流图)中涉及的数据详细拟订用例(或数据流图)的规格说明开发并评估界面原型从功能描述中开发概念测试用例18功能性需求包括什么?1 .功能需求例举出开发软件在职能上应做什么,这是最主要的需求。2. 性能需求给出所开发软件的技术性能指标,包括存储容量限制、运行时间限制、安全保密性等。3. 环境需求软件系统运行

8、时多所处的环境要求。4. 可靠性需求各种软件在运行时,失败的影响各不相同,在需求分析时,应对所开发的软件在投入运行后不发生故障的概率,按实际的运行环境提出的要求。5. 安全保密要求把软件运行的安全需求恰当地做出规定,以便对所开发的软件给予特殊的设计,使其 在运行中其安全保密方面的性能得到必要的保证。6. 用户界面需求软件与用户界面的友好性是用户能够方便有效、愉快地使用该软件的关键之一。7 资源使用需求开发软件运行时所需的数据、软件、内存空间等各项资源。&软件成本消耗与开发进度需求软件项目立项后,要根据合同规定,对软件开发的进度和各项步骤的费用提出要求, 作为开发管理的依据。9.预先估计

9、系统可能达到的目标在开发过程中可对系统将来可能的扩充与修改做准备。佃非功能性需求包括什么?过程需求;产品需求;外部需求20如何将分析模型转换为设计?将数据流图转换为体系结构设计21软件设计的主要手段设计应遵循抽象化的原则,包含数据抽象和过程抽象。过程抽象是指在软件设计中将处理过程的实现细节隐藏在数据抽象中,可以直接通过模块接口使用这些处理操作。数据抽象 是指采用抽象数据类型表示数据,实现数据封装,使得使用者可通 过接口使用数据而不必关心数据结构的实现。设计应遵循自顶向下、逐步细化的原则,建立一个层次的结构。设计应当遵循模块化的原则设计应遵循信息隐蔽的原则22衡量功能独立性的两个准则?模块间的耦

10、合和模块的内聚23结构化设计方法的实施要点?首先研究、分析和审查数据流图根据数据流图确定数据处理的类型由数据流图推导出系统的初始结构图。利用一些启发式原则改进系统初始结构图,直到得到符合要求的结构图为止。 修改和补充数据字典。制定测试计划。24.结构图的主要成分?模块;模块的调用关系和接口;模块间的信息传递;重复调 用和选择调用的符号25结构图中的4种类型的模块?传人模块;传出模块;变换模块;协调模块26使用结构化方法进行软件系统设计的过程?复查并改造数据流图; 确定数据流图具有交换流特性还是事务流特性;导出初始的软件结构图;逐级分解;改进软件结构;导出接口描述和全局数据结构。27改进系统结构

11、的启发式原则?模块功能的完善化;消除重复功能,改善软件结构;模块的作用范围应在控制范 围之内;尽可能减少高扇出结构,随着控制层次深度的增大增加扇入;减少或者 避免使用病态连接;模块的大小是适中;设计功能可预测的模块,避免过分受限 的模块;软件包应满足设计的约束和可移植性28软件开发的4个阶段:状态捕获,问题定义,技术开发,方案综合29数据设计的原则? 为在需求分析阶段所确定的数据对象选择逻辑表示,需要对不同结构进行算法分析 确定对逻辑数据结构所必需的那些操作的程序模块(软件包),以便限制或确定各个数据设计决策的影响范围。30内聚类型?功能内聚;层内聚;通信内聚;顺序内聚;过程内聚;时间内聚;实

12、用程序内聚31举例说明如何实现程序的自顶向下?32程序设计的风格?源程序文档化 数据说明 语句结构 输入/输出方法33在语句结构中需要注意什么?(315)尽量只采用三种基本的控制结构来编写程序在一行内只写一条语句,并且采用适当的移行格式,使程序的逻辑和功能变得 更加明确。在一行内写多个语句,会使程序可读性变差,因而不可取程序编写首先应考虑清晰性,不要刻意追求技巧性,使程序编写得过于紧凑34什么是软件测试?目的是什么?从用户的角度出发,普边希望通过软件测试暴露软件中隐藏的错误和缺陷从软件开发者角度出发,希望测试称为表明软件产品中不存在错误的过程35软件测试的原则?软件测试原则:1. 应当把“今早

13、的和不断的进行软件测试”作为软件开发者的座右铭2测试用例应由测试输入数据,执行条件对应的预期输出结果组成3. 程序员应当避免检查自己的程序4. 再设计测试软件时,应当包括合理的输入条件和不合理的输入条件5. 充分注意测试中的集群现象6. 严格执行测试计划,排除测试的随意性7. 应对每一个测试结果做全面检查8. 妥善保存测试计、测试用例、出错统计和最终分析报告。为维护提供方便。36软件测试与程序设计之间的区别?软件测试并不等于程序测试软件测试贯穿于软件定义与开发的整个期间程序测试只涉及到编码阶段37基本路径测试的步骤?1. 基本流经测试方法把覆盖的路径压缩到一定程度内,程序中的循环体最多执行 的

14、依次2. 在程序控制流图上的基础上,分析控制构造的环路复杂性,导出基本可执行 路径集合;针对每条路径设计测试用例3. 设计出的测试用例需保证在测试中,程序的每一个可执行语句至少要执行一 次38划分等价类的原则?1如果输入条件规定了取值范围,或者值的个数。则可以确立一个有效等价类和 两个无效等价类2. 如果输入条件规定了输入值的集合,或者是规定了必须如何的条件,这时可 确立一个有效的等价类和一个无效的等价类3. 如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类4. 如果规定了输入数据的一组值,而且程序要对每个输入值进行分别处理,这 时可为每一个输入的值确立一个有效的等价类,此外

15、针对这组值确立一个无效的 等价类,他们是所有不允许的输入值的集合。5. 如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则) 和若干个无效等价类(从不同角度违反规则)。6. 如果我们却只,已划分的等价类中各元素在程序中的处理方式不同,则应该 将此等价类进一步划分成更小的等价类。39如何选择边界测试用例的原则?1)整数边界:1大小范围边界2.极限边界3.位边界2)字符串边界:1前后边界2长度边界3结束边界4取值范围边界5相似边界 6数值边界7显示边界40因果图的适用范围?1如果在测试时必须考虑输入条件的各种组合,可以使用一种适合于描述对于多 种条件的组合,相应的产生多个动作的形

16、式来设计测试用例, 这就需要利用因果 图2. 适合于检查程序输入条件的各种组合的情况41使用各种测试方法的综合策略?任何情况下,必须使用边界值分析法2必要时用等价划分法补充一些测试用例3用错误推测法再追切一些测试用例4对照程序逻辑,检查已有的测试用例的逻辑覆盖程度,若达到标准,应在补 充足够的测试用例5. 若程序的功能说明中含有输入条件的组合情况,则一开始就可以选用因果图42接口测试中包含的错误类型有哪些?以及接口测试的准则?类型:参数接口、共享内存接口、程序接口、消息传递接口错误类型:接口勿用、接口误解、计时错误准则:1)为传递给其他构件的参数选择紧靠取值范围边界得值2)当有指针通过接口传递

17、时,可用空指针参数来测试3)设计一些容易引起构件执行失效的假设进行测试4)在有消息传递的系统中进行强度测试,即就加大消息传递的量,增加系统的 负荷5)当构件之间通过空想内存交互时,可以设计一种测试,改变正常的激活构件 的顺序43软件过程的构造是什么?1)建立一个公共过程框架,定义少量可用于所有软件项目的框架活动2)给出各个框架活动的集合,便得框架活动能够是用于项目的特点项目组的需 求3)最后是保护伞活动,独立于任何一个框架活动冰贯穿于整个过程44软件过程的三大类包含什么内容?基本过程,支持过程,组织过程基本过程是生命周期中的原动力;支持过程辅助基本过程的执行;组织过程用于 建立控制和改进生命周

18、期的过城基本过程:获取、供应、开发、运行、维护支持过程:文档编制。配置管理、质量保证、验证、确认、联合评审、审计、问 题解决组织过程:管理、基础设施、改进、培训45软件过程评估标准的结构是什么?标准具有两维结构:过程维和能力维46软件过程的成熟度定义?指一个软件过程被明确定义,管理,度量和控制的有效程度,成熟度越高说明软 件过程能力改善的潜力越大47CMM成熟度模型?他是指对过程计划或者定义水平,过程实施水平,过程管理和控制水平, 过程改善潜力等指标的综合评价48软件成熟程度分为5级?初始级、可重复级、可定义级、可尝试级、优化级。49软件成熟度高低用什么衡量?高:项目开发可依据企业早已明确的过

19、程准则来实现 开发结果较少依靠个人能力和自然因素 项目有过程控制并可对整个生产做出预测 产品质量得到有效监测历史经验得以积累并可系统的用于现行行业未来的项目之中低:没有明确的软件郭晓恒体系可以依据无法对生产进行预测不严格执行生产过程 质量无法保证 无健全过程控制级质量控制体系 项目开发没有准则可以依据 开发结果主要依靠项目及个人的带有主观因素的能力发挥50CMM如何定义关键过程域?CMM定义关键过程域为一个互相关联的若干软件时间活动和有关基础设施的联 合51关键实践的5个特征?执行约定(实施的保证),执行能力(实施kpa的前提条件),执行活动(执行kpa所需要的 角色和步骤),测量和分析,验证

20、实施。52CMM的内部结构?成熟度等级53什么是CMMI ?SEI把各种模型进行了整合,用一个单一的过程框架,包括了各个不同的方面形成 CMM1, 即能力或者成熟度模型的形成54CMMI模型系列?1)CMMI -SW (软件能力成熟度模型集成)2)CMMI - SE/SW(系统工程和软件工程能力成熟度模型集成)3)CMMI -SE/SW/IPP(系统工程 软件工程 集成化产品和过程开发能力成熟 度模型集成)4)CMMI SE/SW/IPPD/SS系统工程 软件工程 集成化产品和过程开发,供 应商管理宁溧成熟度模型集成)55软件质量的定义?软件质量的定义:与软件产品满足规定的和隐含的需求的能力有

21、关的途径或特征的全体。56有关软件质量的术语?软件质量管理、质量方针、质量目标、质量策划、质量控制、质量保证57McCall质量模型?58软件产品质量通过测量什么来判定?内部质量特征、外部质量特征、使用质量特征59可依赖性层次?可依赖性,可靠性,安全防护性60提高软件质量的方法?原型划法敏捷开发61软件原型支持需求工程的两项工程?其他用途?主要分类?需求获取,需求有效性验证其他用途:用户培训,系统测试主要分类:进化式原型开发,抛弃式原型开发62软件质量保证过程包括哪4个方面?过程实施,产品质量保证,过程质量保证,质量保证体系的质量保证63微软提出的软件质量保证检查表?1你识别出对你的项目很重要

22、的质量特征了吗?2你让其他人都知道项目的目标了吗3你对外部质量特征和内部质量特征做了区分了吗?4有没有想过哪些特征是冲突的,哪些是互补的?5你的项目有没有采用几种不同的缺陷发现技术分析不同类型的错误?6你的项目计划中有没有包括在软件开发不同阶段进行质量保证的步骤?7质量有没有测量,以便于了解什么地方质量提高了,什么地方质量下降了?8管理层是否了解质量保证在(开发)前期增加成本,而在后期节省成本?64外部质量特性与内部质量特性?夕卜:正确性、可靠性、有效性、可用性、完整性、适用性、精确性、健壮性。 内:可维护性、灵活性、可移植性、可复用性、可读性、可测试性、可理解性。65质量保证活动的实施步骤?

23、1. Target:以用户要求和开发方针为依据,对质量需求准则,质量设计准则的个质量特 征设定质量目标2. Plan:设定适合于被开发软件的评测检查醒目(质量评价准则),研讨实现质量目标的方法或这手段。3. D0 :之作高质量的规格说明和顺序,在接收质量检查前先做自我检查4. Check:以plan阶段设定的质量评价标准进行评价,计算结果用质量图的形式表示出来,比较评价结果的质量得分和质量目标看其是否合格5. Action :对评价发现的问题进行改进活动,如果实现并达到了质量目标,就转入下一 个工程阶段,这样重复“ plan”到“ Action ”的过程,直到整个开发项目完成。66程序复杂性度

24、量的参数主要有什么?规格:程序指令条数或源程序行数难度:与程序操作数和操作符有关的度量结构:与程序分支数有关的度量智能度:算法的难易程67源代码行数度量法基于的两个前提是什么?1程序复杂性随着程序规模的增加不均匀增大2控制程序规模的方法最好是采用分儿治之的办法,将一个大程序分解为若干个简单的可理解的程序段68方法的基本考虑是统计一个程序模快的源代码行数目并以源代码行数作为程序复杂性的度量69McCabe度量法的定义?又称环路复杂性度量,是一种基于程序控制法的复杂性度量方法, 它基于一个程 序模块的程序图环路的个数,因此计算他先画程序图计算环路复杂性的方法:V (G) =m-n+2( m是图G中的弧数,即箭头数,n 是图G的结点数)70计算环路复杂性的方法:V( G) =m-n+2计算环路复杂性的方法:V (G)=m-n+2( m是图G中的弧数,即箭头数,n是 图G的结点数)71McCabe环路复杂度隐含的前提是什么?错误与程序的判定加上例行子程序的调用数目成正比72程序长度的定义?n1表示程序中不同运算符的个数,n2表

温馨提示

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

评论

0/150

提交评论