软件工程导论(第六版)张海藩-牟永敏课后习题答案 联系客服

发布时间 : 星期五 文章软件工程导论(第六版)张海藩-牟永敏课后习题答案更新完毕开始阅读2fdaefa50a1c59eef8c75fbfc77da26924c596ec

1/K(Et/100000-100/100000)=0.4 1/K (Et/100000-300/100000)=2

计算可得:K=1000,Et=350即程序中的错误总数为350。 (2)当MTTF=10h时,有 1/K (350/100000- Ec/100000)=10

计算可得:Ec=340.按前两个月测试改错的进度估算,还进行2个月的集成测试。

(3)MTTF和测试时间τ之间的函数关系曲线如下:

MTTF(h)20.412 τ(月)

第十题

10、在测试一个长度为24000条指令的程序时,第一个月由甲、乙两名测试员各自独立测试这个程序。经一个月测试后,甲发现并改正20个错误,使MTTF达到10h。与此同时,乙发现24个错误,其中6个甲也发现了。以后由甲一个人继续测试这个程序。问:

(1)刚开始测试时程序中总共有多少个潜在的错误?

(2)为使MTTF达到60h,必须再改正多少个错误?还需多长测试时间? (3)画出MTTF与集成测试时间τ之间的函数关系曲线。 答:(1)根据公式:B0=B2B1/bc,可得:

B0=20*24/6=80,即刚开始测试时程序中总共有80个错误。 (2)根据估算平均无故障时间的公式可得: 1/K(80/24000-20/24000)=10

1/K(80/24000- Ec/24000)=60 计算可得:K=40,Ec=70

即还需要改正50个错误。根据甲的改正进度,估计还需要3个月。 (3)MTTF与集成测试时间τ之间的函数关系曲线如下:

MTTF(h)601013.5 τ(月)

第八章

一.答:软件的可维护性与哪些因素有关?在软件开发过程中应该采取哪些措施来提高软件产品的可维护性?

答:(1)、可理解性 (2)、可预测性 (3)、可修改性 (4)、可移植性 (5)、可重用性

在每个阶段结束前的技术审查和管理复查中,应该着重对可维护性进行复审过程中,应该对将来要改进的部分和可能要改的部分加以注意指明,应该讨论软件的可移植性问题,考虑可能影响软件维护的系统界面。在设计和编码过程中应该尽量使用可重用的软件构件,每个测试步骤都可以暗示在软件正式交付使用之前,程序中可能需要做预防性维护的部分。在完成每项维护工作之后,都应该对软件维护本身仔细认真地复审。

二:答:应该选取a 和 c 因为文档是影响软件可维护性的决定因素。因此,文档甚至比可执行的程序代码更重要,文档必须和程序代码同时维护,只有和程序代码完全一致才能是真正有价值的代码。

文档修改:针对系统中当前正在修改的那些部分文档建立完整的文档。 代码重构:首先用重构工具分析源代码,标注出和结构化程序设计概念相违背的部分。然后重构有问题的代码(此项可以工作可自动化进行)。最后,复审和测试生成的重构代码(以保证没有引入异常)并更新代码文档。

三: 答:对储蓄系统:一般大型软件的维护成本远远高于开发成本若干倍,所以在设计时就应该考虑到软件维护成本,而且在开发过程中应该使用标准的程序设计语言和标准的操作系统接口,可以大大提高软件的可维护性,也可以减少软件存在的错误;

对机票预订系统:往往人一多系统瘫痪几率就大,在开发人员不在场的情况下,很容易出现系统错误,维护软件也是很困难的,也会给很多人带来不便,所以,在设计过程中应该严格科学的管理规划还有合理设计模块,是各个模块的独立性越高,这样对软件的改进越方便,也便于快速纠错;

对患者监护系统:应该要考虑它的完善性和预防性,要能满足用户在使用过程中的增加和修改工作,还要为了改善未来的可维护性或可靠性而修改软件。更要考虑系统数据的隐秘及安全,随时备份。

第13章

1.研究本书2.4.2小杰所述的订货系统,要求: (1)用代码行技术估算本系统的规模; (2)用功能点技术估算本系统的规模;

(3)用静态单变量模型估算开发本系统所需的工作量; (4)假设由一个人开发本系统,试制定进度计划; (5)假设由两个人开发本系统,试制定进度计划;(不会做) 2.研究本书习题2第2题中描述的储蓄系统,要求: (1)用代码行技术估算本系统的规模; (2)用功能点技术估算本系统的规模;

(3)用静态单变量模型估算开发本系统所需的工作量; (4)假设由一个人开发本系统,试制定进度计划; (5)假设由两个人开发本系统,试制定进度计划;(不会做)

3.下面叙述对一个计算机辅助设计(CAD)软件的需求:该CAD软件接受由工程师提供的二维或三维几何图形数据。工程师通过用户界面与CAD系统交互并控制它,该用户界面应该表现出良好的人机界面设计特征。几何图形数据及其他支持信息都保存在一个CAD数据库中。开发必要的分析、设计模块,以产生所需要的设计结果,这些输出将显示在各种不同的图形设备上。应该适当地设计软件,以便与外部设备交互并控制它们。所用的外部设备包括鼠标、数字化扫描仪和激光打印机。要求:

(1)进一步精化上述要求,把CAD软件的功能分解成若干个子功能; (2)用代码行技术估算每个子功能的规模; (3)用功能点技术估算每个子功能的规模;

(4)从历史数据得知,开发这类系统的平均生产率是620LOC/PM,如果软件工程师的平均月工资是8000元,请估算开发本系统的工作量和成本。 (5)如果从历史数据得知,开发这类系统的平均生产率是6.5FP/PM,请估算开发本系统的工作量和成本

答: (1)习题中仅对需求做出了粗略描述,每项都都应该进一步扩展,以提供细节需求和定量约束。例如,在开始估算软件规模之前,需要确定“良好的人机界面设计特征”的具体含义,以及对“CAD数据库”的规模和复杂度的具体需求。

经过对需求的进一步精化,分解出软件的下述7 个主要的子功能: ? 用户界面及控制机制; ? 二维几何图形分析; ? 三维几何图形分析; ? 数据库管理;

? 计算机图形显示机制; ? 外部设备控制; ? 设计分析模块。

(2)为了用代码行技术估算软件规模,应该针对每个子功能都分别估计出下述3 个值:乐观值(即最小规模a),悲观值(即最大规模b)和可能值(即最可能规模m)。分别算出这3种规模的平均值,然后用下式的加权平均法计算每个子功能规模,结果示于表10.4

表10.4 代码行技术的估算表

功能 乐观值 可能值 悲观值 估计值 用户界面及控制机制 1500 2200 3500 2300 二维几何图形分析 3800 5400 6400 5300 三维几何图形分析 4600 6900 8600 6800 数据库管理 1850 3200 5450 3350