跳到主要内容

概念完整性

什么是概念完整性?​

  • 定义: 系统只反映唯一的设计理念, 每个部分反映相同的原理、原则和一致的折衷机制;
  • 语法上: 每个部分使用相同的技巧;
  • 语义上: 各个部分具有同样的相似性;
  • 判断: 为了反映一系列连贯的设计思路, 宁可省略一些不规则的特性和改进, 也不提倡独立和无法整合的系统;
  • 例证: 兰斯大教堂风格一致, 靠的是 8 代建筑师每人牺牲自己的一部分创意;

为什么易用性的判据是"功能与复杂度的比值"?​

  • 目标: 编程系统的目的是使计算机更易用, 而软件外部说明的规模是计算机系统本身说明的十倍;
  • 成本: 用户要记住太多选项和格式, 功能说明节约的时间必须大于学习、记忆和搜索手册的时间;
  • 判据: 功能与理解上复杂程度的比值, 才是系统设计的最终测试标准;
  • 常见误解: 单独的功能(OS/360)或单独的简洁(PDP-10 分时)都只达到目标的一半;
  • 前提: 简洁(simplicity)不够, 还要直白(straightforward)--用意料不到的复杂组合才能表达一件事, 就是不够直白;

简洁、直白与概念完整性是什么关系?​

  • 简洁不是充分条件: TRAC 语言和 Algol 68 用很多独特的基本概念达到简洁, 但不直白;
  • 直白的来源: 仅仅了解基本要素和组合规则还不够, 还要学习晦涩的用法和实际组合方式;
  • 结论: 简洁和直白来自概念的完整性--每个部分反映相同的原理和折衷机制;
  • 推论: 易用性实际上需要设计的一致性和概念上的完整性;

为什么概念完整性要求设计由少数人完成?​

  • 矛盾: 概念完整性要求设计由一个人或少数互有默契的人完成, 进度压力却要求很多人参与;
  • 解法一: 仔细区分设计方法和具体实现, 把体系结构工作与实现分离;
  • 解法二: 采用"外科手术队伍"式的团队组建方法;
  • 分散设计的后果: 概念差异和不一致性会超过欧洲大教堂, 因为设计被分成了由若干人完成的若干任务;

贵族专制和民主政治的争论如何回答?​

  • 问题一(好的想法能否来自全体): 能。新概念经常来自实现者或用户;
  • 但: 不能与系统基本概念整合的好想法, 最好放到一边; 若不兼容的构想太多, 应合并概念后重新开始;
  • 问题二(是否需要少数结构师): 是。必须只能存在少数结构师, 他们的产物生命周期更长, 处在解决用户问题的核心;
  • 问题三(实现是否缺乏创造性): 否。实现同样需要创造性, 产品性价比很大程度依赖实现人员;
  • 反直觉结论: 外部的体系结构规定实际增强了实现小组的创造性, 因为限制消除了无谓争议, 让人专注没人解决过的问题;