目 录
打好基础
1.1 欢迎进入软件构建的世界 - Welcome to Software Construction.............................1
1.2 用隐喻来更充分地理解软件开发 - Metaphors for a Richer Understandi n g of
Software Development........................................................................................................1
1 . 3 三 思 而 后 行 : 前 期 准 备 - M e a s u r e T w i c e , C u t o n c e : U p s t r e a m
Prerequisites........................................................................................................................1
1. 3 .1 辩明你所从事的软件的 类型( D e te r min e t he Kin d of S o ftw a re You ’ re
Working On).............................................................................................................2
1.3.2 一条很有用的经验规则(A Useful Practical Rule)....................................2
1.3.3 在序列式开发法和迭代式开发法之间做出选择( Choosing Between
Sequential and Iterative Approaches).......................................................................2
1.3.4 问题定义的先决条件(Problem-Definition Prerequisite)...........................2
1.3.5 需求的先决条件(Requirements Prerequisite)............................................3
1.3.6 架构的先决条件(Architecture Prerequisite)..............................................4
1.3.7 要点(Key Points)........................................................................................8
1.4 关键的“构建”决策 - Key Construction Decisions......................................................8
1 . 4 . 1 核 对 表 : 主 要 的 构 建 实 践 – C h e c k l i s t : M a j o r C o n s t r u c t i o n
Practices......................................................................................................................8
1.4.2 要点(Key Points)........................................................................................9
创建高质量的代码
2.1 软件构件中的设计 - Design in Construction..........................................................10
2.1.1 设计中的挑战................................................................................................10
2.1.2 关键的设计概念 – Key Design Concepts....................................................10
2.1.3 设计构造块:启发式方法 – Design Building Blocks: Heuristics...............12
2.1.4 设计实践 – Design Practices........................................................................14
2.1.5 要点 - Key Points........................................................................................15
2.2 可以工作的类 – Working Classes...........................................................................16
2 . 2 . 1 类 的 基 础 : 抽 象 数 据 类 型 ( A D T s ) – C l a s s F o u n d a t i o n s : A b s t r a c t
DataTypes.................................................................................................................16
2.2.2 良好的类接口 – Good Class Interfaces........................................................16
i