02-软件工程|软件危机的产生

1,087 阅读7分钟

前言

《软件工程》是一本介绍软件工程方法、软件过程,以及软件过程用到的工程方法的一门课。这是每个互联网行业的工作者的一门必修课。无论您是需求师、TPM、开发者或是测试工程师......
掌握科学的软件工程方法,会让我们在工作过程中如虎添翼,更科学可靠的工作!!!
因此,便有了我的软件工程专栏这样的读书笔记了。欢迎感兴趣的朋友跟我探讨相关的要点。
本文属于该系列文章的第二节,简单介绍一下软件危机

概述

软件产业在发展的过程中,会遇到新的开发场景、新的设备环境等诸多新的挑战,而由此诞生了软件危机。 本文主要介绍软件危机发生的背景和事迹为后续针对软件危机提出的软件工程方法的介绍做铺垫,总体篇幅如下:
一、什么是软件危机
1.1 软件危机案例
1.2 软件成本日益增加
1.3 软件技术进步 < 需求增长
二、产生软件危机的原因
2.1 消除软件危机的途径:软件工程!
推荐阅读
相关系列文章(42篇)

一、什么是软件危机

定义:在计算机软件的开发和维护过程中所遇到的一系列严重问题(效率和质量下降) 1968年NATO会议(Garmisch, Germany)提出“软件危机”

  • 项目超出预算
  • 项目超过计划完成时间
  • 软件运行效率很低
  • 软件质量差
  • 软件通常不符合要求
  • 项目难以管理并且代码难以维护
  • 软件不能交付

1.1 软件危机案例

软件危机案例:OS/360
1961-1964年,IBM公司的 OS/360, 共约100万条指令,花费了5000个人 年,开发总投资5亿美元,达到当时 美国研究原子弹的曼哈顿计划投资20 亿美元的1/4,而结果却令人沮丧, 错误多达2000个以上,系统根本无法 正常运行。 软件危机案例:美国火箭爆炸\

  • 谣言:1963年在美国,由于一个 FORTRAN程序的循环语句“DO 5 I=1,3” 误写为“DO 5 I=1.3”,“,”被误写为 “.”,一点之差导致飞往火星的火箭爆炸, 造成了1000万美元的损失。\

  • 实际情况:根据NASA的报告, 是1962年的 飞往金星的宇宙飞船天线发生故障, 致使地 面无法控制火箭, 于是火箭上的计算机开始 控制火箭,然而在导航系统软件中又存在 一个bug(打印错误, 在平滑半径导数表达 式"R-dot-bar sub n"中漏掉了代表平滑的 “bar”),致使火箭迅速偏离航道。于是 发射场的安全官员下令摧毁飞船。 软件危机案例:美国银行信托软件系统\

  • 美国银行1982年进入信托商业领域,并 规划发展信托软件系统。

  • 项目原订预算2千万美元,开发时程9个 月,预计于1984年12月31日以前完成, 后来至1987年3月都未能完成该系统,期 间已投入6千万美元。

  • 美国银行最终因为此系统不稳定而不得 不放弃,并将340亿美元的信托账户转移 出去,并失去了6亿美元的信托生意商机

1.2 软件成本日益增加

1.3 软件技术进步 < 需求增长

二、产生软件危机的原因

客观:软件本身特点

  • 逻辑部件
  • 规模庞大

主观:不正确的开发方法

  • 忽视需求分析
  • 错误认为:软件开发= 程序编写
  • 轻视软件维护

2.1 消除软件危机的途径:软件工程!

推荐阅读

本次的推荐阅读属于其它博主的作品,也是系列性文章。核心概念和我这边推出的系列性文章相差无几,但博文作者阅读的书本与我不同,因此介绍相关知识点用到的陈述方式方法有些不同。

推荐阅读的文章可以作为补充性阅读。

相关系列文章(42篇)