【先验知识归纳】没有银弹——伴随软件工程的长期问题

本文参考:没有银弹

'没有银弹'的含义:

没有任何一种单纯的技术或管理上的进步,能够独立地承诺在十年内大幅度地提高生产率、可靠性和简洁性。

软件工程中的根本问题和次要问题

根本任务-设计:打造构成抽象软件实体的复杂概念结构
次要任务-实现:使用编程语言表达这些抽象实体,在空间和时间限制内将它们映射成机器语言

没有银弹更多的是指设计上的困难(也就是架构师的工作)

根本问题为什么那么困难?

  • 抽象与复杂性:‘抽象方法’的存在使复杂度成为了软件的根本属性。做好抽象后,我们很难再使用某一个模型或方法来进一步降低软件的复杂度。
  • 对维护的需求:软件需要紧跟需求,持续不断地维护和变更

解决这些问题的一些尝试

  • 少开发,多复用:从业务层面来看,就是多购买/复用现成的优秀软件,而不是自己去从头开发。因为软件的复制成本远低于开发成本。
  • 快速原型,增量开发,敏捷开发
  • 重视设计:培养卓越的设计人员可以大大降低软件的开发成本。
原文地址:https://www.cnblogs.com/lokvahkoor/p/10500748.html