不了解,就无法真正拥有
需要什么样的文档
不同用户需要不同级别的文档。某些用户仅仅偶尔使用程序,有些用户必须依赖程序,还有一些用户必须根据环境和目的的变动对程序进行修改。
使用程序。
- 目的。主要的功能是什么?开发程序的原因是什么?
- 环境。程序运行在什么样的机器、硬件配置和操作系统上?
- 范围。输入的有效范围是什么?允许显示的合法范围是什么?
- 实现功能和使用的算法。精确地阐述它做了什么。
- 输入-输出格式。必须是确切和完整的。
- 操作指令。包括控制台及输出内容中正常和异常结束的行为。
- 选项。用户的功能选项有哪些?如何在选项之间进行挑选?
- 运行时间。在指定的配置下,解决特定规模问题所需要的时间?
- 精度和校验。期望结果的精确程度?如何进行精度的检测?
验证程序。
- 针对遇到的大多数常规数据和程序主要功能进行测试的用例。它们是测试用例的主要组成部分。
- 数量相对较少的合法数据测试用例,对输入数据范围边界进行检查,确保最大可能值、最小可能值和其他有效特殊数据可以正常工作。
- 数量相对较少的非法数据测试用例,在边界外检查数据范围边界,确保无效的输入能有正确的数据诊断提示。
修改程序。
- 流程图或子系统的结构图,对此以下有更详细的论述。
- 对所用算法的完整描述,或者是对文档中类似描述的引用。
- 对所有文件规划的解释。
- 数据流的概要描述——从磁盘或者磁带中,获取数据或程序处理的序列——以及在
每个处理过程完成的操作。 - 初始设计中,对已预见修改的讨论;特性、功能回调的位置以及出口;原作者对可
能会扩充的地方以及可能处理方案的一些意见。另外,对隐藏缺陷的观察也同样很有价值。
流程图
对于新的编程人员和陈旧的流程图方法,我持有相同的观点。
自文档化(self-documenting)的程序
技巧
-
为每次运算使用单独的任务名称
-
使用包含版本号和能帮助记忆的程序名称。
-
在过程(PROCEDURE)的注释中,包含记叙性的描述文字。
-
尽可能为基本算法提供参考引用,通常它会指向更完备的处理方法。这样,既节省了空间,同时还允许那些有经验的读者能非常自信地略过这一段内容。
-
显示和算法书籍中的传统算法的关系。
- a) 更改 b) 定制细化 c) 重新表达
-
声明所有的变量。采用助记符,并使用注释把 DECLARE 转化成完整的说明
-
用标签标记出初始化的位置。
-
对程序语句进行分组和标记,以显示与设计文档中语句单元的一致性
-
利用缩进表现结构和分组。
-
在程序列表中,手工添加逻辑箭头。
-
使用行注释来解释任何不很清楚的事情。
-
把多条语句放置在一行,或者把一条语句拆放在若干行,以吻合逻辑思维,表示和其他算法描述一致。
自文档化方法激发了高级语言的使用,特别是用于在线系统的高级语言——无论是对批处理还是交互式,它都表现出最强的功效和应用的理由。如同我曾经提到的,上述语言和系统强有力地帮助了编程人员。因为是机器为人服务,而不是人为机器服务。因此从各个方面而言,无论是从经济上还是从以人为本的角度来说,它们的应用都是非常合情合理的。
- 本文链接: https://halo.cjh.kim/archives/人月神话16-另外一面
- 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!