人月神话-软件开发现状

人月神话-软件开发现状

黄国强 2005年03月5日                                    

      人月神话的作者Frederick P. Brooks Jr这样说到“所有软件活动包括根本任务--打造构成抽象软件实体的复杂概念结构,次要任务-使用编程语言表达这些抽象实体,在空间和时间限制内将他们映射成机器语言。”
      这句话我的理解就是这样,软件开发是由分析建模(根本任务)和编程(次要任务)两部分组成。
这本书已经出版了二十多年了,当年作者对软件断言没有银弹(即没有好的开发方法)的结论目前看依然成立。因为目前软件领域开发方法的创新依然集中在次要任务的解决。而对根本任务地解决依然缺乏有效的方法。为什么这么说了?根本任务中提到了“概念”这个词。
      那么什么是概念?比如桌子就是一个概念。那么能否给桌子一个精确定义呢?我们这时就会发现这个非常困难。比如桌子有腿吗?如果有腿,那么几条腿才叫桌子?
      显然,精确定义只存在数学中,数学概念基本上都是可以精确定义的,比如正方形。
      我们生活中的概念一般称为自然概念。描述概念有三个方法:经典方法、概率方法和标本方法。一般认为经典理论是由亚里斯多德提出,主要通过定义一系列充分必要的属性来定义概念。经典理论对于数学概念描述非常擅长,但不适合解决自然概念,比如上面讲的桌子。目前在软件开发中概念的定义主要使用这个方法。尽管存在着刚才所说的局限性。概率方法是通过一个事物满足一系列特征的概率来区分概率。标本方法是通过指定多个标本来区分概念。比如描述鸟的概念,就做了很多鸟的标本。
      显然,概率方法和标本方法用计算机语言描述都异常困难,当然全世界做这方面研究的公司和个人都非常多。但进展很有限。因为我们知道,计算机归根结底是一个逻辑机器,对于模糊的事物处理非常困难。所以我觉得这个突破要依赖于人类对自己大脑的研究,即认知科学的发展。
      可以想象,软件开发人员的苦海依然没有尽头。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

acloud_csu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值