您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程期末复习重点李振宏
1.详细设计的工具中,N-S图,PAD图及判定表和判定数各有何特点和适用情况?N-S图(盒图):(1)功能域明确,可以从盒图上一眼看出来(2)不可能任意转移控制。(3)很容易确定局部和全部数据的作用域(4)很容易表现嵌套关系,也可以表示模块的层次结构PAD图:(1)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序(2)PAD图所描绘的程序结构是十分清晰(3)用PAD图表现程序逻辑,易读,易懂,易记(4)容易将PAD图转换成高级语言源程序(5)可用于表示程序逻辑,也可用于描绘数据结构(6)PAD图的符号设计自定向下,逐步求精方法的使用适用:为FORTTAN,COBOL,PASCAL等每种常用的高级程序设计语言提供了一套相应的图形符号判定表:(1)能够间接而又无歧义的描述处理故意则(2)并不适用于作为一种通用的设计工具(3)左上部列定出所有的条件,左下部是所有可能的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种组合相对应的动作适用:算法中包含多重嵌套的条件选择判定树判定树是判定表的变种,它也能清晰的表示复杂的条件组合与应做的动作之间的对应关系。它的形式简单到不需任何说明,一眼就看出其含义适用:数据元素多的时候,初次接触的人很容易就看懂2.白盒测试和黑盒测试技术的区别。黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。白盒测试:已知产品的内部工作过程,可以进行测试证明每种内部操作是否符合设计规格要求,所有内部成分是否经过检查。3.白盒测试中的逻辑覆盖测试包含哪几种类型?逻辑覆盖:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,点覆盖,边覆盖,路径覆盖4.软件维护的类型有哪些,及各自所占比例?完善性维护:50%~66%改正性维护:17%~21%适应性维护:18%~25%其他维护:4%左右5.软件项目的可行性研究的实质是什么?对以后的行动方针提出建议。如果问题没有可行性的解,分析员应该建议停止这项开发工程,以避免时间,资源,人力和金钱的浪费;日过问题值得解,分析员应该推荐一个较好的方案,并为这个工程制定一个初步的计划6.可行性研究包括哪些内容?(1)复查系统规模和目标(2)研究正在使用的系统(3)导出新系统的高层逻辑模型(4)进一步定义问题(5)导出和评价供选择的解法(6)推荐行动方针(7)草拟开发计划(8)书写文档提交审查7.衡量模块独立性的标准有哪些?内聚和耦合耦合:衡量不同模块彼此间互相依赖的紧密程度内聚衡量一个模块内部各个元素彼此间结合的紧密程度8.模块间的耦合有哪些类型,如何区分?数据耦合,低级耦合(交换的信息仅仅是数据)控制耦合:中等程度的耦合(是多余的。增加了系统的复杂性。分解后可以用数据耦合代替)特征耦合:公共环境耦合:内容耦合:最高程度(坚决避免使用这种耦合)总结:尽量少使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合,完全不用内容耦合9.模块间的内聚有哪些类型,如何区分?偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚使用原则:力求高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用10.结构化程序设计的定义及特点定义:是进行以模块功能和处理过程设计为主的详细设计的基本原则。特点:结构化程序中的任意基本结构都具有唯一入口和唯一出口,并且程序不会出现死循环。在程序的静态形式与动态执行流程之间具有良好的对应关系11.软件测试的定义及目的。答:软件测试的定义:是为了发现程序中的错误而执行程序的过程软件测试的目的:暴露程序中的错误。软件测试的定义及目的的规则(模糊):(1)测试是为了发现程序中的错误而执行程序的过程。(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。(3)成功的测试是为了发现迄今为止尚未发现的错误的测试。(4)12.软件生命周期的阶段划分及每个阶段的任务。答:软件生命周期的阶段划分:软件定义、软件开发、运行维护(也称为软件维护)每个阶段的基本任务:软件定义:(1)问题定义(2)可行性研究(3)需求分析软件开发:(1)总体设计(2)详细设计(3)编码和单元测试(4)综合测试运行维护:软件维护(即通过各种必要的维护活动使系统持久地满足用户的需要。)13.面向对象方法的特点、特征。答:特征(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。(2)把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。(3)按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。(4)对象彼此之间仅能通过传递信息互相联系。特点(1)与人类习惯的思维方法一致(2)稳定性好(3)可重用性好(4)较易开发大型软件产品(5)可维护性好14.类、对象的概念,多态、重载、封装的含义。答:概念:在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象。它是代码和数据的结合。多态:是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。由弱到强重载:有两种重载:函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一个运算符可以施加于不同类型的操作数上面。当然,当参数特征不同或操作数的类型不同时,实现函数的算法或运算符的语义是不相同的。15.总体设计阶段使用的软件结构图,模块及模块间的调用关系如何表示答:结构图是进行软件结构设计的另一个有力工具。方框之间的箭头(或直线)表示模块的调用关系,按照惯例总是图中位于上方的方框代表的模块调用下方的模块,即使不用箭头也不会产生二义性,为了简单起见,可以只用直线而不用箭头表示模块间的调用关系。16.什么是变换流、什么是事务流,如何区分。答:变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些特征时,这种信息流就叫作变换流。事务流:数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行,这类数据流应该划为一类特殊的数据流,称为事务流。区分:变换流是一个线性的处理,事务流是一个分类处理。17.McCall质量模型中的质量因素有哪些。答:正确性、健壮性、效率、完整性(安全性)、可用性、风险、可理解性、可维修性、灵活性(适应性)、可测试性、可移植性、可再用性、互运行性。18.E-R图中包含哪些图形元素,如何表示。答:E-R图中包含了实体(即数据对象)、关系和属性3中基本成分,通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线把实体(或关系)与其属性连接起来。19.软件的可靠性与可用性。答:软件可靠性的定义:软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。软件可用性的定义:软件可用性是程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。区别:可靠性意味着在0到t这段时间间隔内系统没有失效,而可用性只意味着在时刻t,系统是正常运行的。20.什么是软件的调试。答:调试(也称为纠错)作为成功测试的后果出现,也就是说,调试是在测试发现错误之后排除错误的过程。调试就是把症状和原因联系起来的尚未被人深入认识的智力过程。21.常用软件调试技术有哪些?蛮干法:仅当所有方法都失败了的情况下,才使用这种方法。回溯法:从发现症状的地方开始,人工沿程序的控制流往回追踪分析源程序代码,知道找出错误原因为止。排除法:分为对分查找法、归纳法和演绎法。22.软件工程方法学主要包括哪几部分的研究内容。软件工程方法学包括3个要素:方法、工具和过程。其中,方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是运用方法而提供的自动的货半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。23.面向对象的软件工程包含哪几个阶段。面向对象分析:需求陈述、建立对象模型、建立动态模型、建立功能模型、定义服务。面向对象设计:系统分解、设计问题域子系统、设计人机交互子界面、设计任务管理子系统、设计数据管理子系统、设计类中的服务、设计关联、设计优化。面向对象实现:程序设计语言、程序设计风格、测试策略、设计测试用例。24.什么是软件,什么是软件工程,什么是软件危机。软件:与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。软件工程:采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。软件危机:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。25.软件测试中驱动模块和存根模块的用途是什么。驱动程序也就是一个“主程序”,它接收测试数据,把这些数据传送给被测试的模块,并且印出有关的结果。才存根程序也可以称为“虚拟子程序”。它使用被它代替的模块的接口,可能做最少量的数据操作,印出对入口的检验或操作结果,并且把控制归还给调用它的模块。26.能力成熟度模型中成熟度等级分为哪几级,各有何特点。初始级:处于这个最低成熟度等级的软件机构,其过程能力是不可预测的,其软件过程是不稳定的,产品质量只能根据相关人员的个人工作能力而不是软件机构的过程能力来预测。可重复级:软件项目的策划和跟踪是稳定的,已经为一个有纪律的管理过程提供了可重复以前成功实践的项目环境。软件项目工程活动处于项目管理体系的有效控制之下,执行着基于以前项目的准则且合乎显示的计划。已定义级:无论是管理活动还是工程活动都是稳定的。软件开发的成本和进度以及产品的功能和质量都受到控制,而且软件产品的质量具有可追溯性。这种能力是基于在软件机构中对已定义的过程模型的活动、人员和职责都有共同的理解。已管理级:软件过程是可度量的,软件工程在课度量的范围内运行。这一级的过程能力允许软件机构在定量的范围内预测过程和产品质量趋势,在发生偏离时可以及时采取措施予以纠正,并且可以预期软件产品是高质量的。优化级:软件过程是可优化的。这一级的软件机构能够持续不断地改进其过程能力,即对现行的过程实例不断地改进和优化,又借助于所采用的新技术和新方法来实现未来的过程改进。27.总体设计中模块的内聚及耦合应把握哪些原则。耦合使用原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。内聚使用原则:设计时力求高内聚,设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。28.软件过程模型是什么,常用的软件过程模型及各自特点。瀑布模型:阶段间具有顺序性和依赖性、推迟实现的观点、质量保证的观点。优点:可强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交得文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证;遵守瀑布模型的文档约束,将使软件维护变得比较容易一点;文档驱动。缺点:文档驱动;仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品;用户变化无法预测,很可能导致最终开发出的软件产品不能真正满足用户的需求;只能反映用户项目开始时的需求。快速原型模型:快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。通过用户试用原型系统后提出的许多修改意见,按照用户的意见快速地修改原型系统,然后再次请用户试用,一旦用户认为这个原型系统确实能做他们所需要的工作,开发人员便据此书写规格说明文档,根据这份文档开发出的软件便可以满足用户的真实需求。优点:软件产品的开发基本上是线性顺序进行的。增量模型:把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的
本文标题:软件工程期末复习重点李振宏
链接地址:https://www.777doc.com/doc-1991020 .html