第二章,理性模型
工程师对于设计过程有一个清晰但通常来说也是隐含的模型,这个隐含的模型是在项目设计开始时根据目标,必要条件,约束等设计出来的,我们可以在开始设计时将条件设计出一个决策树,将各种暂时能想到的决策用树的形式展示出来,正如本章开篇所说因为设计的理念是普通的搜索理论即巨大的组合空间搜索,我是这样理解这句话,设计就是各个模块的各种可能选择最优解的组合,在项目开始设计时,将我们能想到的各种解用决策树的形式展示出来,并给每个节点(每种设计可能)一个权重,从而取出目前的最优设计.而有了这个决策树的理性模型,就更方便的和项目组中的其它成员分析项目的设计.注意:理性模型不是设计决策,而是暂定的设计方案。
第三章,理性模型的缺陷
理性模型不是设计决策,而是暂定的设计方案,我们在项目开发中,刚开始我们并不知道项目树的样子,只有一边设计一般探索才能完善这颗树,而且约束等外部条件也在持续变化。这是一种设计过程的模型,设计过程的模型会影响设计的本身,因为当我们有了这个理性模型后,我们后续的工作都会围绕理性模型开展
第四章,需求
软件设计不能在一开始就提出所有的需求,在开始时提出所有的需求必将导致项目的失败,因为在项目开始时我们并不能很好的考虑到每一点,我们应该提出概念模型和主要的需求和约束来进行开发,在根据主要模型和主要约束完成第一个版本后再对这些主要需求进行延伸,而且必须严格控制在开发一个版本进行过程中的需求蠕动(根据原有需求在一个版本未完成时对需求进行更改或者延伸)
第六章,协作设计
在多人协作设计一个项目时,必须要有一个人主导设计,概念模型必须要由一个人提出,但是只有两个人的团队除外,因为两个人比多人能更快的达成一致,且沟通更加高效,且可以互相监督和提出意见,这样效率比单人设计效率和质量更高.
####第九章,模型设计:宁错勿淆,错误可以让我们很快接近真理,而混乱却不能
设计前应该将对用户的认识和使用系统的目的详细列出,如果面向的是不同的用户,则计算出不同用户的各自权重,根据权重来设计一个折中的设计,在设计时,团队必须对模型定义出通用语言(领域驱动设计),对一个模型要进行详细的说明,这样才能对由其引发的细节进行更深层的思考(我们在设计原型和开发时,进程随着开发和设计的深入,对原有的流程有了更深的思考,会发现原有的流程并不合理),另外随着思考的深入,产生的细节和问题也会越来越不明确,这时可以大胆的去假设,因为宁错勿淆,错误可以让我们很快接近真理,而混乱却不能