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 本质原因、表现,述说克服软件危机的方法
软件危机的根源是软件的大量需求与软件生产力效率之间的矛盾,和软件系统的复杂性与软件开发方法之间的矛盾。
软件危机具体表现为以下几个方面:
- 项目运行超出预算
- 项目运行超出时间
- 软件质量低落
- 软件通常不匹配需求
- 项目无法管理且代码难以维护。
软件危机的矛盾是不可解决的,但是可以缓解矛盾。想要克服软件危机,应该正确认识计算机软件的内涵,采用工程项目管理方法实施软件开发的组织管理,采用成熟的软件开发技术、方法和工具。
3. 软件生命周期
软件开发的生命周期是在开发和构建系统时应该遵循的步骤,常包含软件的需求定义与分析、设计、实现、测试、交付与维护等阶段,常见的有瀑布模型、螺旋模型、敏捷模型等。
瀑布模型可以划分为