summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHui Lan <lanhui@zjnu.edu.cn>2021-07-27 12:46:45 +0800
committerHui Lan <lanhui@zjnu.edu.cn>2021-07-27 12:46:45 +0800
commitab3e8fc7608fa44e09dc6efb4dd0485217714dd3 (patch)
treef3bdeaea6badf28cfce28618c484c1b2a69254b5
parenta7f6ce308797360de114b554c6bd365fc8faa162 (diff)
parnas-a-rational-design-process.rst: 融入卢梦茹的翻译 (PDF page 36. Revision 1.
-rw-r--r--parnas-a-rational-design-process.rst8
1 files changed, 4 insertions, 4 deletions
diff --git a/parnas-a-rational-design-process.rst b/parnas-a-rational-design-process.rst
index ab38b61..78e2309 100644
--- a/parnas-a-rational-design-process.rst
+++ b/parnas-a-rational-design-process.rst
@@ -393,17 +393,17 @@ Page 13
(袁世家 翻, 卢梦茹 改)
-在其它情况下,我们从描述内部数据结构开始;在有些情况下,这些数据结构由子模块实现(并隐藏)。 对每个访问程序,我们包括一个函数 [10] 或者 LD-关系 [14], 用于描述它对数据结构的影响。对于模块返回给调用者的每个值,我们提供另外一个数学函数,这个数学函数叫做抽象函数,它将数据结构的值映射到返回值。对于每个意外事件,我们描述如何检查它。最后,我们提供一个"验证",论证拥有这些属性的程序则会满足模块说明。
+在其它情况下,我们从描述内部数据结构开始;在有些情况下,这些数据结构由子模块实现(并隐藏)。 对每个访问程序,我们包括一个函数 [10] 或者 LD-关系 [14], 用于描述它对数据结构的影响。对于模块返回给调用者的每个值,我们提供另外一个数学函数,这个数学函数叫做抽象函数,它将数据结构的值映射进返回值。对于每个意外事件,我们描述如何检查它。最后,我们提供一个"验证",论证拥有这些属性的程序将会满足模块说明。
-我们继续分解与设计子模块,直到每个工作任务足够小,小到即使负责这个模块的程序员离开了项目,我们也可以承担舍弃它并重新开始的代价。
+我们继续分解与设计子模块,直到每个工作任务足够小,小到即便负责这个模块的程序员离开了项目,我们也可以承担放弃它并重新开始的代价。
如果我们无法用易读的高级语言编程,例如,如果没有编译器可用,我们就把伪代码作为文档的一部分。我们发现让伪代码由不是最终编码者的人写,并让两个程序员负责保持程序的这两个版本一致是有用的 [7]。
E. 设计并且记录使用层次 (uses hierarchy)
````````````````````````````````````````````````````````````````````````````````
-一旦我们知道所有的模块与它们的访问程序,就能设计使用层次 [13] 了。使用层次可以用一个二进制矩阵方便表示,且仅当程序A的正确性依赖于系统中存在正确的程序B时,位置(A,B)上的条目为真。使用层次定义了子集组成的集合, 这个集合可以由删除整个程序且不需要重写任何程序得到。使用层次对于分阶段交付,失效弱化(fail-soft)系统,和程序族开发是重要的 [12]。
+一旦我们知道所有的模块与它们的访问程序,就能设计使用层次 [13] 了。使用层次可以用一个二进制矩阵方便表示,当且仅当程序A的正确性依赖于系统中存在正确的程序B时,位置(A,B)上的条目为真。***使用层次*** 定义了子集组成的集合, 这个集合可以通过删除整个程序且不需要重写任何程序得到。使用层次对于分阶段交付,故障弱化(fail-soft)系统,与程序族开发是重要的 [12]。
-(蓝珲注:文中提到的程序,容易引起混淆,其实就是指模块。二进制矩阵其实描述了模块之间的依赖关系。例如,有1,2,3,4四个模块,3依赖1, 1依赖2, 2依赖4,则{4}, {1,2}, {2,4}, {3,1}. {1,2,4}, {1,3,4},{1,2,3,4} 这些子集都可以组成独立程序,因为每个子集都包含了全部依赖。)
+(蓝珲注:本节提到的程序,容易引起混淆,其实就是指模块。二进制矩阵其实描述了模块之间的依赖关系。例如,有1,2,3,4四个模块,3依赖1, 1依赖2, 2依赖4,则{4}, {1,2}, {2,4}, {3,1}. {1,2,4}, {1,3,4},{1,2,3,4} 这些子集都可以各自组成独立程序,因为每个子集都包含了全部依赖,不必依赖与子集外面的东西。)
Page 14