大家好!软件工程
工程,就是在一定资源和时间的限制下,完成一项有确定要求的任务。而判断此任务是否达到要求的评判标准,也是在工程开始之前确定好的。
软件工程就是最终任务是一个软件的工程,它与一个建筑工程其实没有太大的差别。但是软件工程为什么如此之难,以至于有人要惊呼“软件危机”呢?源头还是在人。软件工程太需要一些有行业积累的设计人员。
建筑工程由于是实在的工程,一旦方案选定,材料到位后,可以改动的部分就不多了。试想一栋原计划20层的工程已经盖到第15层,突然用户听说有人研制出了一种新建筑材料,在同样地基上可以支持两倍高的楼层,要求把工程改为40层。能改么?不容易吧。
而软件工程由于最终的任务是一个虚拟无形的软件,就经常被捏来捏去,最后捏成一个变形虫。每次“变形”,最痛苦的就是工程人员。
造成这种痛苦的有几个原因:
1. 设计时没有预见到的合理变化 (需要经验)
在某些行业,某些系统运行参数或规则的变化是不言而喻的,
但是一个没有经验的设计者很可能把这些参数考虑为固定的。
2. 技术的更新触发的新需求 (需要学习)
在设计时就需要与用户充分沟通,探讨目前正在发展的新技术对工程的潜在影响,与用户达成共识。
设计人员的经验能够避免许多如此不必要的痛苦。而当你在行业里经历痛苦成为“变形虫”之后,变形就不再是痛苦,而是转眼之间的事了。