《人月神话》阅读笔记(三)

我又一次在相关书籍看到了文档的重要性 

数据的表现形式是编程的根本。创造出自精湛的技艺,精炼、充分和快速的程序也是如此。

技艺改进的结果往往是战略上的突破,而不仅仅是技巧上的提高。

这种战略上突破有时是一种新的算法,如快速傅里叶变换,或者是将比较算法的复杂度从n2降低到nlogn。

更普遍的是,战略上突破常来自数据或表的重新表达——这是程序的核心所在。

如果提供了程序流程图,而没有表数据,我们仍然会很迷惑。而给我看表数据,往往就不再需要流程图,程序结构是非常清晰的。

文档的主要内容:

1、目的。主要的工作是什么?开发程序的原因是什么?

2、环境。程序运行在什么样的机器、硬件配置和操作系统上?

3、范围。输入的有效范围是什么?允许显示的合法范围是什么?

4、实现功能和使用的算法。精确地阐述它做了什么。

5、输入—输出格式。必须确切和完整的。

6、操作指令。包括控制台及输入内容正常和异常结束的行为。

7、选项。用户的功能选项有哪些?如何在选项之间进行挑选?

8、运行时间。在指定的配置下,解决特定规模问题所需要的时间?

9、精度和校验。期望结果的精确程度?如何进行精度的检测?

 

一般来说,三四页纸常常就能容纳以上的所有信息。不过往往需要特别注意的是表达的简洁和精确。

由于它包含了和软件相关的基本决策,所以这份文档的绝大部分需要在编程编制之前书写。

 

文档用文字记录了充满了维度的软件相关东西。

我意识到这些东西,是存在且必要的。它将我们所面对的程序,或者说项目,简化了,易懂了,直观了。

就这些好处,不得不说,我们能更容易发现里面的突破点,或者所暗藏的问题。

posted @ 2016-06-13 00:20  枫棂叶澜  阅读(238)  评论(0编辑  收藏  举报