1.软件危机的表现
答:(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件通常没有适当的文档资料。
(5)软件常常是不可维护的。
2.论述解决软件危机的途径
为了消除软件危机,首先应该对计算机软件有一个正确的认识。事实上,软件是程序、数据及相关文档的完整集合。
更重要的是,必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法。
什么是金融危机应该开发和使用更好的软件工具。
总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。
3.软件生命周期各个阶段的任务
答:(定义时期)确定要求解决的问题是什么;然后要进行可行性研究,决定该问题是否存在一个可行的解决办法;接下来应该进行需求分析,也就是深入具体地了解用户的要求,在所要开发的目标系统必须做什么这个问题上和用户取得完全一致的看法。
(开发时期)对软件进行设计(通常又分为概要设计和详细设计两个阶段),然后才能进入编写程序的阶段,程序编写完之后还必须经过大量的测试工作才能交付使用。
4.瀑布模型的优缺点
答:优点:可强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
    缺点:将本来非线性的软件开发过程人为地加以线性化,开发的产品只有到交付使用时才能和用户见面,对于用户的反馈意见只能从需求分析开始从头修改,加大了软件开发的工作量。
    总之,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。