人月神话阅读笔记三

“没有银弹”

这一章是作者后来加上的

银弹即银色子弹,在欧洲民间小说中往往被描绘成具有驱魔功效的武器,后来也被比喻为极端有效的解决办法。

没有银弹”没有任何技术或管理上的进展,能够独立的许诺十年内使软件系统生产率、可靠性或简洁性获得数量级上的进步。

软件工程的焦油坑在将来很长一段时间内会继续地使人们举步维艰,无法自拔。只能期待人们在力所能及的或者刚刚超越力所能及的范围内进行探索和尝试。这个复杂的行业需要进行持续的发展;学习使用更大的要素来开发; 新工具的最佳使用; 经论证的管理方法的最佳应用; 良好判断的自由发挥; 以及能够使我们认识到自己不足和容易犯错的——上帝所赐予的谦卑。”

软件工程的任务分为两类:根本任务——打造构成抽象软件实体的复杂概念结构。

次要任务——使用编程语言表达这些抽象实体,在空间和时间限制内将他们映射成机器语言。由于根本任务在任务占比中比重大,想要生产率有数量级式的提高,就触及了软件性质的固有困难,就类似于妄谈“永动机”。

布鲁克斯认为,软件开发的困难主要分为两类:

本质性困难:软件本身在概念建构上存先天的困难;亦即如何从抽抽象性问题,发展出具体概念上的解决方案。

附属性困难 :将概念上的构思施行于电脑上,所遭遇到的困难。

附属性困难解决:开发工具的完善,如高级语言的出现,分时技术以及统一的开发环境等; 

本质性困难解决:原因:复杂性、隐匿性、配合性、易变性目前解决方法的探索:高级语言、面向对象编程、人工智能……

总之我现在还在学习,没有接触过真正的软件开发项目,有很多内容我不能完全理解。不过庆幸的是即便如此这本书中的观点依然给予我软件工程更宏观的认识,在以后的学习中必然会对我有很大的帮助,我认为这本书以后依然值得我再读几遍。

迷失在灿烂之中 消失在万里晴空
原文地址:https://www.cnblogs.com/wxy2000/p/10397567.html