还剩13页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
全国2010年10月
四、简答题
1.简述软件危机产生的原因答案软件危机产生的原因有(每点分)1⑴软件的规模越来越大,结构越来越复杂⑵软件开发的管理困难由于软件规模大,结构复杂,又具有无形性,导致管理困难,进度控制困难,质量控制困难,可靠性无法保证⑶软件开发费用不断增加软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多,周期长,费用上升很快⑷软件开发技术、开发工具落后,生产率提高缓慢⑸生产方式落后软件仍然采用个体手工方式开发简述需求分析的概念及需求分析的根本任务2答案需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程(3分)需求分析的根本任务是要准确地定义新系统的目标,为了满足用户需要,答复系统必须“做什么〃的问题(2分)简述数据流图的分类及每一类的特点3答案数据流图有两类变换型数据流图和事务型数据流图(1分)变换型数据流图是由输入、处理和输出三局部组成,(1分)因此变化型数据流图是一个顺序结构(1分)事务型数据流图特征事务处理中心将它的输入流别离成许多发散的数据流,形成许多加工路径,(1分)并根据输入的值选择其中一个路径来执行(1分)
4.简述建立对象模型的过程答案建立对象模型的步骤如下(每点分)1⑴确定类标出来自问题域的相关对象类⑵准备数据字典为所有建模实体准备一个数据字典,准确描述各对象类的精确含义,描述当前问题中的类的范围,包括对类的成员、用法方面的假设或限制;⑶确定关联确定二个或多个类之间的相互依赖;⑷确定属性只考虑与具体应用直接相关的属性⑸使用继承来细化类使用继承来共享公共结构,以此来重新组织类—全国2010年1月简述软件工程面临的问题
1.答内容
①软件开发技术
②软件开发管理面临的主要问题
①软件费用
②软件可靠性
③软件维护
④软件生产率
⑤软件重用简述可行性研究报告包含的主要内容
2.技术可行性对要开发工程的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,工程是否能实现包括开发的风险;资源的有效性;技术;开发人员在评估技术可行性时,一旦估计错误,将会出现灾难性后果经济可行性包括本钱一一效果分析、公司经营长期策略、开发所需的本钱和资源、潜在的市场前景社会可行性包括合同、责任、侵权、用户组织的管理模式及标准,其他一些技术人员常常不了解的陷阱等简述软件结构设计的优化准则
3.软件工程开发的组织管理什么是软件工程它的目标和内容是什么?4答案软件工程是一种用科学知识和技术原理来定义、开发、维护软件的一门学科软件工程是一门工程性学科,目的是成功地建造一个大型软件系统,所谓成功是要到达以下几个目标付出较低的的开发本钱;到达要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高软件工程研究的主要内容是软件开发技术和软件开发管理两个方面在软件开发技术中,主要研究软件开发方法、软件开发过程、软件开发工具和环境在软件开发管理中,主要是研究软件管模拟4
三、名词解释题(本大题共小题,每题分,共分)5315,.信息隐蔽答案信息隐蔽指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其它模块来说,是不能访问的
2.原型答案原型是指模拟某种产品的原型模型软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特征
3.事件答案事件是指定时刻发生的某件事情它是某事情发生的信号,它没有持续时间,它是一种相对性的快速事件
4.模块答案模块在程序中是数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素,如高级语言中的过程、函数、子程序等等
5.多态性答案指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性模拟4
四、简答题(本大题共小题,每题分,共分)
45201.软件质量与软件质量保证的含义是什么?答案从实际应用来说,软件质量定义为⑴与所确定的功能和性能需求的一致性⑵与所成文的开发标准一致性⑶与所有专业开发的软件所期望的隐含特性的一致性软件的质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,即确定、到达和维护需要的软件质量而进行的所有有方案、有系统的管理活动采用黑盒技术设计测试用例有哪几种方法这些方法各有什么特点?2答案⑴等价类划分等价类划分是将输入数据域按有效的或无效的(也称合理的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其它值的测试⑵边界值分析该方法是将测试边界情况作为重点目标,选取正好等于、刚刚大于或刚刚小于边界值的测试数据⑶错误推测错误推测法没有确定的步骤,凭经验进行它的根本思想是列出程序中可能发生错误的情况,根据这些情况选择测试用例()因果图因果图能有效地检测输入条件的各种组合可能会引起的错误因果图的根本原理是通过画因果图,把4用自然语言描述的功能说明转换为判定表,最后为判定表的每一列设计一个测试用例
3.简述图的功能及缺乏Gantt答案图常用水平线段来描述把任务分解成子任务,以及每个子任务的进度安排,动态反映软件开发进度情况Gantt该图可以⑴表示任务分解成子任务情况⑵表示每个任务的开始时间和完成时间,线段的长度表示子任务完成所需要的时间⑶表示子任务之间的并行和串行关系图只能表示任务之间的并行与串行的关系,难以反映多个任务之间存在的复杂关系,不能直观表示任务之间相Gantt互依赖制约关系,以及哪些任务是关键子任务等信息,因此仅仅用图作为进度的安排是不够的Gantt
4.快速原型模型有几种各有何特点?答案根据原型的不同作用,有三类原型模型⑴探索型原型这种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性它主要针对开发目标模糊,用户与开发者对工程都缺乏经验的情况,通过对原型的开发来明确用户的需求⑵实验型原型这种原型主要用于设计阶段,考核实现方案是否适宜,能否实现对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性⑶演化型原型这种原型主要用于极早向用户提交一个原型系统,该原型系统或者包含系统的框或者包含系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统它将原型的思想扩展到软件开发的全过程模拟3
四、简答题本大题共小题,每题分,共分4520,详细设计的根本任务是什么?有哪几种描述方法?答案详细设计是软件设计的第二阶段,其根本任务有⑴为每个模块进行详细的算法设计⑵为模块内的数据结构进行设计⑶对数据库进行物理设计,即确定数据库的物理结构⑷其它设计根据软件系统类型,还可能要进行代码设计、输入/输出格式设计、人机对话设计⑸编写详细设计说明书评审6详细描述处理过程常用三种工具图形、表格和语言如结构化程序流程图、盒图和问题分析图图也是详细IPO设计的主要工具之一表格工具如判定表可作为详细设计中描述逻辑条件复杂的算法过程设计语言是一种用PDL于描述模块算法设计和处理细节的语言工具
5.什么是工具有哪些分类?CASECASE答案是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发从学术研究角度讲,CASE CASE是多年来在软件开发管理、软件开发方法、软件开发环境和软件工具等方面研究和开展的产物把软件开发技CASE术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸引了计算机辅助设计、软件工程、操CAD作系统、数据库、网络和许多其它计算机领域的原理和技术因而,领域是一个应用集成和综合的领域从CASE产、也角度讲,是种类繁多的软件开发和系统集成的产品及软件工具的集合CASE分类CASE技术种类1CASE系统所涉及到的技术有两类一类是支持软件开发过程本身的技术;另一类是支持软件开发过程管理的技术CASE从系统产生方式来看,还有一种特殊的技术,即元一一技术它是生成系统的生成器所采CASE CASE CASECASE用的技术该生成器可用来创立支持软件开发过程活动及过程管理的系统CASE⑵CASE工具的分类对工具分类的标准可分为CASE
①功能功能是对软件进行分类的最常用的标准
②支持的过程根据支持的过程,工具可分为设计工具、编程工具、维护工具等
③支持的范围根据支持的范围,可分为窄支持、较宽支持和一般支持工具窄支持指支持过程中特定的任务,较宽支持是指支持特定过程阶段;一般支持是指支持覆盖软件过程的全部阶段或大多数阶段年,根据系统对软件过程的支持范围,提出系统可分为三类1993Fuggetta CASECASE
①支持单个过程任务的工具工具可能是通用的,或者也可能归组到工作台
②工作台支持某一过程所有活动或某些活动它们一般以或多或少的集成度组成工具集
③环境支持软件过程所有活动或至少大局部它们一般包括几个不同的工作台,将这些工作台以某种方式集成起来说明容错软件的定义与容错的一般方法3答案归纳容错软件的定义,有以下四种在一定程度上对自身错误的作用软件错误具有屏蔽能力,则称此软件⑴规定功能的软件,为具有容错功能的在一定程序上能从错误状态自动恢复到正常状态,则称之为容错软件软件,即容错软件在因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为容错软件在⑵规定功能的软件,一定程度上具有容错能力,则称之为容错软件⑶规定功能的软件,实现容错技术的主要手段是冗余通常冗余技术分为四类⑷规定功能的软件,⑴结构冗余结构冗余是通常用的冗余技术按其工作方式,它分为静态、动态和混合冗余三种信息冗余为检查或纠正信息在运算或传输中的错误须外加一局部信息,这种现象称为信息冗余2⑶时间冗余是指以重复执行指令指令复执或程序程序复算来消除瞬时错误带来的影响⑷冗余附加技术是指为实现上述冗余技术所需的资源和技术包括程序、指令、数据、存放和调动它们的空间和通道等
4.开放式工作台有什么优点?答案易将某个工具参加到开放式工作台中,还可以用新的工具取代已有的工具1可以由一个配置管理系统来管理由工具输出的文件2⑶能不断增强工作台的功能,不断开展工作台工作台不依赖于某个供给商,而能从不同销售商处购置工具如果一个工具开发商不提供支持了,最多只影响该4工作台的一局部工具,其余的工具还可以继续使用模拟2
四、简答题本大题共小题,每题分,共分
45201.非渐增式测试与渐增式测试有什么区别渐增式测试如何组装模块?答案渐增方式与非渐增方式测试的方法有以下区别⑴非渐增式方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试而渐增式测试往往把单元测试与集成测试合在一起,同时完成⑵非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少⑶渐增式可以较早地发现接口之间的错误,非渐增式最后组装时才发现⑷渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一局部接口出错渐增式比较彻底,已测试的模块和新的模块再测试5⑹渐增式占用的时间较多,但非渐增式需更多的驱动模块、桩模块也占用一些时间⑺非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义渐增式测试有以下两种不同的组装模块的方法自顶向下组合该方法只需编写桩模块,其步骤是从顶层模块开始,沿被测程序的软件结构图的控制路径逐步向1下测试,从而把各个模块都结合进来,它又有两种组合策略
①深度优先策略先从软件结构中选择一条主控制路径,把该路径上的模块一个个结合进来进行测试,以便完成一个特定的子功能,接着再结合其它需要优先考虑的路径
②宽度优先策略逐层结合直接下属的所有模块⑵自底向上结合该方法仅需编写驱动模块其步骤为
①把低层模块组合成实现一个个特定子功能的族
②为每一个族编写一个驱动模块,以协调测试用例的输入和测试结果的输出
③对模块族进行测试
④按软件结构图依次向上扩展,用实际模块替换驱动模块,形成一个个更大的族
⑤重覆
②至
④步,直至软件系统全部测试完毕什么是软件危机其产生的原因是什么?2答案当软件开发技术的进步不能跟上硬件技术的进步,未能满足开展的要求,致软件开发中遇到的问题找不到解决的方法,使问题积累起来,形成了锋利的矛盾,因而导致了软件危机主要表现为⑴经费预算经常突破,完成时间一再拖延;⑵开发的软件不能满足用户要求;⑶开发的软件可维护性差;⑷开发的软件可靠性差造成软件危机的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的其产生原因主要有以下几方面⑴软件的规模越来越大,结构越来越复杂;⑵软件开发管理困难而复杂;软件开发费用不断增加;3⑷软件开发技术落后;⑸生产方式落后;⑹开发工具落后,生产率提高缓慢
3.简述方法的优缺点?SA答案结构化分析方法是软件需求分析中公认的、有成效的、技术成熟、使用广泛的一种方法,它较适合于开发数据处理类型软件的需求分析该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,为后一阶段的设计、测试、评价提供了有利的条件但方法也存在有缺乏之处SA⑴传统的方法主要用于数据处理方面的问题,主要工具表达了系统“做什么〃的功能,但它仅是一个静态模SA DFD型,没有反映处理的顺序,即控制流程因此,不适合描述实时控制系统⑵SA方法使用DFD在分析与描述“数据要求〃方面是有限的,DFD应与数据库技术中的实体联系图ER图结合起来不适合描述人机界面系统的需求方法则对这一局部用自然语言作补充,对这类系统可采取其他的分析方3DFD SA法为了更精确地描述软件需求,提高软件系统的可靠性、平安性,也便于实现自动化,方法可与形式化方法结合4SA起来
4.软件设计的根本原理包括哪些内容?答案模块化指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能模块化是软件解决复杂问题所具备的手段抽象抽象是认识复杂现象过程中使用的思维工具即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其它因素软件工程过程中的每一步都可以看作是对软件解决方法的抽象层次的一次细化信息隐蔽信息隐蔽指在设计和确定模块时,使得一个模块内包含的信息过程或数据,对于不需要这些信息的其它模块来说,是不能访问的通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制模块独立性模块独立性指每个模块只完成系统要求的独立的子功能,并且与其它模块的联系最少且接口简单模拟1
四、简答题本大题共小题,每题分,共分
45201.可行性研究的任务是什么?答案首先需要进行概要的分析研究,初步确定工程的规模和目标,确定工程的约束和限制,把它们清楚地列举出来然后,分析员进行简要的需求分析,抽象出该工程的逻辑结构,建立逻辑模型从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决方法,对每种解决方法都要研究它的可行性可从以下三个方面分析研究每种解决方法可行性技术可行性对要开发工程的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,工1程是否能实现⑵经济可行性进行开发本钱的估算以及了解取得效益的评估,确定要开发的工程是否值得投资开发⑶社会可行性要开发的工程是否存在任何侵犯、阻碍等责任问题,要开发工程的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行
2.软件工程标准化的意义是什么?都有哪些软件工程标准?答案积极推进软件工程标准化,其道理是显而易见的仅就一个软件开发工程来说,有许多层次、不同分工的人员相互配合,在开发工程的各个局部以及各开发阶段之间也都存在许多联系和衔接问题如何把这些错综复杂的关系协调好,需要有一系列统一的约束和规定在软件开发工程取得阶段成果或最后完成时,需要进行阶段评审和验收测试投入运行的软件,其维护工作中遇到问题又与开发工作者有着密切的关系软件的管理工作则渗透到软件生存期的每一个环节所有这些都要求提供统一的行动标准和衡量准则,使得各种工作都有章可循软件工程的标准主要有以下三个是美国国家标准局发布的《软件文档管理指南》DFIPS135⑵NSAC——39是美国核子平安分析中心发布的《平安参数显示系统的验证与确认》是国际标准化组织公布现已成为中国的国家标准的《信息处理一数据流程图、程序流程图、程序网33ISO5807络图和系统资源图的文件编制符号及约定》什么是根本加工描述表达根本加工逻辑功能的结构化工具的特点?3答案数据流图中所有不进一步分解的加工,称为根本加工描述表达根本加工逻辑功能的结构化工具主要有⑴自然语言的文字叙述⑵结构化语言⑶决策树⑷决策表⑸数学公式上述各工具的联合使用6其特点如下所述自然语言语义丰富,语法灵活,可描述十分广泛而复杂的问题,表达人们丰富的感情和智慧1⑵结构化语言没有严格的语法规定,使用的词汇比形式化的计算机语言广泛,但使用的语句类型很少,结构标准,表达的内容清晰、准确、易理解,不易产生歧义⑶决策树清晰地表达了在什么情况下应采取什么策略,不易产生逻辑上的混乱是描述根本加工的逻辑功能的有效工具⑷决策表将比较复杂的决策问题简洁、明确、一目了然地描述出来它是描述条件比较多的决策问题的有效工具4,增量模型的根本思想是什么?答案为了克服瀑布模型的局限性,使开发过程具有一定的灵活性和可修改性,于是产生了增量模型它是在瀑布模型的基础上加以修改而形成的增量模型和瀑布模型之间的本质区别是瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节而增量模型属于非整体开发模型,它推迟某些阶段或所有阶段中的细节,从而较早的产生工作软件增量模型是在工程的开发过程中以一系列的增量方式开发系统增量方式包括增量开发和增量提交增量开发是指在工程开发周期内,以一定的时间间隔开发局部工作软件;增量提交是指在工程开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档增量开发和增量提交可以同时使用,也可单独使用答
(1)模块独立性准则,即尽量高内聚,低耦合,保持模块相对的独立性,并以此原则优化软件结构;
(2)控制范围与作用范围之间的准则,一个模块的作用范围应在其控制范围之内,且条件判断所在的模块应与受其影响的模块在层次上尽量靠近;
(3)软件结构的形态特征准则,软件结构的深度、宽度扇入、扇出应适当;
(4)模块的大小准则,模块的大小最好控制在条语句左右,以便于阅读研究;()模块的接口准则,模块的接口要简单清50~1505晰及含义明确,以便于理解、实现、测试和维护简述快速原型的开发步骤
4.答快速原型开发步骤可划分以下阶段()快速分析迅速确定根本需求、集中力量确定需求说明1
(2)快速构造原型在快速分析基础上,在强有力的软件工具支持下,快速构造所需原型
(3)运行原型在开发者指导下,用户参与原型的运行,各类人员在共同运行原型中进一步加深对系统的了解及相互间的理解,以发现各种问题
(4)评价原型;在运行基础上,根据原型目标,考核原型的特性,分析原型效果是否满足用户需求,提出修改意见
(5)修改原型在评价基础上进行修改若不满足需求说明,则根据明确的需求修改原型若不满足用户需求,则先修改并明确用户需求,再重新构造原型年月
2008101.软件生存周期可以分为几个阶段,每个阶段的提交物是什么?答案
(1)可行性研究和工程开发方案,提交工程开发方案和可行性分析报告;⑵需求分析,提交软件需求说明书;⑶概要设计,提交概要设计说明书;⑷详细设计,提交详细设计说明书;⑸编码,提交源程序清单;()测试,提交测试报告;6⑺维护,提交维护报告(1点1分,答对5点以上可得总分)结构化分析的描述工具有哪些?简述结构化分析的步骤2答案结构化分析的描述工具有
(1)数据流图,
(2)数据字典,
(3)描述加工逻辑的结构化语言、判定表、判定树(1分)
(1)了解当前系统的工作流程,获取当前系统的物理模型;(1分)
(2)抽象出当前系统的逻辑模型;(1分)
(3)建立目标系统的逻辑模型;(1分)
(4)作进一步补充和优化(1分)什么是黑盒测试法?常用的黑盒测试方法有哪些?3答案黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程(1分)黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性黑盒测试又称为功能测试(2分)常用的黑盒测试方法有等价类划分、边界值分析、错误推测、因果图(2分,每答对两个1分)
4.简述面向对象的特征答案
(1)对象唯一性每个对象都有自身唯一的标识,通过这种标识,可以找到相应的对象(1分)
(2)分类性分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类0(1分)
(3)继承性继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系(1分)()多态性多态性是指相同的操作或函数、过程作用于多种类型的对象上并获得不同的结果不同的对象收到4同一消息可以产生不同的结果(2分)年月200710L简述软件工程过程的含义、目的以及包含的子过程答案软件工程过程规定了获取、供给、开发、操作和维护软件时,要实施的过程、活动和任务(1分)其目的是为各种人员提供一个公共的框架,以便用相同的语言进行交流(1分)软件工程过程包含七个子过程(分)3()获取过程;1
(2)供给过程;()开发过程;3()操作过程;4()维护过程;5()管理过程;6()支持过程7数据字典的作用是什么,它有哪些条目?2答案数据字典是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式,为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成局部(3分)[JP3]数据字典包含以下几个条目数据流条目、数据存储条目、数据项条目、加工条目(2分)简述结构化程序设计方法的根本要点3答案
(1)采用自顶向下、逐步求精的程序设计方法在需求分析、概要设计中,都采用了自顶向下、逐层细化的方法(1分)
(2)使用三种根本控制结构构造程序,分别是顺序、选择和循环,这三种根本结构的共同点是单入口、单出口,为自顶向下、逐步求精的设计方法提供了具体的实施手段(2分)()采用主程序员组的组织形式指开发程序的人员组织方式应用由一个主程序员、一个后备程序员和一个程序3管理员三人为核心,再加上一些专家、其他技术人员组成小组(2分)
4.简述原型的开发步骤答案
(1)快速分析在分析人员与用户紧密配合下,迅速确定系统的根本需求,根据原型所要表达的特征描述根本需求以满足开发原型的需要;(1分)
(2)构造原型在快速分析的基础上,根据根本需求说明尽快实现一个可运行的系统;(1分)
(3)运行原型这是发现问题、消除误解、开发者与用户充分协调的一个步骤;(1分)
(4)评价原型在运行的基础上,考核评价原型的特性,分析运行效果是否满足用户的愿望,纠正过去交互中的误解与分析中的错误,增添新的要求;(1分)
(5)修改根据评价原型的活动结果进行修改(1分)年月
2006101.增量构造模型有什么特点?答案增量构造模型是局部阶段进行增量开发,即在该模型中,需求分析阶段和设计阶段与瀑布模型一样,按照瀑布模型方式进行开发,(1分)而编码和测试阶段不采用瀑布模型方式,而采用增量方式开发,(1分)即先对局部功能进行编码,进行测试,将这局部功能提交用户,然后再对另一局部功能进行编码,测试提交用户,直到把全部功能按这种方式开发完毕,(分)1在这种模型中,用户可以及早看到局部软件功能,及早发现问题,以便在其它软件功能开发时及时解决(2分)软件测试要经过哪些步骤?简述这些测试的根本任务2答案
(1)单元测试、集成测试、确认测试、系统测试(1分)()单元测试对源程序中的每个程序单元进行测试,检查各模块是否正确实现规定的功能,从而发现模块在编2码中或算法中的错误(1分)
(3)集成测试检查与设计相关的软件结构的有关问题(1分)
(4)确认测试主要检查已实现的软件是否满足需求规格说明书中确定了的各种需求(1分)
(5)系统测试把已确认的软件与其它系统元素结合在一起进行测试(1分)简述需求分析方法应遵循的根本原则3答案应遵循的根本原则
(1)必须能够表达和理解问题的数据域和功能域;(2分)
(2)可以把一个复杂问题按功能进行分解并可逐层细化;(2分)
(3)建模(1分).模块间的耦合性包括哪些类型?4答案模块的耦合性包括
(1)无直接耦合;
(2)数据耦合;
(3)标记耦合;
(4)控制耦合;()公共耦合;5
(6)内容耦合(少一点扣1分)年月
2005101.软件工程面临的主要问题有哪些?答案
(1)软件费用;(1分)
(2)软件可靠性;(1分)
(3)软件可维护;(1分)
(4)软件生产率;(1分)
(5)软件重用(1分)软件配置管理的作用及其主要目标是什么?2答案软件配置管理用于整个软件工程过程其目的是协调整个软件的开发,使得混乱减少到最小程度,使得变更所产生的错误到达最小并最有效地提高生产率(3分)它的主要目标是标识变更;控制变更;确保变更的正确实现;报告有关变更(2分)
3.简述步骤SA答案分析的主要步骤SA
(1)了解当前系统的工作流程,获得当前系统的物理模型;
(2)抽象出当前系统的逻辑模型;
(3)建立目标系统的逻辑模型;
(4)作进一步补充和优化(第一点分,其他点分)
214.软件复杂性主要表达在哪些方面?减少软件复杂性有哪些优点?答案软件复杂性主要表现在程序复杂性,而程序的复杂性主要指模块内程序的复杂性它直接关联到软件开发费用的多少、开发周期长短和软件潜伏错误的多少(3分)减少程序的复杂性,可提高软件的简单性和可理解性,并使软件开发费用减少,开发周期缩短,软件内部潜伏错误减少(2分)年月
2004101.面向对象的主要特征有哪些?简要说明其含义答案对象的惟一性每个对象都有自身惟一的标识;(1分)分类性将具有一致的数据结构(属性)和行为(操作)的对象抽象成类(1分)继承性指子类自动共享父类数据结构和方法的机制(1分)多态性指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果(2分简述快速原型模型的开发步骤2答案快速原型开发步骤可划分以下阶段
(1)快速分析迅速确定根本需求、集中力量确定需求说明(1分)
(2)快速构造原型在快速分析基础上,在强有力的软件工具支持下,快速构造所需原型(1分)()运行原型在开发者指导下,用户参与原型的运行,各类人员在共同运行原型中进一步加深对系统的了解及3相互间的理解,以发现各种问题(1分)()评价原型在运行基础上,根据原型目标,考核原型的特性,分析原型效果是否满足用户需求,提出修改意4见(1分)
(5)修改原型在评价基础上进行修改若不满足需求说明,则根据明确的需求修改原型若不满足用户需求,则先修改并明确用户需求,再重新构造原型(1分)简述软件结构的设计优化准则3答案软件结构的设计优化准则是
(1)划分模块时尽量做到高内聚低耦合,保持模块相对独立性,并以此原则优化初始的软件结构(1分)
(2)一个模块的作用范围应在其控制范围之内,其判定所在的模块应与受其影响的模块在层次上尽量靠近(1分)
(3)软件结构的深度、宽度、扇入和扇出应适当(1分)
(4)模块的大小要适中(1分)
(5)模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护(1分)
4.需求分析阶段的根本任务是什么?要进行哪几方面的工作?答案需求分析的根本任务是要准确地定义新系统的目标为了满足用户需要,答复系统必须“做什么〃的问题(2分)本阶段主要进行问题识别;分析与综合,导出软件的逻辑模型;编写文档(3分)年月
2003101.增量构造模型有什么特点?答案增量构造模型是局部阶段进行增量开发,即在该模型中,需求分析阶段和设计阶段与瀑布模型一样,按照瀑布模型方式进行开发,(1分)而编码和测试阶段不采用瀑布模型方式,而采用增量方式开发,(1分)即先对局部功能进行编码,进行测试,将这局部功能提交用户,然后再对另一局部功能进行编码,测试提交用户,直到把全部功能按这种方式开发完毕,(1分)在这种模型中,用户可以及早看到局部软件功能,及早发现问题,以便在其它软件功能开发时及时解决(2分)软件测试要经过哪些步骤?简述这些测试的根本任务2答案
(1)单元测试、集成测试、确认测试、系统测试(1分)
(2)单元测试对源程序中的每个程序单元进行测试,检查各模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误(1分)
(3)集成测试检查与设计相关的软件结构的有关问题(1分)
(4)确认测试主要检查已实现的软件是否满足需求规格说明书中确定了的各种需求(1分)
(5)系统测试把已确认的软件与其它系统元素结合在一起进行测试(1分)简述需求分析方法应遵循的根本原则3答案应遵循的根本原则
(1)必须能够表达和理解问题的数据域和功能域;(2分)
(2)可以把一个复杂问题按功能进行分解并可逐层细化;(2分)
(3)建模(1分).模块间的耦合性包括哪些类型?4答案模块的耦合性包括
(1)无直接耦合;
(2)数据耦合;
(3)标记耦合;
(4)控制耦合;()公共耦,合;5
(6)内容耦合(少一点扣1分)模拟
101.需求分析阶段的根本任务是什么?答案需求分析阶段的根本任务是要准确地定义新系统的目标,为了满足用户需要,答复系统必须“做什么〃的问题本阶段要进行以下几方面的工作⑴问题识别双方确定对问题的综合需求,这些需求包括功能需求、性能需求、环境需求、用户界面需求,另外还有可靠性、平安性、保密性、可移植性、可维护性等方面的需求⑵分析与综合,导出软件的逻辑模型分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能这里也包括对数据域进行分解,并分配到各个子功能上,以确定系统的构成及主要成份,并用图文结合的形式,建立起新系统的逻辑模型⑶编写文档编写“需求规格说明书〃、编写初步用户使用手册、编写确认测试方案、修改完善软件开发方案
2.软件生产已经历了几个阶段各有何特征?答案软件的生产至今已经历了三个阶段⑴程序设计时代(1946〜1956)这个阶段的生产方式是个体手工劳动,使用的工具是机器语言、汇编语言开发方法是追求编程技巧,追求程序运行效率硬件特征是价格贵、存储容量小、运行可靠性差软件特征是只有程序、程序设计概念,不重视程序设计方法⑵程序系统时代(1956〜1968)这个阶段的生产方式是作坊式的小集团合作生产,生产工具是高级语言,开发方法仍旧靠个人技巧,但开始提出结构化方法硬件特征是速度、容量、工作可靠性有明显提高软件特征是程序员数量猛增,但开发技术没有新的突破,开发人员的素质和落后的开发技术不适应规模大、结构复杂的软件开发,导致软件危机的产生⑶软件工程时代(1968至今)这个阶段的生产方式是工程化的生产,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件硬件特征是向超高速、大容量、微型化以及网络化方向开展软件特征是开发技术有很大进步,但是未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机调试的目的是什么?调试有哪些技术手段?3答案调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错调试技术主要有⑴简单的调试方法主要有在程序中插入打印语句、运行局部程序等⑵归纳法调试它从测试结果发现的线索(错误迹象、征兆)入手,分析它们之间的联系,导出错误原因的假设,然后再证明或否认这个假设⑶演绎法调试该方法列出所有可能的错误原因的假设,然后利用测试数据排除不适当的假设,最后再测试数据验证余下的假设确实是出错的原因⑷回溯法调试该方法从程序产生错误的地方出发,人工沿程序的逻辑路径返向搜索,直到找到错误的原因为止.什么是数据流图其作用是什么?其中的根本符号各表示什么含义?4答案数据流图简称是方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流DFD,SA动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型数据流图有四种根本图形符号“一〃箭头表示数据流;圆或椭圆表示加工;“二〃双杠表示数据存储;“口〃方框表示数据的源点或终点模拟9
四、简答题(本大题共小题,每题分,共分)4520,请说明软件文档的作用?软件开发工程生存期各阶段都包含哪些文档?1答案软件文档的作用是提高软件开发过程的能见度;提高开发效率;作为开发人员阶段工作成果和结束标志;记录开发过程的有关信息便于使用与维护;提供软件运行、维护和培训有关资料;便于用户了解软件功能、性能软件开发工程生存期各阶段应包括的文档以及与各类人员的关系如下可行性研究报告、工程开发方案、软件需求说明书、数据要求说明书、测试方案、概要设计说明书、详细设计说明书、用户手册、操作手册、测试分析报告、开发进度月报、工程开发总结、程序维护手册(维护修改建议)软件开发本钱估算方法有哪几种?2答案
(1)自顶向下估算方法估算人员参照以前完成的工程所消耗的总本钱(或总工作量),来推算将要开发的软件的总本钱(或总工作量),然后把它们按阶段、步骤和工作单元进行分配,这种方法称为自顶向下的估算方法⑵自底向上估算方法自底向上估算方法是将待开发的软件细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,得到软件的总开发量⑶差异估算方法差异估算是将开发工程与一个或多个已完成的类似工程进行比较,找出与某个相类似工程的若干不同之处,并估算每个不同之处对本钱的影响,导出开发工程的总本钱⑷专家估算法依靠一个或多个专家对要求的工程做出估算⑸类推估算法⑹算式估算法
3.工程开发方案有哪些内容?答案工程开发方案是一个管理性的文档,它的主要内容如下⑴工程概述说明工程的各项主要工作;说明软件的功能、性能;为完成工程应具备的条件;用户及合同承包者承当的工作、完成期限及其它条件限制;应交付的程序名称,所使用的语言及存储形式;应交付的文档⑵实施方案说明任务的划分,各项任务的责任人;说明工程开发进度,按阶段应完成的任务,用图表说明每项任务的开始时间和完成时间;说明工程的预算,各阶段的费用支出预算⑶人员组织及分工说明开发该工程所需人员的类型、组成结构、数量等⑷交付期限说明工程最后完工交付的日期
4.白盒测试法有哪些覆盖标准试对它们的检错能力进行比较?答案白盒测试法的覆盖标准有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖语句覆盖发现错误能力最弱判定覆盖包含了语句覆盖,但它可能会使一些条件得不到测试条件覆盖对每一条件进行单独检查,一般情况它的检错能力较判定覆盖强,但有时达不到判定覆盖的要求判定/条件覆盖包含了判定覆盖和条件覆盖的要求,但由于计算机系统软件实现方式的限制,实际上不一定到达条件覆盖的标准条件组合覆盖发现错误能力较强,凡满足其标准的测试用例,也必须满足前四种覆盖标准前五种覆盖标准把注意力集中在单个判定或判定的各个条件上,可能会使程序某些路径没有执行到路径覆盖根据各判定表达式取值的组合,使程序沿着不同的路径执行,查错能力强但由于它是从各判定的整体组合出发设计测试用例的,可能使测试用例达不到条件组合覆盖的要求模拟8
四、简答题(本大题共小题,每题分,共分)
45201.说明动态建模的过程答案
(1)准备脚本动态分析从寻找事件开始,然后确定各对象的可能事件的顺序在分析阶段不考虑算法的执行,算法是实现模型的一局部()确定事件确定所有外部事件事件包括所有来自或发往用户的信息、外部设备的信号、输入、转换和动作2⑶准备事件跟踪表把脚本表示成一个事件跟踪表,即不同对象间的事件排序表,对象为表中的列,给每一个对象分配一个独立的列⑷构造状态图对各对象类建立状态图,反映对象接收和发送的事件,每个事件跟踪都对应于状态图中一条路径
2.工作台有哪些分类?CASE答案一个工作台是一组工具集,支持像设计、实现或测试等特定的软件开发阶段工作台工具能通过共享文CASE件、共享仓库或共享数据结构来集成它能支持大多数的软件过程活动工作台有
(1)程序设计工作台
(2)分析和设计工作台
(3)测试工作台
(4)交叉开发工作台
(5)配置管理(CM)工作台
(6)文档工作台
(7)工程管理工作台软件维护的特点是什么?3答案主要表达在三个方面⑴非结构化维护和结构化维护软件的开发过程对软件的维护有很大的影响若不采用软件工程的方法开发软件,则软件只有程序而无文档,维护工作非常困维,这是一种非结构化的维护若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维护工作,这是一种结构化的维护⑵维护的困难性软件维护的困难性是由于软件需求分析和开发方法的缺陷软件生存周期中的开发阶段没有严格而又科学的管理和规划,就会引起软件运行时的维护困难⑶软件维护的费用软件维护的费用在总费用中的比重是在不断增加的,这是软件维护有形的代价另外还有无形的代价,即要占用更多的资源软件维护费用增加的主要原因是软件维护的生产率非常低
4.软件概要设计阶段的根本任务是什么?答案
(1)设计软件系统结构(简称软件结构),具体为
①采用某种设计方法,将一个复杂的系统按功能划分成模块
②确定每个模块的功能
③确定模块之间的调用关系
④确定模块之间的接口,即模块之间传递的信息
⑤评价模块结构的质量⑵数据结构及数据库设计,含数据结构的设计及数据库的设计⑶编写概要设计文档主要有
①概要设计说明书;
②数据库设计说明书;
③用户手册;
④修订测试方案⑷评审模拟7
四、简答题(本大题共小题,每题分,共分)4520,什么是数据字典其作用是什么?它有哪些条目?答案数据字典(简称)是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式DD为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成局部数据字典是为分析人员查找数据流图中有关名字的详细定义而效劳的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅数据字典有以下四类条目数据流、数据项、数据存储、根本加工数据项是组成数据流和数据存储的最小元素源点、终点不在系统之内,故一般不在字典中说明什么是确认测试该阶段有哪些工作?2答案:确认测试又称有效性测试它的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相符合确认测试阶段有两项工作进行确认测试与软件配置审查⑴确认测试一般是在模拟环境下运用黑盒测试方法,由专门测试人员和用户参加的测试⑵软件配置审查的任务是检查软件的所有文档资料的完整性、正确性如果发现遗漏和错误,应补充和改正同时要编排好目录,为以后的软件维护工作奠定基础简述容错系统的设计过程3答案容错系统的设计过程包括以下设计步骤⑴按设计任务要求进行常规设计,尽量保证设计的正确⑵对可能出现的错误分类,确定实现容错的范围⑶按照“本钱〃一一“效率〃最优原则,选用某种冗余手段来实现对各类错误的屏蔽⑷分析或验证上述冗余结构的容错效果如果效果没有到达预期的程度,则应重新进行冗余结构设计如此重复,直到有一个满意的结果为止试述系统开发的生命周期4答案系统开发是管理信息系统建设中最重要的一个阶段,从工程开发开始到结束的整个过程,称为系统开发的生命周期系统开发的生命周期一般分为以下阶段⑴系统分析这一阶段的主要任务是明确用户的信息需求,提出新系统的逻辑方案需要进行的工作有系统的初步调查,可行性研究,现行系统的详细调查及新系统逻辑模型的提出等⑵系统设计这一阶段的主要任务是根据新系统的逻辑方案进行软、硬件系统的设计,其中包括总体结构设计、输出设计、输入设计、处理过程设计、数据存储设计和计算机系统方案的选择等⑶系统实施这一阶段将设计的系统付诸实施,主要工作有软件的程序编制与软件包的购置、计算机与通讯设备的购置、系统的安装、调试与测试、新旧系统的转换等模拟6
四、简答题(本大题共小题,每题分,共分)
45201.如何做好软件质量保证工作?答案软件质量保证工作是软件工程管理的重要内容,软件质量保证应做好以下几个方面的工作⑴采用技术手段和工具质量保证活动要贯彻开发过程始终,必须从采用技术手段和工具,尤其是使用软件开发环境来进行软件开发⑵组织正式技术评审在软件开发的第一个阶段结束时,都要组织正式的技术评审国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量⑶加强软件测试软件测试是质量保证的重要手段,因为测试可发现软件中大多数潜在错误⑷推选软件工程标准(标准)用户可以自己制定软件工程标准(标准),但标准一旦确认就应贯彻执行⑸对软件的变更进行控制软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更()6对软件质量进行度量即对软件质量进行跟踪,及时记录和报告软件质量情况如何控制因修改而引起的副作用?2答案为了控制因修改而引起的副作用,要做到⑴按模块把修改分组;⑵自顶向下地安排被修改模块的顺序;⑶每次修改一个模块;
(4)对每个修改了的模块,在安排修改下一个模块之前要确定这个修改的副作用,可使用交叉引用表、存储映像表、执行流程跟踪等渐增模型有几种?各有何特点?3答案渐增模型是瀑布模型的变种,它有两类⑴增量构造模型它在瀑布模型基础上,对一些阶段进行整体开发,对另一些阶段进行增量开发也就是说在前面的开发阶段按瀑布模型进行整体开发,后面的开发阶段按增量方式开发⑵演化提交模型它在瀑布模型基础上,所有阶段都进行增量开发,也就是说不仅是增量开发,也是增量提交
4.对软件开发环境的根本要求有那些?答案
(1)软件开发环境应是高度集成的一体化的系统⑵软件开发环境应具有高度的通用性⑶软件开发环境应易于定制、裁剪或扩充以符合用户要求,即软件开发环境应具有高度的适应性和灵活性⑷软件开发环境不但可应用性要好,而且是易使用的、经济高效的系统()软件开发环境应有辅助开发向半自动开发和自动开发逐步过渡的系统5模拟5
四、简答题(本大题共小题,每题分,共分)4520/,什么是模块的影响范围?什么是模块的控制范围?它们之间应该建立什么关系.非渐增式测试与渐增式测试38有什么区别渐增式测试如何组装模块?答案一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有模块的集合一个模块的控制范围指模块本身以及其所有下属模块(直接或间接附属于它的模块)的集合一个模块的作用范围应在其控制范围之内,且判定所在的模块应在其影响的模块在层次上尽量靠近如果在设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点〃或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内〃的方法加以改良
2.方法有什么特点?IDEF0答案
(1)采用方框和箭头等简单的图形符号描述系统的活动和数据流,描述活动所受到的约束条件及实现机制从侧面清楚地反映了系统的功能故图宜全为正式文档IDEF0⑵采用严格的自顶向下、逐层分解的方式建立系统功能模型顶层确定系统范围,采用抽象原则,然后有控制地逐步展开有关活动的细节,符合方法的分析策略同时,规定每张图至少有个、最多有个方框,上界SA IDEF0366保证采用层次性描述复杂问题的可理解性,下界保证分解有意义3在划分软件生存周期阶段时,应遵循的根本原则是什么?3答案软件生存周期的各个阶段有不同的划分软件规模、种类、开发方式、开发环境以及开发使用方法都影响软件生存周期的划分在划分软件生存周期阶段时,应遵循的一条根本原则是各阶段的任务应尽可能相对独立,同一阶段各工程任务的性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有利于。
个人认证
优秀文档
获得点赞 0