博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件开发是工程吗?[2]
阅读量:2496 次
发布时间:2019-05-11

本文共 968 字,大约阅读时间需要 3 分钟。

软件工程设计师企图让软件设计文档像建筑物的设计图纸和说明一样,可以清晰描述软件的每一个具体的细节规格。其实这是一个可笑的悖论。如果文档有能力描述每个功能的最细节业务逻辑的需求的话,其实就是源代码(因为自然语言存在二义性,因此不存在描述严密逻辑的可能。而唯一能精确描述业务逻辑需求的就是源代码,所以描述精确的业务需求的过程其实就是写代码)。

  而建筑设计师的源代码就是标准设计严密的图纸,这个图纸是逻辑精确严密的,可以交给任何一个正规施工队来正确执行的,设计师和施工队可以不需要任何交流。同样,程序员写的代码也是逻辑精确严密的,可以交给任何一台电脑来正确执行的,程序员和电脑也不需要开会谈话。

  你能想象一个不会画标准建筑设计图纸的建筑设计师吗?同样,我也完全无法想象一个不会写代码的软件设计师。

  所以,建筑设计师在软件开发中就是程序员,而建筑施工队在软件开发中就是计算机。

  企图将程序员当做施工队来进行管理是不适合的,传统行业中对设计师的管理可能更加值得软件企业的学习。

  话说回来,软件工程学也发展了好多年,难道完全是错误的吗?没有一点应用价值吗?我的经验告诉我,存在必然是合理的。软件工程也有他的适用范围,但是我们要加以分析才能利用,首先要看对我们自己是否合适。

  我认为软件工程的确对某些项目是适合的,但是项目要满足以下四个特点:

   软件的规格目标是非常清晰确定的,开发过程中几乎不会发生更改的。

   实施过程中采用的所有技术都是非常熟悉的。
   对稳定性的需求大大超过开发效率的。
   可以不考虑成本的。
  有没有这样的项目?有,航天飞机的自动控制系统软件就是满足这样要求的工程。事实上,软件工程诞生的背景也正是美国军方的一些大型项目。写软件工程的一些大师级人物也正是这些项目的领导人。

  我们是不考虑事物的变化,采用刻舟求剑的方式来蒙蔽自己的双眼?还是仔细考察自己的特点,变通的选择真正适合自己的东西?

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639375/viewspace-151187/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12639375/viewspace-151187/

你可能感兴趣的文章
Pull Request流程
查看>>
函数式数据处理(一)--流
查看>>
java 流使用
查看>>
java 用流收集数据
查看>>
java并行流
查看>>
CompletableFuture 组合式异步编程
查看>>
mysql查询某一个字段是否包含中文字符
查看>>
Java中equals和==的区别
查看>>
JVM内存管理及GC机制
查看>>
Java:按值传递还是按引用传递详细解说
查看>>
Java中Synchronized的用法
查看>>
阻塞队列
查看>>
linux的基础知识
查看>>
接口技术原理
查看>>
PCB设计技巧与注意事项
查看>>
linux进程之间通讯常用信号
查看>>
main函数带参数
查看>>
PCB布线技巧
查看>>
关于PCB设计中过孔能否打在焊盘上的两种观点
查看>>
PCB反推理念
查看>>