软件工程理论知识

(1)什么是软件危机?其典型表现是是什么?为什么会出现软件危机?
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能运行的软件才具有的,实际上,几乎所有的软件都不同程度地存在这些问题。
典型表现:
①对软件开发成本和进度的估计不准确。实际成本比估计成本有可能高出一个数量级,实际进度比预期进度拖延几个月甚至几年的现象并不罕见。这种现象降低了软件开发组织的信誉。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量,从而不可避免地会引起用户的不满。
②用户对“已完成的"软件系统不满意的现象经常发生。软件开发人员常常在对用户要求只有模糊的了解,甚至对所要解决的问题还没有确切认识的情况下,就匆忙着手编写程序。软件开发人员和用户之间的信息交流往往很不充分,“闭门造车”必然导致最终的产品不符合用户的实际需要。
③软件产品的质量往往靠不住。软件可靠性和质量保证的确切的定量概念刚刚出现不久,软件质量保证技术(审查、复审、程序正确性证明和测试)还没有坚持不懈地应用到软件开发的全过程中,这些都导致软件产品发生质量问题。
④软件常常是不可维护的。很多程序中的错误是非常难改正的,实际上不可能使这些程序适应新的硬件环境,也不能根据用户的需要在原有程序中增加一些新的功能。“可重用的软件”还是一-个没有完全做到的、正在努力追求的目标,人们仍然在重复开发类似的或基本类似的软件。
⑤软件通常没有适当的文档资料。计算机软件不仅仅是程序,还应该有一整套文档资料。
⑥软件成本在计算机系统总成本中所占的比例逐年上升。由于微电子学技术的进步和生产自动化程度的不断提高,硬件成本逐年下降,然而软件开发需要大量人力,软件成本随着通货膨胀以及软件规模和数量的不断扩大而持续上升。
⑦软件开发跟不上计算机应用迅速普及深入的趋势。软件产品“供不应求”的现象使人类不能充分利用现代计算机硬件提供的巨大潜力。
出现软件危机原因:
(1)客观原因
①软件是计算机系统中的逻辑部件而不是物理部件。
②软件规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
(2)主观原因
①对软件开发和维护有不少糊涂观念,采用了错误的方法和技术。
②存在与软件开发和维护有关的许多错误认识和做法。
③对用户要求没有完整准确的认识就匆忙着手编写程序。
④一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期。
⑤一个软件产品必须由一个完整的配置组成,主要包括程序、文档和数据等成分。
⑥在软件开发的不同阶段进行修改需要付出的代价是很不相同的。
⑦轻视维护是一个最大的错误。
(2)什么是软件工程?产生软件危机的原因
软件工程是是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
(1)客观原因
①软件是计算机系统中的逻辑部件而不是物理部件。
②软件规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
(2)主观原因
①对软件开发和维护有不少糊涂观念,采用了错误的方法和技术。
②存在与软件开发和维护有关的许多错误认识和做法。
③对用户要求没有完整准确的认识就匆忙着手编写程序。
④一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期。
⑤一个软件产品必须由-一个完整的配置组成,主要包括程序、文档和数据等成分。
⑥在软件开发的不同阶段进行修改需要付出的代价是很不相同的。
⑦轻视维护是一个最大的错误。
(3)软件生命周期都包括那几个阶段。
软件生命周期由软件定义、软件开发和运行维护(也称为软件维护) 3个时期组成,每个时期又进一步划分成若干个阶段。
组成
(1)软件定义
软件定义时期通常进一- 步划分成3个阶段,即问题定义、可行性研究和需求分析。这个时期的总任务是:①确定软件开发工程必须完成的总目标;②确定工程的可行性;③导出实现工程目标应该采用的策略及系统必须完成的功能;④估计完成该项工程需要的资源和成本,并且制定工程进度表。
(2)软件开发
通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。
(3)运行和维护
软件运行和维护的主要任务是使软件持久地满足用户的需要。出现下述三种情况的时候需要进行维护:①当软件在使用过程中发现错误时应该加以改正:②当环境改变时应该修改软件以适应新的环境;③当用户有新要求时应该及时改进软件以满足用户的新需要。
(4)什么是软件生命周期模型?
软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。
(5)在可行性研究阶段,主要从哪些因素考虑每种解法的可行性?
对每种可能的解决方案都应该仔细研究它的可行性,通常,至少从下述三个方面研究每种解决方案的可行性。
①技术可行性:使用现有的技术能否实现这个系统。
②经济可行性:这个系统的经济效益能否超过它的开发成本。
③操作可行性:这个系统的操作方式在该客户组织内是否行得通。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值