大二下学期阅读笔记(人月神话)

  今日阅读了人月神话的另外一面的部分,包括“需要什么样的文档”,“流程图”,“文档自动化”三部分。计算机程序是从人传递到机器的一些信息。为了将人的意图清晰地传达给不会说话的机器,程序采用了严格的语法和严谨的定义。但是书面的计算机程序还有其他的呈现面貌:向用户诉说自己的“故事”。即使是完全开发给自己使用的程序,这种沟通仍然是必要的。因为记忆衰退的规律会使用户-作者失去对程序的了解,于是他不得不重拾自己劳动的各个细节。公共应用程序的用户在时间和空间上都远离它们的作者,因此对这类程序,文档的重要性更是不言而喻!对软件编程产品来说,程序向用户所呈现的面貌和提供给机器识别的内容同样重要。

  需要什么样的文档,不同用户需要不同级别的文档。某些用户仅仅偶尔使用程序,有些用户必须依赖程序,还有一些用户必须根据环境和目的的变动对程序进行修改。使用程序。每个用户都需要一段对程序进行描述的文字。可是大多数文档只提供了很少的总结性内容,无法达到用户要求,就像是描绘了树木,形容了树叶,但却没有一副森林的图案。为了得到一份有用的文字描述,就必须放慢脚步,稳妥地进行。验证程序。除了程序的使用方法,还必须附带一些程序正确运行的证明,即测试用例。每一份发布的程序拷贝应该包括一些可以例行运行的小测试用例,为用户提供信心——他拥有了一份可信赖的拷贝,并且正确地安装到了机器上。然后,需要得到更加全面的测试用例,在程序修改之后,进行常规运行。这些用例可以根据输入数据的范围划分成三个部分。修改程序。调整程序或者修复程序需要更多的信息。显然,这要求了解全部的细节,并且这些细节已经记录在注释良好的列表中。和一般用户一样,修改者迫切需要一份清晰明了的概述,不过这一次是关于系统的内部结构。那么这份概述的组成部分是什么呢?

  流程图,流程图是被吹捧得最过分的一种程序文档。事实上,很多程序甚至不需要流程图,很少有程序需要一页纸以上的流程图。流程图显示了程序的流程判断结构,它仅仅是程序结构的一个方面。当流程图绘制在一张图上时,它能非常优雅地显示程序的判断流向,但当它被分成几张时,也就是说需要采用经过编号的出口和连接符来进行拼装时,整体结构的概观就严重地被破坏了。因此,一页纸的流程图,成为表达程序结构、阶段或步骤的一种非常基本的图示。同样,它也非常容易绘制。图 15. 1展示了一个子程序流程图的图样。

  自文档化(self-documenting)的程序,数据处理的基本原理告诉我们,试图把信息放在不同的文件中,并努力维持它们之间的同步,是一种非常费力不讨好的事情。更合理的方法是:每个数据项包含两个文件都需要的所有信息,采用指定的键值来区别,并把它们组合到一个文件中。

原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/14702248.html