跳到主要内容

软件工程的成熟度

软件工程和化学工程有什么相似之处?​

  • 相似性来源: 作者向北卡罗来纳州大学化学系主任 Jim Ferrell 请教化学工程的历史及其与化学的区别;
  • 关键相似点一: 软件工程与化学工程一样, 与如何扩展到工业级别处理过程的非线性问题有关;
  • 关键相似点二: 和工业工程类似, 它总是被人类行为的复杂性所困扰;
  • 作者判断: "27 岁的"软件工程并不是没有希望的, 而仅仅是不够成熟, 就像 1945 年的化学工程;

化学工程经历了哪些阶段?​

  • 起点: 1918 年 Arthur D. Little 博士在麻省理工学院建立第一个化学工程系, 目的是发现、发展和讲授所有过程的共有技术基础;
  • 演进阶梯: 经验法则 → 经验图表 → 设计特殊零件的公式 → 单个导管中热传导、质量转移和动量转移的模型;
  • 二战后的跃迁: 化学工程师才真正提出闭环互联的连续流系统;
  • 对照含义: 软件工程目前大致处于"经验法则与经验图表"之间, 还没有稳定的通用模型;

软件工程要解决哪些特殊问题?​

  • 问题一: 如何把一系列程序设计和构建成系统;
  • 问题二: 如何把程序或系统设计成健壮的、经过测试的、文档化的、可支持的产品;
  • 问题三: 如何维持对大量复杂性的控制;
  • 关系: 这三个问题正是第 1 章"焦油坑"提出的问题, 也解释了为什么软件工程不会因为工具进步而消失;

作者对未来的判断是什么?​

  • 焦油坑长期存在: 软件工程的焦油坑在将来很长一段时间内会继续使人们举步维艰, 无法自拔;
  • 复杂性上限: 软件系统可能是人类创造中最错综复杂的事物, 只能期待人们在力所能及或刚刚超越力所能及的范围内进行探索和尝试;
  • 需要的条件:
    • 进行持续的发展;
    • 学习使用更大的要素来开发;
    • 新工具的最佳使用;
    • 经论证的管理方法的最佳应用;
    • 良好判断的自由发挥;
    • 以及能够使我们认识到自己不足和容易犯错的谦卑;