|
歪说软件工程49 - 白马非马
话说战国末年的公孙龙,是我国古代名辩学派的逻辑学家,《白马论》是他的一篇著名论文。这篇论文要证明的一个论题是:“白马非马”。“白马非马”显然是同人们的常识相悖的。但是,为了使这个命题成立,他提出了很多理由,其中一条是:马包括了白马、黄马、黑马,但是白马并不包括黄马和黑马。这话本来是不错的,但是,公孙龙却以此为理由,推出“白马非马”来,这显然就错了。
姑且不去讨论其中概念与逻辑的问题,但从其中我们知道通过自然语言进行推理或论证容易公说公有理、婆说婆有理并容易犯错误。自然语言通过自然语言符号来表达信息,而软件中的开发语言如Delphi、建模语言如UML则都是形式语言,通过形式符号来表达信息。软件开发过程中,我们发现光靠形式语言无法传递所有需要传递的信息,所有我们还是要自然语言含量高的文档来传达信息。
“在软件开发中,有相当多的精力用在书写软件文档上。一项对63个开发项目和25个维护项目的调查表明,在代码上每花费100个小时,在相应文档中就要花费150个小时[Boehm, 1981]。在大规模的TRW产品中,每花100小时在与代码相关的工作上,则相应地要在与文档相关的活动上花费200小时[Boehm, Penedo, Stuckle, Williams, and Pyster, 1984]。”
引文摘自《软件工程Java语言实现》一书。 |
|