diff options
Diffstat (limited to 'parnas-a-rational-design-process.rst')
-rw-r--r-- | parnas-a-rational-design-process.rst | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/parnas-a-rational-design-process.rst b/parnas-a-rational-design-process.rst index a1f11e1..1f9a696 100644 --- a/parnas-a-rational-design-process.rst +++ b/parnas-a-rational-design-process.rst @@ -365,11 +365,11 @@ D. 设计并记录模块内部结构 如果我们无法用易读的高级语言编程,例如,如果没有编译器可用,我们就把伪代码作为文档的一部分。我们发现让最终编码者以外的人来写伪代码,并让两个程序员负责保持程序的这两个版本一致是有用的 [7]。 -E. 设计并且记录使用层次 (uses hierarchy) +E. 设计并且记录使用层次 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -一旦我们知道所有的模块与它们的访问程序,就能设计使用层次 [13] 了。使用层次可以用一个二进制矩阵方便表示,当且仅当程序A的正确性依赖于系统中存在正确的程序B时,位置(A,B)上的条目为真。**使用层次** 定义了子集组成的集合, 这个集合可以通过删除整个程序而无需重写任何程序得到。使用层次对于分阶段交付,故障弱化(fail-soft)系统,与程序族开发是重要的 [12]。 +一旦我们知道所有的模块与它们的访问程序,就能设计使用层次(uses hierarchy) [13] 了。使用层次可以用一个二进制矩阵方便表示,当且仅当程序A的正确性依赖于系统中存在正确的程序B时,位置(A,B)上的条目为真。**使用层次** 定义了子集组成的集合, 这个集合可以通过删除整个程序而无需重写任何程序得到。使用层次对于分阶段交付,故障弱化(fail-soft)系统,与程序族开发是重要的 [12]。 (蓝珲注:本节提到的程序,容易引起混淆,其实就是指模块。二进制矩阵其实描述了模块之间的依赖关系。例如,有1,2,3,4四个模块,3依赖1, 1依赖2, 2依赖4,则{4}, {2,4}, {3,1}. {1,2,4}, {1,3,4},{1,2,3,4} 这些子集都可以各自组成独立程序,因为每个子集都包含了全部依赖,不必依赖与子集外面的东西。) |