- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《软件工程导论》课后习题答案
第一章 软件工程概论
1-1
1.什么是软件危机?
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面:
用户对开发出的软件很难满意。
软件产品的质量往往靠不住。
一般软件很难维护。
软件生产效率很低。
软件开发成本越来越大。
软件成本与开发进度难以估计。
软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.软件危机有那些典型表现?
对软件开发成本和进度的估计常常很不准确。
用户对 “已完成的 ”软件系统不满意的现象经常发生。
软件产品的质量往往靠不住。
软件常常是不可维护的。
软件通常没有适当的文档资料。
软件成本在计算机系统总成本中所占的比例逐年上升。
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
3.为什么会产生软件危机?
开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
尤其是随着软件规模越来越大 , 复杂程度越来越高 , 原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突
出,技术的发展已经远远不能适应社会需求。
4.怎样克服软件危机?
充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原
理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经
验教训。在开发软件的过程中努力作到良好的组织, 严格的管理, 相互友好的协作。
推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施 ( 方法和工具 ) ,又要有必要的组织管理措
施。
1-3 、
1-5 、根据历史数据可以做出如下的假设 :
对 计 算 机 存 储 容 量 的 需 求 大 致 按 下 面 公 式 描 述 的 趋 势 逐 年 增 加 :
M=4080e0.28(Y-1960)
存储器的价格按下面公式描述的趋势逐年下降: P1=0.3× 0.72Y-1974( 美分 / 位)
如果计算机字长为 16 位,则存储器价格下降的趋势为: P2=0.048×0.72Y-1974( 美
/ 字 )
在上列公式中 Y代表年份, M是存储容量 ( 字数 ) , P1和 P2 代表价格。
基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算:
(1)
在 1985 年对计算机存储容量的需求估计是多少 ?如果字长为
16 位,这个存储
器的价格是多少 ?
(2)
假设在 1985 年一名程序员每天可开发出 10 条指令,程序员的平均工资是每月
4000 美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。
(3)
假设在 1995 年存储器字长为 32 位,一名程序员每天可开发出
30 条指令,程序
员的月平均工资为 6000 美元,重复 (1) 、(2) 题。
1-6 什么是软件过程 ?它与软件工程方法学有何关系 ?
软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架, 它规定了完成各项
任务的工作步骤。
软件过程定义了运用技术方法的顺序、 应该交付的文档资料、 为保证软件质量和协调软件变
化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。
软件过程是软件工程方法学的 3 个重要组成部分之一。
构成软件项目的最终产品:
应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?
软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
6.软件生存周期为什么划分成阶段?
任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。
可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。
使软件开发的全过程以一种有条不紊的方式进行,保证软件的质量,特别是提高了软件的可维护性。
7.应该怎样来划分阶段?
每一个阶段的任务尽可能独立;
同一阶段内的任务性质尽可能相同;
每一个阶段任务的开始和结束有严格的标准。
8.软件开发模型有几种?它们的开发方法有可特点?
软件开发模型有瀑布型、渐增型和变换型。
瀑布型开发方法是按照软件生存周期的划分依次实施,每一个阶段有明确规定的任务
文档评论(0)