软件工程复习题_第1页
软件工程复习题_第2页
软件工程复习题_第3页
软件工程复习题_第4页
全文预览已结束

下载本文档

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

文档简介

1、1.软件生命周期分为三个时期(1)软件定义时期:问题定义、可行性研究和需求分析(2)开发时期:系统设计(总体设计,详细设计)和系统实现(编码和单元测试,综合测试)(3)维护时期:使软件持久地满足用户的需要(如改正错误、改变环境、改进软件等软件维护)2. 软件过程模型有瀑布模型它具有顺序性和依赖性,在每个阶段必须完成规定的文档并及时审查这样能够降低预算。它基本上是文档驱动的模型完全依赖书面,但开发出的产品不能真正满足用户的需要,快速原型模型最终产品的一个子集,首先需要快速建立一个能反映用户需要的原型系统,本质是快速,基本是线性顺序,增量模型(渐增模型)把新的构件分批逐步加入到现有的软件中,螺旋模

2、型在每个阶段增加了风险分析的快速原型模型,对已有的软件重用减少了过多测试或测试不足所带来的风险,它主要适用于内部开发的大规模软件项目,优势在于是风险驱动的,喷泉模型不同阶段相互重叠,面向对象方法在概念和表示方法上是一致性的,较好地体现了面向对象软件开发过程无缝和迭代的特性3.判断是数据流程图或数据字典?答:数据流程图是一种图形化技术,描绘信息流和数据的变换,是系统逻辑功能的图形表示。数据流图是描述系统数据流程的工具,它将数据独立抽象出来,通过图形方式描述信息的来龙去脉和实际流程。 4.数据字典的内容:数据字典是对数据流图中包含的所有元素的定义的集合,应对数据流、数据流分量(数据元素)、数据存储

3、和处理元素进行定义。5.数据模型中包含3种互相关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。6.第一范式:每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构 第二范式:满足第一范式条件,而且每个非关键字属性都由整个关键字决定 第三范式:符合第二范式条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依懒于另一个非关键字属性值)。7.软件设计原理:模块化、抽象、逐步求精、信息隐蔽和局部化、模块独立。8.模块独立性的两个衡量标准是内聚和耦合。9.软件设计的启发式规则:改进软件结构提高模块独立性,

4、模块规模应该适中,深度、宽度、扇出和扇入都应适当,模块的作用域应该在控制域之内,力争降低模块接口的复杂程度,设计单入口单出口的模块,模块功能应该可以预测。10.人机界面设计的4个问题:系统响应时间、用户帮助设施、出错信息处理和命令交互。11.计算环形复杂度:此流图的环形复杂度为4(1)流图中的区域数等于环形复杂度,图形中的区域为封闭的三部分及、与外面(2)环形复杂度V(G)=E-N+2,E为边数,N为结点数。图中的边数为11,结点数为9。(3)环形复杂度V(G)=P+1,P是判定结点数目。图中的判定结点为、共三个12.由模块组装成程序时有两种方法:非渐增式测试和渐增式测试13.调试途径的三种方

5、法:蛮干法、回溯法和原因排除法14.根据描述填写表格算纯收入和投资回收期例:修改一个已有的库存管理系统,估计需要5000元,系统修改后使用5年,每年可节省2500元,请进行成本/效益分析。假设年利率为12%。答:将来值为F,年利率为i,现在值为P,n为年数。 P=F/(1+i)n将来的收入折算成现在值(1)投资回收期 第一,第二年回收:4225.12元 第三年用于回收投资要: ( 5000 4225.12 ) / 1779.45 = 0.44年 总的投资回收期 = 2.44年(2)纯收入 9011.94 - 5000 = 4011.94 (元) 15.白盒测试与黑盒测试 (1)黑盒测试技术:等

6、价划分把程序的输入域划分成若干个数据类(有效等价类和无效等价类),力图设计出能发现若干类程序错误的测试用例从而减少必须设计的测试用例的数目,边界值分析确定边界情况,选取刚好等于、刚刚小于和刚刚大于边界值的数据,错误推测靠直觉和经验对程序中可能存在的错误进行推测,注意输入和输出为“1”或“0”的(2)白盒测试中逻辑覆盖的测试用例 例:一个被测试模块的源程序为(PASCAL语言): PROCEDURE EXAMPLE (A, B: REAL; VAR X: REAL);语句覆盖测试用例:A = 2 , B = 0 ,X = 4,执行路径为:sacbed。判定覆盖测试用例:I. A=3,B=0,X=

7、3 (覆盖sacbd)II. A=2,B=1,X=1(覆盖sabed)条件覆盖测试用例:I. A=2,B=0,X=4(执行路径sacbed)II. A=1,B=1,X=1(执行路径sabd)判定/条件覆盖测试用例:I. A=2,B=0,X=4(执行路径sacbed)II. A=1,B=1,X=1(执行路径sabd)条件组合覆盖测试用例:I. A=2,B=0,X=4(执行路径sacbed)II. A=2,B=1,X=1(执行路径sabed)III. A=1,B=0,X=2(执行路径sabed)IV. A=1,B=1,X=1(执行路径sabd)路径覆盖测试用例:sacbed,sabd,sacbd,

8、sabed BEGIN IF (A>1) AND (B=0) THEN X: = X / A; IF (A=2) OR (X>1) THEN X: = X + 1 END16.为什么说喷泉模型较好地体现了面向对象软件开发过程无缝和迭代的特性?答:软件开发通常会划分明显的阶段,而喷泉模型的不同阶段是相互重叠的,表明了两个活动之间存在迭代;并且面向对象方法在概念和表示方法上的一致性,保证了在各项开发活动之间的无缝过渡。17.在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?答:可行性研究的目的是:用最小的代价在尽可能短的时间内确定问题是否有解,以及是否值得

