首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >再论软件工程没有银弹

再论软件工程没有银弹

作者头像
用户5166556
发布2019-04-16 14:11:32
1.4K0
发布2019-04-16 14:11:32
举报

为什么说软件工程没有银弹?

上篇文章论述了软件工程之所以不存在银弹是因为,软件工程本身存在复杂性,一致性,不可预见性,不可视化性。有些专家就这个问题持有相反的观点,大致可以分为以下几种

  • 时间倒退 在20世纪50年代,开发程序还是使用纸带打孔,我们在那个时候根本没有考虑到计算机硬件会发展的如此之快,更不会想到会有今天的智能编辑器和统一的开发环境,在今天看起来是次要困难的事情,可能在那个时候就是主要困难。也就是说现在看起来的主要困难在未来几十年后,很可能被解决。就像未来简史所说的,在21世纪人类战胜了饥荒,瘟疫和战争,但是这些事情,在上个世纪看来是完全不可能的事情,但是这个世纪我们做到了。著名的尤瓦尔赫拉利教授说这个世纪我们要重新找点事情做做,那就是我们这个世纪要解决的问题就是获得永生,永远快乐,直接成神。他并不是说,这些梦想一定可以实现,从某种意义上来说,我们可能朝着这个方向发展。

但是我们反过来看,饥荒瘟疫和战争都是属于某个领域特定的问题,但是软件工程却不是,它本身就存在复杂性。即使在20世纪50年代,那个时候的程序在军用上也有指令集非常复杂的程序,就那个时候来看,硬件限制的问题依然是次要问题。

  • 开发人员没有深入理解面向对象的思想 可重用和可交互构件的开发是解决软件工程的问题之一,是的,我非常赞同这个观点,但是可重用和可交互的软件也需要良好的设计和建模,以适应各种复杂的应用场景,这种情况下,我们只是通过复杂的建模和设计来掩盖软件工程本身的复杂性。

面向对象的开发-这颗铜质子弹可以吗?

面向对象的编程语言使我们使用更大的零部件去构建软件开发工作。但是还是需要构建…,所以说,要想避免掉软件开发的复杂性就是不开发软件(购买软件),或者最大程度的使用软件包,即最大程度上进行软件重用,比如说,alibaba提供的fastjson,dubbo rpc服务或者数据库服务等等,我们发现这些都是针对特定领域问题的解决,如果真实集成到我们的业务中去,还需要一定的困难,即这些服务必须有良好的设计,完善的文档。我们可以想象,抽象出来这些工具类的使用,说起来容易,做起来是一件非常困难的事情。

银弹的本质-形势没有发生根本的改变

虽然说,就目前来看,我们没有办法从根本上解决软件开发的复杂性,但是我们可以通过一些技术选型或者建模等方法的使用,降低软件开发的复杂性。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年05月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么说软件工程没有银弹?
  • 面向对象的开发-这颗铜质子弹可以吗?
  • 银弹的本质-形势没有发生根本的改变
相关产品与服务
数据库专家服务
数据库专家服务(Database Expert Service,DBexpert)为您提供专业化的数据库服务。仅需提交您的具体问题和需求,即可获得腾讯云数据库专家的专业支持,助您解决各类专业化问题。腾讯云数据库专家服务团队均有10年以上的 DBA 经验,拥有亿级用户产品的数据库管理经验,以及丰富的服务经验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档