1. 软件工程的定义
Software engineering is “(1) the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software,” and “(2) the study of approaches as in (1).” –– IEEE Standard 610.12
软件工程是应用系统的,规范的,可量化的方法来开发,操作和维护软件,即软件工程的应用,以及软件工程中的方法研究
2. 解释导致 software crisis 本质原因、表现,述说克服软件危机的方法
software crisis的本质原因是:计算机计算能力的提高远远超过了程序员有效利用这些资源的能力。可以再细分为:
- 计算能力和无法解决的问题的复杂性快速增长
- 随着软件复杂性的增长,现有方法无法解决出现的软件问题
表现:
- 项目支出超过预算
- 项目超时
- 软件运行效率非常低
- 软件质量非常低
- 软件经常无法满足需求
- 项目无法管理,代码无法维护
- 软件从未交付
克服软件危机的方法:
- 应该推广使用在实践总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的错误观念和做法。
- 应该开发和使用更好的软件工具。正如机械工具可以“放大”人类体力一样,软件工具可以“放大”人类的智力。在软件开发的每个阶段都有许多烦琐重复的工作需要完成,在适当的软件工具辅助下,开发人员可以把这类工作做得既快又好。
3. 软件生命周期
软件生命周期是指软件的产生直到成熟的全部过程。
生命周期是事物发展的客观规律,软件同样存在生命周期。早期的软件生命周期往往是说"软件从计划、需求开始,经历分析设计、实现、部署、维护,