1、什么是软件危机?它有哪些典型表现?为什么出现软件危机?
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:
(1)对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2)用户对已完成的软件不满意的现象时有发生。 (3)软件产品的质量往往是靠不住的。 (4)软件常常是 软件工程导论(第六版)课后习题答案_文库下载不可维护的。 (5)软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。 (6)软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7)开发生产率提高的速度远跟不上计算机应用普及的需求。 软件危机出现的原因: (1)来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3)供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。
2、什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?
1993年IEEE的定义:软件工程是:① 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;② 研究①中提到的途径。 软件工程的本质特征: (1)软件工程关注于大型程序(软件系统)的构造; (2)软件工程的中心课题是分解问题,控制复杂性; (3)软件是经常变化的,开发过程中必须考虑软件将来可能的变化; (4)开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具; (5)和谐地合作是开发软件的关键; (6)软件必须有效地支持它的用户; (7)在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人(完成一些工作)消除软件危机的。
途径: (1)对计算机软件有一个正确的认识(软件≠程序); (2)必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目; (3)推广使用在实践中总结出来的开发软件的成功技术和方法 ; (4)开发和使用更好的软件工具。
3、什么是软件过程?它与软件工程方法学有何关系?
软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。 软件过程是软件工程方法学的3个重要组成部分之一。