高级软件工程学习总结
这学期在软院修了高软,收益匪浅,让我对软件工程这门理论有了些新的理解和认识。
最让我印象深刻的就是银弹危机了也就是There is no silver bullet!。
先说说什么是银弹,silver bullet经常被视作“解决复杂问题的良方、高招”,银弹危机也就说软件工程之中没有解决复杂问题的好方法。
银弹危机第一次进入人们的视野是Fred Brooks在1987年所发表的一篇关于软件工程的经典论文。在这篇论文中作者从通过分析软件技术的困难,来推测软件技术到底能进步得多快。技术的难点分为两类:essence,本质(困难);accidents,意外/伴随(困难)。essence是软件内在的特性带来的困难,而accidents是那些不是本质困难、却伴随着软件生产过程中的困难。
作者认为软件工程难题最难的部分应该在于“specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation.”详细阐述、设计、测试这个概念构想是软工的本质难点,并不是看你用语言对软件文档的完成度和准确度有多高。我们过去所做的努力,都在减少意外的任务的发生;未来,我们应该着眼于解决软件工程的本质问题。
纵观全文,作者从复杂性、一致性、可变性、不可见性论述了为什么没有银弹,分析了过去所做出的努力——高级语言、分时、同一的编程环境等等都是为了解决accidental tasks所做出的努力。
参考资料:
http-s://zhuanlan.zhihu.com/p/415201323
代码中的软件工程 https://gitee.com/mengning997/se
作者:346