软件工程学2015年下半年第一次作业 联系客服

发布时间 : 星期日 文章软件工程学2015年下半年第一次作业更新完毕开始阅读90adf6f9804d2b160a4ec029

正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷;适应性维护是要在软件使用过程中数据环境发生变化或处理环境发生变化时修改软件以适应这种变化;完善性维护是用户和数据处理人员使用软件过程中提出改进现有功能、增加新的功能,以及改善总体性能的要求后,修改软件以把这些要求纳入到软件之中。

由这些原因引起折维护活动可以归为以下几类:预防性维护是为了提高软件的可维护性、可靠性等,事先采用先进的软件工程方法对面要维护的软件或软件中的某一部分(重新)进行设计、编制和测试,为以后进一步改进软件打下良好的基础。

软件维护的过程如图7.19所示。第一步是先确认维护要求。这需要维护人员与用户反复协商,弄清错误概况及对业务的影响大小,以及用户希望做什么样的修改,并把这些情况存入故障数据库。然后,由维护组织管理员确认维护类型。

对于改正维护申请,从评价错误的严重性开始工作。如果存在严重的错误,则必须安排人员,在系统监督员的指导下,进行问题 分析,寻找错误发生的原因,进行“救火”性的紧急维护;对于不严重的错误,可根据任务、 机时情况,视轻重缓急,进行排队,统一安排时间。对于适应性维护和完善性维护申请,需要先确定每项申请的优先次序。若某项早请的优先级非常高,就可立即开始维工作,否则,维护申请和其他的开发工作一样,进行排队,统一安排时间。并不能所有的完善性维护申请都必须承担,因

为进行完善性维护等于是做二次开发,工作量大,所以需要根据商业需要、可利用资源的情况、目前和将来软件的发展向以及其他考虑,决定是否承担。

尽管维护申请的类型不同,但都要进行同样的技术工作。这此工作有修改软件的需求说明,修改软件设计、设计评审、对源程做必要的修改、单元测试、集成测试(回归测试)、确认测试、软件配置评审等。在每次软件维护任务完成后,最好进行一次情况评审,对以下问题做一总结:

(1)在目前情况下,设计、编码、测试中的哪一方面可以改进? (2)哪些维护资源应该有但没有?

(3)工作中主要的或次要的障碍是什么?

(4)从维护申请的类型来看是否应当有预防性维护? 情况评审对将来的维护工作如何进行会产生重要的影响,并可为软件机构的效管理提供重要的反馈信息。

3. 软件复杂性有哪几类?软件复杂性度量模型应遵循哪些则?

答:

K.Magel从6个方面描述软件的复杂性: (1)理解程序的难度。

(2)改错及维护程序的难度。 (3)向他人解释程序的难度。 (4)按指定方法修改程序的难度。 (5)根据设计文档编写程序的工作量。 (6)执行程序时需要资源的程度。

软件复杂性度量模型应遵循的基本原则:

(1)软件复杂性与程序大小的关系不是线性的。 (2)控制结构复杂的程序较复杂。 (3)数据结构复杂的程序较复杂。 (4)转向语句使用不当的程序较复杂。

(5)循环结构比选择结构复杂,选择结构又比顺序结构复杂。

(6)语句、数据、子程序和模块在程序中的次序对软件复杂性都有影响。 (7)全程变量、非局部变量较多时程序较复杂。 (8)参数按地址传递比按值传递更复杂。 (9)函数副作用比显式参数传递更难以琢磨。

(10)具有不同作用的变量共用一个名字时较难理解。 (11)模块间或过程联系密切的程序较复杂。 (12)嵌套深度越深程序越复杂。 最典型的两种程序复杂性度量的方法中,McCabe环路复杂性度量就是针对基本原则(2)制定的度量模型。Halstead软件科学则是针对程序中操作符和操作数的出现频度而制定的度量模型。

4. 简述面向对象OMT方法的分析模型,描述面向对象分析的大体过程。

答:

OMT是一种软件工程方法学,支持整个软件生存周期。它覆盖了问题构成、分析、设计和实现等阶段。统分析阶段涉及对应用领域的理解及问题域建模。分析阶段的输入是问

题陈述说明要解决的问题并提供了对假想系统的概念总览同用户不断对话以及对客观世界背景知识的了解作为分析的附加输入分析的结果是一个形式化模型该模型概括了系统的3个本质因素:对象及对象之间的关系、动态的控制流以及带有约束的功能数据变换。系统设计阶段确定整个系统的体系结构。系统可由多个子系统组成,把对象组织成聚集并发任务而反映并发性对动态模型中处理的相互通信、数据存储及实现要制定全面的策略。在权衡设计方案时要建立优先顺序。对象设计阶段要精心考虑和细化分析模型然后优化地生成一个实际设计。对象设计的重点从应用域概念转到计算机概念上来应选择基本算法来实现系统中各主要功能。OMT方法学是组织开发的一种过程。这种过程是建立在一些协调技术之上的OMT方法的基础是开发系统的3个模型再细化这3种模型并优化以构成设计。对象模型由系统中的对象及其关系组成动态模型描述系统中对象对事件的响应及对象间的相互作用功能模型则确定对象值上的各种变换及变换上的约束。

5. 软件配置管理的任务是什么?描述作为基线的软件配置项(SCI)的修改过程模型。

答:

软件配置管理的任务:标识、版本控制、变化控制、配置审计及报告。 作为基线的软件配置项(SCI)的修改过程模型:

四、设被测试的程序段为:

begin

S1;

if (x=0) and ( y>2 ) then S2; else

If ( x < 1 ) or ( y=1 ) then S3; S4;

end

可供选择的测试数据组为:

X y Ⅰ 0 3 Ⅱ 1 2 Ⅲ -1 2 Ⅳ 3 1

找出实现 (1)条件覆盖 (2)路径覆盖要至少采用的数据组。

答:1、条件覆盖:每个语句至少执行一次,并且使判定表达式中的每个条件都取到各种可能的结果。

第一个判定表达式可能的结果:x=0, x<>0,y>2,y<=2 第二个判定表达式可能的结果:x<1,x>=1,y=1,y<>1; 测试数据组:I x=0, y>2

II x<>0,y<=2,x>=1,y<>1 III x<>0,y<=2,x<1,y<>1 IV x<>0,y<=2,x>=1,y=1

2、路径覆盖:程序中的每条可能路径都至少执行一次。 测试数据组:I ,II,III

五、图4.9是两个程序流程图,试分别用N—S图和PAD表示,并计算它们的McCabe复杂性度量。

答:

对应的N—S图如下所示