您的位置:首页 > 其它

人月神话-软件开发现状

2017-10-01 00:06 585 查看


人月神话-软件开发现状

黄国强 2005年03月5日                                    

      人月神话的作者Frederick P. Brooks Jr这样说到“所有软件活动包括根本任务--打造构成抽象软件实体的复杂概念结构,次要任务-使用编程语言表达这些抽象实体,在空间和时间限制内将他们映射成机器语言。”

      这句话我的理解就是这样,软件开发是由分析建模(根本任务)和编程(次要任务)两部分组成。

这本书已经出版了二十多年了,当年作者对软件断言没有银弹(即没有好的开发方法)的结论目前看依然成立。因为目前软件领域开发方法的创新依然集中在次要任务的解决。而对根本任务地解决依然缺乏有效的方法。为什么这么说了?根本任务中提到了“概念”这个词。

      那么什么是概念?比如桌子就是一个概念。那么能否给桌子一个精确定义呢?我们这时就会发现这个非常困难。比如桌子有腿吗?如果有腿,那么几条腿才叫桌子?

      显然,精确定义只存在数学中,数学概念基本上都是可以精确定义的,比如正方形。

      我们生活中的概念一般称为自然概念。描述概念有三个方法:经典方法、概率方法和标本方法。一般认为经典理论是由亚里斯多德提出,主要通过定义一系列充分必要的属性来定义概念。经典理论对于数学概念描述非常擅长,但不适合解决自然概念,比如上面讲的桌子。目前在软件开发中概念的定义主要使用这个方法。尽管存在着刚才所说的局限性。概率方法是通过一个事物满足一系列特征的概率来区分概率。标本方法是通过指定多个标本来区分概念。比如描述鸟的概念,就做了很多鸟的标本。

      显然,概率方法和标本方法用计算机语言描述都异常困难,当然全世界做这方面研究的公司和个人都非常多。但进展很有限。因为我们知道,计算机归根结底是一个逻辑机器,对于模糊的事物处理非常困难。所以我觉得这个突破要依赖于人类对自己大脑的研究,即认知科学的发展。

      可以想象,软件开发人员的苦海依然没有尽头。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: