好文档 - 专业文书写作范文服务资料分享网站

软件工程导论(第六版)课后习题答案

天下 分享 时间: 加入收藏 我要投稿 点赞

软件工程导论(第六版)课后习 题答案

第一章

一、 什么是软件危机?它有哪些典型表现?为什么会岀现软件危机?

软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日 益增长的需求;如何维护数量不断增长的已有软件。 软件危机的典型表现:

(1) 对软件开发成本和进度的估计常常很不准确。常常岀现实际成本比估算成本高岀一个数量级、实际进度比计划进度拖延几个月甚 至几年的现象。而为了赶

进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用 户不满。

(2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。

(4)软件常常是不可维护的。

(5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。 (6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。

软件危机岀现的原因:

(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。

二、 假设自己是一家软件公司的总工程师,当把图 1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人 不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个 人怎么能在设计阶段清除它呢? ”应该怎么反驳他?

答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期, 软件配置的许多成分已经完成,弓I入一个变动要对所有已完成的配置成分都做相应的修改,

不仅工作量大,而且逻辑上也更复杂,因此付岀的代价剧增;在软件“已经完成”是在引入变动,当然付岀的代价更高。一个故障是 代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是 整体构架的错误。

三、 什么是软件工程?它有哪些本质特征?怎样用软件工程消除软件危机?

1993年IEEE的定义:软件工程是:①

件;②研究①中提到的途径。 软件工程的本质特征:

把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软

(1)

课题是分解问题,控制复杂性

常变化的,开发过程中必须考虑软件将来可能的变化

软件工程关注于大型程序(软件系统)的构造 (2)软件工程的中心

(3)软件是经

(4) 开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具 (5) 和谐地合作是开发软件的关键

(6)软件必须有效地支持它的用户

(完成一些工作)消除软件危机的途径:

(7)在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人 (1) 对计算机软件有一个正确的认识

(软件工程序)

(2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工 程项目 (3) 推广使用在实践中总结出来的开发软件的成功技术和方法 (4) 开发和使用更好的软件工具

四、 简述结构化范型和面向对象范型的要点,并分析他们的优缺点。

1. 传统方法学:也称为生命周期方法学或结构化范型。 优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而

且比较简单,便于不同人员分工协作, 模糊的或会承受时

从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是

间而变化的时候,开发岀的软件往往不成功;而且维护起来仍然很困难。

促进了软件重用。

2. 面向对象方法学:优点:降低了软件产品的复杂性; 提高了软件的可理解性; 简化了软件的开发和维护工作;

五、 1-5根据历史数据可以做岀如下的假设

对计算机存储容量的需求大致按下面公式描述的趋势逐年增加: 存储器的价格按下面公式描述的趋势逐年下降:

M=4080e0.28(Y-1960)

P1=0.3 X 0.72Y-1974(美分/位)

P2=0.048 X 0.72Y-1974(美元/字)

如果计算机字长为16位,则存储器价格下降的趋势为:

在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。 基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算:

(1) 在1985年对计算机存储容虽的需求估计是多少?如果字长为16位,这个存储器的价格是多少?

存储容量需求 M=4080e0. 28 (1985-1960) =4474263 (字) 存储器价格 P=0. 048*0. 72 (1985-1974) *4474263=5789 興元

(2) 假设在1985年一名程序员每夭可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存 储器

装满程序所需用的成本。

需要工作§ 4474263/200=22371 (人/月) 指令成本 22371*4000=39484000 美元

(3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。 需求

估计 M=4080e0. 28 (1995-1960) =73577679 字

存储器价格 0. 003*32*1 72 (1995-1974) *73577679=7127 美元 工作量 73577679/600=122629(人/月) 成本 122629*6000=735776790 美元

六、 什么是软件过程?它与软件工程方法学有何关系?

软件过程是为了开发出高质童的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。 软件过程是软件工程方法学的3个重要组成部分之一。

七、 什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的使用范围。 软件生命周期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。

瀑布模型 优点:它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。虽然 有不少缺陷但比在软件开发中随意的状态要好得多。

缺点:(1)实际的项目大部分情况难以按照该模型给出的顺序进行,而且这种模型的迭代是间接的,这很容易由微小的变化而造成大 的混乱。

(2) 经常情况下客户难以表达真正的需求,而这种模型却要求如此,这种模型是不欢迎具有二义性问题存在的。

(3) 客户要等到开发周期的晚期才能看到程序运行的测试版本,而在这时发现大的错误时,可能引起客户的惊慌,而后果也可能是灾 难

性的。 快速原型模型

优点:使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。

缺点:产品的先天性不足,因为开发者常常需要做实现上的折中,可能采用不合适的操作系统或程序设计语言,以使原型能够尽快工 作。 增fit模型

优点:(1)人员分配灵活,刚开始不用投入大就人力资源,当核心产品很受欢迎时,可增加人力实现下一个增童。

(2)当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客 户起

到镇静剂的作用。

缺点:(1)至始至终开发者和客户纠缠在一起,宜到完全版本出来。

(2) 适合于软件需求不明确、设计方案有一定风险的软件项目。

该模型具有一定的市场。 螺旋模型

优点:对于大型系统及软件的开发,这种模型是一个很好的方法。开发者和客户能够较好地对待和理解每一个演化级别上的风险。 缺点:(1)需要相当的风险分析评估的专门技术,且成功依赖于这种技术。

(2) 很明显一个大的没有被发现的风险问题,将会导致问题的发生,可能导致演化 (3) 这种模型相对比较新,应用不广泛,其功效需要进一步的验证。

的方法失去控制。

该模型适合于大型软件的开发 八、为什么说喷泉模型较好的体现了面向对象软件开发过程无缝和迭代的特性?

软件工程导论(第六版)课后习题答案

软件工程导论(第六版)课后习题答案第一章一、什么是软件危机?它有哪些典型表现?为什么会岀现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。软件危机的典型表现:(1)对软件开发成本和进度的估计常常很
推荐度:
点击下载文档文档为doc格式
7qe5401wj99lpyv23wwc1symv1joq1007ar
领取福利

微信扫码领取福利

微信扫码分享