9、去解。应该从技术、经济、操作和社会等方面研究目标系统的可行性18.为什么要进行需求分析?通常对软件系统有哪些需求?答:进行需求分析是为了开发出真正满足用户需求的软件产品,它的最基本任务是准确地回答“系统必须做什么?”这个问题。通常对软件系统的需求有:功能需求,性能需求,可靠性和可用性需求,出错处理需求、接口需求,约束,逆向需求,将来可能提出的要求 19.用判定树或判定表描述问题。(2种方法会一种即可)假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤

10、收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半答:判定表 判定树 20.什么是回归测试?为什么要进行回归测试?怎么做回归测试?答:(1)回归测试是指重新执行已经做过的测试的某个子集以保证上述这些变化没有带来非预期的副作用。(2)回归测试是用于保证由于调试或其他原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动。(3)回归测试可以通过重新执行全部测试用例的一个子集人工地进行,也可以使用自动化的捕获回放工具自动进行。利用捕获回放工具,软件工程师能够捕获测试用例和实际运行结果,然后可以重新执行测试用例,并且比较软件变化前后所得到的运行结果。回归测试集(已执行的测试用例的

11、子集)包括下列3类不同的测试用例:检测软件全部功能的代表性测试用例专门针对可能受修改影响的软件功能的附加测试针对被修改过的软件成分的测试21.简述软件再工程的6类活动(1)库存目录分析:库存目录包含每个系统的基本信息,应该仔细分析库存目录,明智地选出再工程所需要的资源。(2)文档重构:如果一个程序走向生命终点,不再经历变化,则保持现状;重构只针对当前正在修改的软件部分。(3)逆向工程:逆向工程是一个恢复设计结果的过程,从程序代码中抽取数据结构、体系结构和处理过程的设计信息。(4)代码重构:分析源代码,标注出与结构化程序设计概念不符的部分,重构它的代码,测试重构代码并更新代码。(5)数据重构:当

12、数据结构较差时,进行再工程。如以文件方式保存数据变为以数据库方式存储。(6)正向工程:也称革新或改造,即应用软件工程的原理、概念、技术和方法来重新开发现有系统。22.软件的可维护性与哪些因素有关?在软件开发过程中应该采取哪些措施来提高软件产品的可维护性?答:决定软件可维护性的因素主要有可理解性、可测试性、可修改性、可移植性和可重用性。提高软件产品可维护性的措施有:在各个阶段着重对可维护性进行复审,并指明将来要改进和可能修改的部分;讨论软件的可移植性问题并考虑可能影响软件维护的系统界面;再设计和编码过程中应尽量使用可重用的软件构件等。23.面向对象设计应该遵循哪些规则?简述每条准则的内容,并说明

13、遵循每条准则的必要性。答:(1)模块化:面向对象的软件开发模式,支持了系统模块化的原则:对象就是模块。它把数据结构和操作(方法)紧密地结合在一起构成模块。(2)抽象:类实际上是一种抽象数据类型,它对外开放的公共接口构成了类的规格说明(协议),这种接口规定了外界可以使用的合法操作符,利用这些操作符可以对类的实例中包含的数据进行操作。(3)信息隐蔽:在面向对象方法中,信息隐蔽通过对象的封装性实现:类结构分离了类的接口与类的实现,从而支持了信息隐蔽。(4)弱耦合:弱的耦合可以提高软件模块的独立性,避免某一部分模块发生变化对其它模块有较大的影响。 (5)强内聚:内聚衡量一个模块内各个元素彼此结合的紧密

14、程度,也可以把内聚定义为设计使用的一个构件内的各个元素,对完成一个定义明确的目的所作出的贡献程度。(6)可重用:使用已经存在的类(包括开发环境提供的类库,及以往开发相似系统时创建的类),可以提高软件重用性,提高软件生产率。 24.计算最早时刻、最迟时刻、机动时间和工程共用时间及关键路径。 答:最早时刻(后右上)=最早时刻(前右上)+持续时间(中间箭头上)前向后推多条路径选最大 最迟时刻(前右下)=最迟时刻(后右下)-持续时间(中间箭头上)后向前推多条路径选最小 机动时间(中间箭头下)=最迟时刻(后右下)-最早时刻(前右上)-持续时间(中间箭头上) 工程共用时间为:23 关键路径:机动时间为“0

15、”的路径,此图为事件1-2-3-4-6-8-10-1125.什么是基线?为什么要建立基线?答:基线是已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。简言之,基线就是通过了正式复审的软件配置项。建立基线主要是由于下列三个方面:(1)重现性,指及时返回并重新生成软件系统和早些时候重新生成开发环境的能力。(2)可追踪性,建立项目工件的前后继承关系。目的是确保设计满足要求、代码实施设计以及用正确代码编译可执行文件。(3)报告,来源于两个基线内容之间的比较,它有助于调试并生成发布说明。建立基线后,需要标注所有组成构件和基线,以便能够对其进行识别和重新建立。26.简述CMM模型5个等级的特点?答:(1)初始级:是无序有时甚至混乱的,基本上没有健全的软件工程管理制度。其过程能力不可预测,软件过程不稳定,产品质量只能根据相关人员的个人能力来预测。(2)可重复级:软件机构建立了基本的软件工程管理制度,可以提出针对现行项目的约束条件。软件项目的策划和跟踪是稳定的,已为有纪律的管理过

温馨提示

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

评论

0/150

提交评论