设计原本—计算机科学巨匠Frederick P.Brooks的反思
查看您的阅读历史
- 类别:
- 基础信息化
- | 关键字:
- 系统设计过程
- 如果说《人月神话》是近40年来所有软件开发工程师和项目经理们必读的一本书,那么本书将会是未来数十年内所有软硬件设计师、架构师和软件开发工程师们必读的一本书。它是《人月神话》作者、著名计算机科学家、软件工程教父、美国两院院士、图灵奖和IEEE计算机先驱奖得主Brooks在计算机软硬件架构与设计、建筑和组织机构的架构与设计等领域毕生经验的结晶,是计算机图书领域的又一部史诗级著作。
本书从工程师和架构师的视角深入地探讨了设计的过程,尤其是复杂系统的设计过程,旨在提高产品的实用性与有效性,以及设计的效率和优雅性。全书共28章,分为6个部分:第一部分(1~5章)主要讨论了什么是设计、设计过程的思考、设计的类别、理性模型及其缺陷,以及对一些好的设计过程模型的探讨;第二部分(6~7章)主要讨论了协作设计与远程协作;第三部分(8~16章)全面总结了设计中的各种原则、经验和教训,包括设计中的理性主义与实证主义、用户模型、资源预算、约束、设计中的美学与风格、设计中的范本、设计的分离、设计的演变途径和理由,以及专业设计者为何会犯错;第四部分(17~18章)探讨了建筑设计与计算机软硬件设计在设计思想和方法上的一些共同点和不同之处;第五部分(19~20章)探讨了卓越的设计和卓越的设计师之间的关系,以及如何培养卓越的设计师;第六部分(21~28章)对各个领域的各种类型的案例进行了分析和研究,旨在深刻揭示隐藏在这些案例背后不变的设计过程和思想。
除了从事计算机软件相关工作的读者应该阅读本书之外,其他领域的设计者、设计项目经理和设计研究人员也都能从本书中受益匪浅。
1第1章 设计的疑问
对一种技艺进行观察,并将所思所想运用到另一种技艺中,使得诸般妙用在一人的头脑中不断反思(新思维也就不期而至了)。
—弗朗西斯·培根爵士(1605),《The Two Books of the Proficience and Advancement of Learning》
卷二,第10章
很少有工程师和作曲家……能够通过探讨对方的专业作品而各取所长。我建议,他们可以共同探讨有关设计的问题……(由此)共享他们在创新性的专业设计过程中取得的经验。
—Herbert Simon(1969),《The Sciences of the Artificial》,82页
2第2章 工程师怎样进行设计思维—理性模型
……因为设计的理论是普通的搜索理论……即在巨大的组合空间搜索。
—Herbert Simon(1969),《The Sciences of the Artificial》
—Herbert Simon(1969),《The Sciences of the Artificial》
3第3章 理性模型有哪些缺陷
有时候,问题就在于发现问题出在哪里。
—Gorden Glegg (1969),《The Design of Design》
设计师就是要创造事物……他的创造过程往往是复杂的。他总是采用过多的变量—例如可能的变化和定额,以及它们之间的相互关系等,以至于无法采用有限模型来表示它们。
—Donald A. Sch歯(1984),《The Reflective Practitioner》
现实情况是,设计师只把理性模型视为一种理想化的东西。理性模型描述了我们认为设计过是怎样的,但在现实生活中,并不是那么一回事。
事实上,不是每个工程师都会大方地承认在他的心目中有这么一个很天真、很理想的模型。但我认为我们中的大多数人都有这样的想法,我自己心中的这种想法持续了很长时间。因此,让我们对理性模型进行仔细彻底的剖析,以确切地了解它究竟在哪些方面脱离了现实。
—Gorden Glegg (1969),《The Design of Design》
设计师就是要创造事物……他的创造过程往往是复杂的。他总是采用过多的变量—例如可能的变化和定额,以及它们之间的相互关系等,以至于无法采用有限模型来表示它们。
—Donald A. Sch歯(1984),《The Reflective Practitioner》
现实情况是,设计师只把理性模型视为一种理想化的东西。理性模型描述了我们认为设计过是怎样的,但在现实生活中,并不是那么一回事。
事实上,不是每个工程师都会大方地承认在他的心目中有这么一个很天真、很理想的模型。但我认为我们中的大多数人都有这样的想法,我自己心中的这种想法持续了很长时间。因此,让我们对理性模型进行仔细彻底的剖析,以确切地了解它究竟在哪些方面脱离了现实。
- 第一节 3.1 在初始阶段我们并不真正地知道目标是什么
- 第二节 3.2 我们通常不知晓设计树的样子—一边设计一边探索
- 第三节 3.3 (设计树上的)节点实际上不是设计决策,而是设计暂定方案
- 第四节 3.4 效用函数无法以增量方式求值
- 第五节 3.5 必要条件及其权重在持续变化
- 第六节 3.6 约束在持续变化
- 第七节 3.7 对理性模型的其他批评
- 第八节 3.8 尽管存在诸多缺陷和批评,理性模型依然顽固存在
- 第九节 3.9 那又如何?我们的设计过程模型真的那么事关紧要吗
- 第一十零节 3.10 注释和参考文献
4第4章 需求、罪念以及合同
- 第一节 4.1 一段恐怖往事
- 第二节 4.2 殊为不幸,无独有偶
- 第三节 4.3 抵制需求膨胀和蠕变
- 第四节 4.4 罪念
- 第五节 4.5 合同
- 第六节 4.6 一种合同模型
- 第七节 4.7 注释和参考文献
5第5章 有哪些更好的设计过程模型
- 第一节 5.1 为什么要有一个占主导地位的模型
- 第二节 5.2 共同演化模型
- 第三节 5.3 Raymond的集市模型
- 第四节 5.4 Boehm的螺旋模型
- 第五节 5.5 设计过程模型:第2~5章的讨论小结
- 第六节 5.6 注释和参考文献
6第6章 协作设计
- 第一节 6.1 协作在本质上是好的吗
- 第二节 6.2 团队设计是现代标准
- 第三节 6.3 协作的成本
- 第四节 6.4 挑战在于保持概念完整性
- 第五节 6.5 如何在团队设计中获得概念完整性
- 第六节 6.6 协作何时有帮助
- 第七节 6.7 对设计本身而言,协作何时无用
- 第八节 6.8 两人团队很神奇
- 第九节 6.9 对于计算机科学家意味着什么
- 第一十零节 6.10 注释和参考文献
7第7章 远程协作
- 第一节 7.1 为什么要远程协作
- 第二节 7.2 就地取材—IBM System/360计算机系列的分布式开发(1961~1965)
- 第三节 7.3 让远程协作有效
- 第四节 7.4 远程协作的技术
- 第五节 7.5 注释和参考文献
8第8章 设计中的理性主义与实证主义之争
- 第一节 8.1 理性主义与实证主义
- 第二节 8.2 软件设计
- 第三节 8.3 我是一个根深蒂固的实证主义者
- 第四节 8.4 其他设计领域中的理性主义、实证主义与正确性验证
- 第五节 8.5 注释和参考文献
9第9章 用户模型—宁错勿淆
- 第一节 9.1 定义明确的用户模型和使用模型
- 第二节 9.2 团队设计
- 第三节 9.3 如果实际情况难以预料,有什么对策
- 第四节 9.4 注释和参考文献
10第10章 英寸、盎司、比特与美元—预算资源
- 第一节 10.1 何谓预算资源
- 第二节 10.2 钱不是万能的
- 第三节 10.3 同一种资源也会有不同风格,甚至有替代品
- 第四节 10.4 预算资源并非一成不变
- 第五节 10.5 那我们究竟该怎么办
- 第六节 10.6 注释和参考文献
11第11章 约束是友非敌
- 第一节 11.1 约束
- 第二节 11.2 归结于一点
- 第三节 11.3 设计悖论:通用产品比专用产品更难设计
- 第四节 11.4 注释和参考文献
12第12章 技术设计中的美学与风格
- 第一节 12.1 技术设计中的美学
- 第二节 12.2 揭开逻辑之美的面纱
- 第三节 12.3 技术设计中的风格
- 第四节 12.4 何谓风格
- 第五节 12.5 风格的特点
- 第六节 12.6 若要使风格保持一致,请将它写成文档
- 第七节 12.7 如何形成良好的风格
- 第八节 12.8 注释和参考文献
13第13章 设计中的范例
- 第一节 13.1 全新的设计是罕见的
- 第二节 13.2 范例所扮演的角色
- 第三节 13.3 计算机和软件设计中的问题
- 第四节 13.4 研究范例的设计原理
- 第五节 13.5 应该用什么样的方式来改进基于范例的设计
- 第六节 13.6 范例—惰性、创新与自满
- 第七节 13.7 注释和参考文献
14第14章 智者千虑,必有一失
- 第一节 14.1 错误
- 第二节 14.2 曾经最糟糕的计算机语言
- 第三节 14.3 JCL何至于此
- 第四节 14.4 经验教训
- 第五节 14.5 注释和参考文献
15第15章 设计的分离
- 第一节 15.1 设计与使用和实现的分离
- 第二节 15.2 为什么分离
- 第三节 15.3 分离的结果
- 第四节 15.4 补救措施
- 第五节 15.5 注释和参考文献
16第16章 展现设计的演变轨迹和理由
- 第一节 16.1 简介
- 第二节 16.2 知识网线性化
- 第三节 16.3 我们的设计演变轨迹记录
- 第四节 16.4 我们研究房屋设计过程的过程
- 第五节 16.5 深入设计过程
- 第六节 16.6 决策树与设计树
- 第七节 16.7 模块化与紧密集成的设计
- 第八节 16.8 Compendium和可选工具
- 第九节 16.9 DRed:一个诱人的工具
- 第一十零节 16.10 注释和参考文献
17第17章 计算机科学家梦寐以求的房屋设计系统—从头脑到电脑
- 第一节 17.1 挑战
- 第二节 17.2 愿景
- 第三节 17.3 输入机构的愿景:从头脑到电脑
- 第四节 17.4 指定动词
- 第五节 17.5 指定名词
- 第六节 17.6 指定文字
- 第七节 17.7 指定状语
- 第八节 17.8 指定视点和视图
- 第九节 17.9 注释和参考文献
18第18章 计算机科学家梦寐以求的房屋设计系统—从电脑到头脑
- 第一节 18.1 双向通道
- 第二节 18.2 视觉显示—多个并列显示的窗口
- 第三节 18.3 听觉展示
- 第四节 18.4 触觉展示
- 第五节 18.5 推而广之
- 第六节 18.6 可行性
- 第七节 18.7 注释和参考文献
19第19章 伟大的设计来自伟大的设计师
- 第一节 19.1 伟大的设计与产品过程
- 第二节 19.2 产品过程—优点和不足
- 第三节 19.3 观点碰撞:过程扼杀创新,但又不可避免,如何是好
- 第四节 19.4 注释和参考文献
20第20章 伟大的设计师从哪里来
- 第一节 20.1 我们必须教会他们设计
- 第二节 20.2 我们必须为伟大设计而招募人才
- 第三节 20.3 我们必须有意识地培养他们
- 第四节 20.4 我们必须在管理他们时发挥想象力
- 第五节 20.5 我们必须积极地保护他们
- 第六节 20.6 把自己培养成一名设计师
- 第七节 20.7 注释和参考文献
21第21章 案例研究:海滨小屋“View/360”
- 第一节 21.1 亮点和特性
- 第二节 21.2 背景介绍
- 第三节 21.3 目标
- 第四节 21.4 机会
- 第五节 21.5 约束条件
- 第六节 21.6 设计决定
- 第七节 21.7 考虑正面
- 第八节 21.8 小屋的尺寸
- 第九节 21.9 设想的开始
- 第一十零节 21.10 在设计之后,构建之前的设计改动
- 第一十一节 21.11 在框架和外墙完成和初次入住之后的设计改动
- 第一十二节 21.12 结果评估(在项目验收37年后)
- 第一十三节 21.13 学到的一般经验
22第22章 案例研究:增加厢房
- 第一节 22.1 亮点和特性
- 第二节 22.2 背景介绍
- 第三节 22.3 目标
- 第四节 22.4 约束条件
- 第五节 22.5 非约束条件
- 第六节 22.6 事件
- 第七节 22.7 设计决定和迭代
- 第八节 22.8 结果评估—成功与缺憾
- 第九节 22.9 学到的一般经验
- 第一十零节 22.10 注释和参考文献
23第23章 案例研究:厨房重新建模
- 第一节 23.1 亮点和特性
- 第二节 23.2 背景介绍
- 第三节 23.3 目标
- 第四节 23.4 机会
- 第五节 23.5 约束条件
- 第六节 23.6 关键宽度预算的推理
- 第七节 23.7 长度预算的推理
- 第八节 23.8 其他设计决定
- 第九节 23.9 结果评估
- 第一十零节 23.10 满足的其他迫切需求
- 第一十一节 23.11 在设计中使用图纸、CAD、模型、仿真模型和虚拟环境
- 第一十二节 23.12 学到的一般经验
- 第一十三节 23.13 注释和参考文献
24第24章 案例研究:System/360体系结构
- 第一节 24.1 亮点和特性
- 第二节 24.2 项目介绍和相关背景
- 第三节 24.3 目标
- 第四节 24.4 机遇(截至1961年6月)
- 第五节 24.5 挑战和限制
- 第六节 24.6 最重大的设计决策
- 第七节 24.7 里程碑事件
- 第八节 24.8 结果评估
- 第九节 24.9 学到的一般经验
- 第一十零节 24.10 注释和参考文献
25第25章 案例研究:IBM Operating System/360操作系统
- 第一节 25.1 亮点和特性
- 第二节 25.2 项目介绍和相关背景
- 第三节 25.3 接受挑战
- 第四节 25.4 设计决策
- 第五节 25.5 结果评估
- 第六节 25.6 设计师团队
- 第七节 25.7 学到的一般经验
- 第八节 25.8 注释和参考文献
26第26章 案例研究:《Computer Architecture: Concepts and Evolution》图书设计
- 第一节 26.1 亮点和特性
- 第二节 26.2 项目介绍和相关背景
- 第三节 26.3 项目目标
- 第四节 26.4 机遇
- 第五节 26.5 约束
- 第六节 26.6 设计决策
- 第七节 26.7 结果评估
- 第八节 26.8 经验教训
27第27章 案例研究:联合计算中心组织:三角区大学计算中心
- 第一节 27.1 要点和特点
- 第二节 27.2 项目介绍和相关背景
- 第三节 27.3 目标
- 第四节 27.4 机遇
- 第五节 27.5 限制
- 第六节 27.6 设计决策
- 第七节 27.7 备选的董事会投票方案
- 第八节 27.8 结果评估
- 第九节 27.9 经验教训
- 第一十零节 27.10 注释和参考文献