【缩印版】软件工程期末考试必考题复习参考.doc_第1页
【缩印版】软件工程期末考试必考题复习参考.doc_第2页
【缩印版】软件工程期末考试必考题复习参考.doc_第3页
【缩印版】软件工程期末考试必考题复习参考.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1):什么是软件危机?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机包含两方面的问题:如何开发软件,以啊满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。2):什么是模块?模块是由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它模块是构成程序的基本构件。3):什么是软件的生命周期,包含哪些阶段? 软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分为若干个阶段。是软件从定义开始,经过开发、使用和维护,直到最终退役的全过程称为软件生命周期,周期内有问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试阶段。4):什么是模块的扇入和扇出?扇出是一个模块直接控制的模块数目,扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块;扇出过小也不好。一个设计的好的典型系统的平均扇出通常是3或4,扇出的上限通常是59.一个模块的扇入表明有多少个上级模块直接调用它,扇入越大则共享该模块的上级模块数目越多,这是有好处的,但是,不能违背模块独立原理单纯追求高扇入。5):模块的独立性如何衡量?答:模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。模块的独立程度可以由两个定性标准度量,这两个标准分别成为内聚和耦合。耦合衡量不同模块彼此间互相依赖的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。6):总体结构设计的任务是什么?总体设计的基本目的就是回答“概括的说,系统应该如何实现?”这个问题。总体设计阶段的另一个重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及就这些模块相互间的关系。7):主要的模块内聚类型有哪些,如何区分内聚类型?按强度从低到高为偶然内聚,逻辑内聚,时间内聚,过程内聚,通信内聚,顺序内聚,功能内聚。8):什么是软件的可靠性?软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功的运行的概率。软件可用性是程序在给定的时间点,按照规格说明书的规定,成功的运行的概率。9):软件工程的三要素?软件工程方法三要素:1)过程2)方法3)工具10):可行性研究的内容?复查系统规模和目标;研究目前正在使用的系统;导出新系统的高层逻辑模型;进一步定义问题;导出和评价供选择的解法;推荐行动方针;草拟开发计划;书写文档提交审查;11):什么是模块的作用域,什么是模块的控制域/作用域为受该模块内一个判定影响的所有模块的集合。控制域是这个模块本身以及所有直接或间接从属于它的模块的集合。12):软件测试的目的是什么?发现程序中的错误,或者是为了表明程序是对的,测试目标决定了测试方案的设计。13):软件维护的类型及所占比重/把诊断和改正错误的过程称为改正性维护为了和变化了的环境适当的配合而进行的修改软件的活动是经常性维护。在使用软件过程中用户提出增加新功能的或修改已有功能的建议,这种维护称为完善性维护。为了改进软件未来的可维护性或可靠性而修改软件时这种维护称为预防性维护。完善性维护所占比重最大,几乎占一半工作量,即大部分维护工作是改变和加强软件,而不是纠错。其次为适应性维护,改善性维护,其他维护。14):什么是结构化设计方法? 结构化设计是一种面向数据流的设计方法。结构化设计分为概要设计、详细设计两个过程。概要设计的主要任务是:通过仔细分析软件规格说明,适当地对软件进行功能分解,从而把软件划分为模块,并且设计出完成预定功能的模块结构。详细设计阶段详细地设计每个模块,确定完成每个模块功能所需要的算法和数据结构。结构化程序设计方法的基本要点有三点:(1) 采用自顶向下、逐步求精的程序设计方法,在需求分析、概要设计中,都采用了自顶向下逐层细化的方法。 (2) 使用二种基本控制结构构造程序,任何程序都可由顺序、选择、重复三种基本控制结构构造。 (3) 主程序员组的组织形式。结构化程序设计方法是综合应用这些手段来构造高质量程序的思想方法。15):数据流图的类型?变换流 事务流16):软件详细设计阶段的任务?是确定应该怎样具体地实现所要求的系统,也就是经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。详细设计的基本任务包括:1、为每个模块进行详细的算法设计 2、为模块内的数据结构进行设计 3、对数据库进行物理设计 4、其他设计 5、编写详细设计说明书6、评审17):基于数据流的设计方法如何进行?。画数据流图的基本步骤,就是自外向内,自顶向下,逐层细化,完善求精。a,复查基本系统模型b,复查并精化数据流图c,确定数据流图具有变换特性还是事务特性d,确定输入流和输出流边界,从而孤立出变换中心e完成第一级分解f完成第二级分解g适用设计度量和启发式规则对第一次分割得到的软件结构进一步精化18):软件结构图中几个特征参数的作用?带注释箭头表示模块调用过程中来回传递的信息。方框代表一个模块。注释箭头尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。19):不同内聚类型及内聚程度高低内聚按紧密程度从低到高排列次序为偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。20):可行性研究的实质?可行性研究的任务就是,用最小的代价在尽可能短的时间内研究并确定客户提出的问题是否有行得通的解决办法。是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以抽象的方式进行的系统分析和设计的过程。21):详细设计有哪些常用工具及各自适用范围?工具:程序流程图;盒图NS图);PAD图;判定表;判定树;过程设计语言PDL)图形工具有程序流程图、PAD 图、NS图。语言工具有伪码和 PDL以及表格工具22):逻辑覆盖测试包含哪些测试类型?语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,点覆盖,边覆盖,路径覆盖。23):什么是软件工程? 1)指导计算机软件开发和维护的工程学科,该学科的目的是生产出能按期交付的,在预算范围内的、满足用户需求的、质量合格的软件产品。 2)采用工程的概念、原理、技术和方法来开发和维护软件,把进过时间考验而证明正确的管理技术和当前能够得到的最好得技术方法计算机技术和网络通讯技术)结合起来,经济的开发出高质量的软件并有效的维护它24):什么是数据流图,包括哪些图形成分?数据流图是一种图形化技术,它描绘信息流好数据从输入移动到输出地过程中所受的变换。数据流图的基本要点是描绘“做什么”,而不考虑“怎样做”。成分:源点、终点、处理数据存储和数据流。符号:正方形表示数据的源点或终点,圆角矩形表示变换数据的处理,开口矩形代表数据存储,箭头线表示数据流,即特定数据的流动方向。25):内聚及耦合的基本原则? 高内聚低耦合耦合:模块间互相依赖(连接)的紧密程度;内聚:模块内部各个元素彼此结合的紧密程度。耦合包括内容耦合,公共耦合,控制耦合,标记耦合,数据耦合耦合是影响软件复杂程度的一个重要因素。应该采取下述设计原则:尽量使用数据耦合,少用控制耦合和标记耦合,限制公共环境耦合的范围,完全不用内容耦合。内聚包括:偶然内聚,逻辑内聚,时间内聚,过程内聚,通信内聚,顺序内聚,功能内聚。设计时尽量使用高内聚,低耦合模块。衡量标准:模块间的耦合,模块的内聚。26):常用的软件过程模型有哪些?软件过程模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、形式化方法模型可行性研究:这个阶段要回答的关键问题是:“上一阶段所确定的问题是否有行得通的解决办法”。需求分析:这个阶段要准确的回答:“目标系统必须做什么”。概要设计:这个阶段要概括地回答:“怎样实现目标系统”。 概要设计也可以说是体系结构的设计,根据软件需求规格说明建立软件系统的总体结构和模块间的关系,定义个功能模块的接口,规定设计约束,确定设计策略、制定组装测试计划。详细设计:这个阶段要概括地回答:“怎样具体地实现这个系统”。 详细设计阶段的任务就是对概要设计产生的功能模块逐步细化,形成若干个可编程的程序模块,用某种过程设计语言设计程序模块的内部细节,包括算法、数据结构和各程序模块之间的详细接口信息,为编写源代码提供必要的说明,并拟定模块测试方案。1、系统流程图系统流程图是描绘物理系统的传统工具,用图形符号来表示系统中的各个元素,表达了系统中各个元素之间的信息流动的情况。2数据字典 答:数据字典(Data Dictionary,简称DD)就是对数据流图中包含的所有元素的定义的集合。它和数据流图共同构成了系统的逻辑模型。3数据流图(DFD) 答:数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。4软件工程 答:软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;研究中提到的途径。5模块 答:在程序中是数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素,在软件的体系结构中,模块是可组合、分解和更换的单元。6控制耦合 答:控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能。7内聚性答:内聚性指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。8PAD图答:PAD图指问题分析图(Problem Analysis Diagram),是日本日立公司于1979年提出的一算法描述工具,它是一种由左往右展开的二维树型结构。PAD图的控制流程为自上而下、从左到右地执行。9单元测试答:单元测试指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。10判定/条件覆盖 答:指设计足够的测试用例,使得判定表达式中的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。11完善性维护答:在软件运行时期中,用户往往会对软件提出新的功能要求与性能要求。这种增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。四、简答题每小题4分,共20分)1、软件工程的原则有抽象、信息隐藏、模块化和其他那些内容?局部化;一致性;完全性;可验证性;2、常用的软件项目的估算方法主要有哪4种?自顶向下的估算方法;自底向上的估算方法;差别估算法;根据经验估算公式;3、原型法模型一般适应哪些场合?它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员包括分析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。4、简答结构化程序设计的内容。 是程序设计技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制构件。5、瀑布模型一般适应哪些场合?瀑布模型一般适用于功能、性能明确、完整、无重大变化的软件系统的开发。例如操作系统、编译系统、数据库管理系统等系统软件的开发。应用有一定的局限性。1、软件可维护性:是指软件产品交付使用后,在实现改正潜伏的错误、改进性能等属性、适应环境变化等方面工作的难易)程度。2、螺旋模型的适应场合有哪些? 适应场合:支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的模型。2、软件生存周期 软件从定义开始,经过开发、使用和维护,直到最终退役的全过程称为软件生存周期。3、软件开发风险分析实际上就是贯穿于软件工程过程中的一系列风险管理步骤,它包括哪些主要内容?风险标识;风险估算;风险评价;风险驾驭和监控。4、软件生存周期中的软件开发过程由概要设计和其它哪几个阶段组成?0103详细设计;实现;组装设计;验收测试;5、实体关系Entity-Relation)图简称E-R图,是表示数据对象及其之间关系的图形语言机制。1软件在使用过程中维护有哪几种?1)纠错性维护2)完善性维护3)适应性维护4)预防性维护2、Coad/Yourdon面向对象的方法除了包含识别对象外还包括哪4个步骤?标识对象的属性;标识对象的行为;识别对象所属的类;定义主题词;3、Jackson系统开发方法其核心思想是什么?根据作用于数据的行为序列的结构顺序、选择、重复),建立目标软件系统的模型,然后在软件设计阶段将模型转换为相应的程序结构。4、设计人机界面,必须考虑哪四个方面。系统的响应时间;用户求助机制;错误信息处理;命令方式。5、什么是测试用例?为了进行有效的测试而设计的输入数据和预期的输出结果数据。1、计算机软件:与计算机系统操作有关的程序、规程、 规则及任何与之有关的文档和数据。2、需求分析的任务是什么?需求分析的任务是确定待开发的软件系统“做什么”。具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册。3、软件项目的成本管理:估算软件项目的成本,作为立项和签合同的依据之一,并在软件开发过程中按计划管理经费的使用。4、快速原型技术的基本思想是什么?在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,然后开发人员根据用户的意见对原型进行改进。5、程序设计语言有哪些特点?1)一致性;2)二义性;3)紧致性;4)局部性;1、程序设计语言的三种类型和特点是什么?机器语言、汇编语言:依赖于机器,面向机器;高级语言:独立于机器,面向过程或面向对象;面向问题语言:独立于机器,非过程式语言4GL);2、软件危机:是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。3、软件项目的质量管理:制定软件质量保证计划,按照质量评价体系控制软件质量要素,对阶段性的软件产品进行评审,对最终软件产品进行确认,确保软件质量。4、好的编程风格应遵循哪四条规则?1)节简化;2)模块化;3)简单化;4)文档化;5、软件测试中按照错误的性质和范围进行分类可分为:“功能错误”及其它哪些错误?系统错误 ;加工错误算法错误);数据错误 ;代码错误 1、选择语言时要考虑的因素有:项目的应用领域、项目中算法、计算的复杂性和其余哪些内容?答: 1)项目中数据结构的复杂性2)用户的性能需求 3)软件运行的环境 4)软件开发人员开发水平 5)可用的编译器和交叉编译器2、已知一个软件项目的记录,开发人员M=3人,其代码行数=12.1KLOC,工作量E=24PM,成本S=168000美元,错误数N=29,文档页数Pd=365页。试计算开发该软件项目的生产率P、平均成本C、代码出错率EQR和文档率D。0201解: 1软件开发的生产率P为:P = L / E = 12.1103LOC / 24PM = 504 LOC/PM2开发每行代码的平均成本C为:C = S / L = 168000美元 / 12100LOC=13.9美元/LOC3代码出错率EQR为:EQR = N / L = 29个/12.1KLOC=2.4个/KLOC4软件的文档率D为:D = Pd / L = 365页 / 12.1KLOC = 30页/ KLOC1、可将软件生存周期划分为哪3个过程和哪9个阶段。1)3个过程是:软件定义过程、软件开发过程、软件使用与维护过程。2)9个阶段有:可行性研究、需求分析、概要设计、详细设计、实现、组装测试、验收测试、使用与维护、退役。2、画出与图1所示的程序流程图对应的流图,并试计算其环形复杂度V(G)。0204解: 1)流图如图2)所示:2)计算其环形复杂度:VG)=E N +2=13 10 +2=51、需求评审标准按照重要性的次序)包括哪些内容?。正确性;无歧义性;完全性;可验证性;一致性;可理解性;可修改性;可追踪性。2、软件开发风险分析实际上就是贯穿于软件工程过程中的一系列风险管理步骤,它包括哪些内容?风险标识;风险估算;风险评价;风险驾驭;监控1、软件工程的目标是什么?答:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪

温馨提示

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

最新文档

评论

0/150

提交评论