《UML和模式应用》(美)Craig Larman著 Applying UML and Patterns (An Introduction to Object-Oriented Analysis and Design)
2个月前开始看,大概花了接近1一个月的时间看完,因为马上要还掉了。所以想总结一些东西写下来,也算做读后感吧。该书以一个POS零售系统的开发为索引,详细介绍了系统分析、设计以至编码的整个过程。以实例为向导,以过程为线索,把系统开发的若干知识融会于二者之中是该书的组织方式,也是该书最大的特点。下面分几个要点对其进行总结:要点1:实例:该书涉及到的POS机终端系统自己认为应该是一个比较简单的系统,又因为书中未对整个系统进行实现,而只是在每个开发阶段选取有代表性的某个点加以实现,所以使得该系统更为简单。但是,作为一本方法介绍的书,这已经足够。而且通过简单的实例说明深刻的道理,正是国外学术界的风格,我想这也是为什么很多人喜欢看原版书籍的重要原因。
要点2:方法学:RUP把系统开发分为Inconception Colaboration Construction Transaction四个阶段。虽然该书中未对使用的开发方法进行说明(或者作者不太强调方法学的问题),但是从书中介绍的主要开发过程(建立用况及其分类和调度和重复的以下几个步骤(建立概念模型并确定关联和属性、建立协作图并运用模式进行职责分配、建立类图并确定其属性、设计到代码的影射))分明显示出了RUP的整个轮廓。
要点3:分析:分析阶段最重要的原则是与实现的无关性,这点在书中体现的非常明确。第一,除了最后用Java实现以外,好象都没涉及的具体的实现技术的问题;第二,一直到建立类图阶段,才涉及到了具体的计算机的一些术语。在这之前的阶段,特别是对系统的概念模型进行建模时,作者回避了计算机中的术语,而用现实系统中的名词对系统建模。
系统顺序图和契约。首先,我以前未接触到过这两种文档,刚开始看到这部分的时候,觉得也没太大作用,但随着慢慢往下看,其重要作用在书中得到了完全的体现。系统顺序图和契约是在系统层次对系统行为进行建模的工具。其作用个人体会有以下两点:一是能够帮助分析人员对系统边界和系统行为有更为明确的认识;二是这两个文档的产品(特别是契约)能够影射到设计阶段建立的协作图,进而影射到设计阶段最重要的工作——类的职责分配。
要点4:设计设计阶段的核心是职责分配。书中引入了GRASP模式组作为职责分配的模式。该模式组包含了以下一个模式:专家、创建者、低聚合度、高耦合度、控制者、多态、纯虚构、中介者、“不要和陌生人讲话”。虽然模式较多,而且各自的作用也不相同,但这些模式体现的原理却并不复杂。专家模式和创建者体现了职责单一原理;低聚合度、高耦合度、中介者、“不要和陌生人讲话”等体现了类间的低聚合和类内高耦合的原理;多态、纯虚构体现了类行为的开放与闭和原则。更进一步,这些模式以及其面向对象的原则体现了工程化的思想——如何更好的实现软件复用。
要点5:开发流程综述计划:理解需求->确定用况->用况分类和时间调度->开始一个开发周期
分析:建立概念模型->填加关联->填加属性->记录术语->建立系统顺序图和契约
设计:描述真实用况->建立协作图(交互图)->利用GRASP模式进行职责分配->判定可见性->设计类图->部署
构造:设计到代码的影射->进入下一个开发周期