本科论文遗留代码重工程:布尔组件输入输出建模求建议
针对并行布尔组件输入输出建模的建议
1. 结构化映射表格
- 直接用表格关联输出变量与对应布尔表达式,因为所有操作并行无级联,这种方式能清晰批量梳理逻辑,避免图形化的杂乱问题:
输出变量 布尔表达式 Z1 A && B && C Z2 !D ... ... - 复杂表达式可拆分子条件简化,比如
Z3 = (Cond1) && (Cond2),再单独列出子条件定义,避免表格拥挤。
2. 布尔依赖矩阵
- 以输入为行、输出为列构建矩阵,单元格标记输入在输出逻辑中的角色:
- 行:输入变量(A1-A64)
- 列:输出变量(Z1-Z32)
- 单元格内容:
&&(与项)、||(或项)、!(取反),空值表示无依赖
- 能快速定位每个输出的输入依赖集合,便于分析输入复用性和输出逻辑聚类。
3. 模块化逻辑门子图
- 放弃全量绘制,按输出分组绘制小型逻辑门子图:每个输出对应一个独立的逻辑门组合(与门、或门等),用编号代替输入变量名(比如I1-I64),避免变量名过长导致图形混乱。
- 因为操作无 Cascading,无需绘制组件间连接,仅需每个子图对应一个输出,管理更清晰。
4. 代码风格表达式清单
- 用结构化文本整理所有输出逻辑,便于和遗留代码对照:
// 输出组1:依赖输入A-C Z1 = A && B && C; Z2 = !A || B; // 输出组2:依赖输入D-F Z3 = D && !E && F; ... - 可按输入依赖分组,方便后续重工程的模块重构。
5. 简化决策表
- 针对每个输出,仅列出触发其为
true的关键输入组合,无需枚举所有2^64种可能:规则1:A=true、B=true、C=true → Z1=true
规则2:D=false 或 E=true → Z2=true - 适合明确输出触发条件的场景,比完整真值表更简洁。
内容的提问来源于stack exchange,提问作者Era D
相关产品推荐
相关产品推荐

