背景
软件工程(Software Engineering)这个概念的正式提出是在 1969 年,在人们经历过一系列软件危机(Software Crisis)之后的 NATO 会议上。
当时人们遇到的软件危机包括:
- 项目运行超过预算;
- 项目运行超过时间;
- 软件质量低劣;
- 软件通常不符合需求;
- 项目无法管理且代码难以维护。
下面举三个案例呈现当时的软件危机。
其一是 IBM 的 OS/360 系统,当决定外部技术说明文档的制定人员时,Fred Brooks 错误地给与了程序实现团队而不是体系结构团队,导致最后项目增加了一年的调试时间并多出了几百万美元的投入。
其二是美国银行信托软件,当时计划预算 2 千万,时长 9 个月;但实际上投入了 6 千万,时长 4 年,仍未完成,最终放弃。
其三是 AECL 公司开发的 Therac-25 放射性疗法机器,因竞态条件偶然发射高于正常剂量的辐射,从而导致患者死亡或重伤。
定义
在软件危机的背景之下,1969 年的 NATO 会议提出了软件工程的概念。
软件工程是用来建立和使用合理的工程原则,以经济地获取可靠的,且在真实机器上可高效工作的软件。
随后 IEEE 在 1993 年给出了更加综合性的定义,即
(1) 将系统化的、规范的、可量化的方法应用到软件的开发、运行及维护中,即将工程化方法应用于软件;
(2) 在 (1) 中所述方法的研究。
软件生命周期
软件工程有两面,一面是 “软件”,一面是 “工程”。软件是软件工程中最重要的制品。我们依照软件的生命周期,在每个时期实施不同的工程化的方法使得软件可以按需求运作。
<

最低0.47元/天 解锁文章
2995

被折叠的 条评论
为什么被折叠?



