前 言
一切要从《系统分析师UML实务手册》谈起
在台湾,有许多读者手上同时拥有《系统分析师UML实务手册》及《C++(www.cppentry.com)程序员UML实务手册》这两本书。有些读者看完前者之后,又买了后者;也有些读者买了后者之后,又买了前者。甚至,多位非C++(www.cppentry.com)用户的读者来信说到,他们很喜欢《C++(www.cppentry.com)程序员UML实务手册》一书。在这里,我想一并谈论我对这两本书的原始写作构想,希望读者喜欢这两本书。
OOAD、UML或MDA的初学者,无论是在校学生或已经身为项目经理、系统分析师或程序员,我都会建议从《系统分析师UML实务手册》读起,然后再续读《C++(www.cppentry.com)程序员UML实务手册》,即便您不是C++(www.cppentry.com)的使用者,甚至很多年不碰程序代码了,都可以读这两本书,前提是您想学OOAD、UML或MDA
在《系统分析师UML实务手册》一书中,我摘掉了许多烦杂的UML概念,仅精简介绍部分核心概念。我发现在编写过程中,谈论许许多多的主题并不难;如何去除烦杂的枝节,但是又能让读者学到东西,这通常才是我伤透脑筋、不断斟酌的地方。
其实,针对《系统分析师UML实务手册》一书,我把它设想为UML入门书,所以在这本书中没有一次谈论太多UML概念,一方面怕吓走了UML初学者,另一方面也是因为锁定本书为给系统分析师读的UML专书,所以我也得仔细考虑系统分析师在实务上到底得懂多少UML概念才够。基于这两个考虑,我就大刀阔斧砍掉许多关于UML的细节。
我认为学习UML最成功的技巧是“提问”;如果问对了问题,就能找到所需要的答案。那么怎样提问可以获得建构UML模式所需要的资料?我在多次的授课教材中都编写过类似的问卷,试图告诉系统分析师可以向使用者提出哪些问题,而问题的答案可以被填入哪款UML图中。因此,我把“提问”的技巧和经验放到《系统分析师UML实务手册》书里。至于模拟对话的设计,只是为了将“提问”放到一个情境,让读者体验可以在什么情境下提问,如此误打误撞而成。
在《系统分析师UML实务手册》中,我试着带引比较新颖的MDA概念,表面看起来谈得很少,可是却是支撑整本书的重要骨干。MDA的三个主要阶段为CIM(Computation Independent Model)、PIM(Platform Independent Model)和PSM(Platform Specific Model)。在《系统分析师UML实务手册》一书中,界定系统分析师的生成属于CIM及PIM阶段,因此整本书并没有提到PSM的样貌。我自己认为这样的安排是合理的,因为这是一本写给系统分析师的UML专书,不是谈整个开发程序。
不过,我也想到,如果包含PSM或编码阶段,或许可以让读者看到更清楚的全貌。PSM必须锁定实体平台,所以谈PSM的书必须包含更多的UML、更多的实体平台技术、更多的设计技巧,这样一本书必须有更精心的写作构想,否则读者可能会读得很吃力。
但是,我也想要带领《系统分析师UML实务手册》的读者更进一步地学习OO、UML或是任何的软件开发主题。所以编写了《C++(www.cppentry.com)程序员UML实务手册》一书。由于这本书是锁定给程序员看的,所以讨论了更多关于UML的概念!
在《C++(www.cppentry.com)程序员UML实务手册》一书中,虽然不再提到MDA的概念,但其实我将它界定为PSM及编码阶段。所以,您可以发现《C++(www.cppentry.com)程序员UML实务手册》书中的UML图绘制精细。在MDA的定义中,程序语言也是一种实体平台,因此可以说,在《C++(www.cppentry.com)程序员UML实务手册》中关于C++(www.cppentry.com)的设计图隶属于PSM阶段。 因此,在《C++(www.cppentry.com)程序员UML实务手册》一书中,读者可以看到最简单的PSM设计图与PIM设计图的差异,同时也会看到程序员拿到PSM设计图时,可以如何编写程序代码。当然,最重要的是,通过《C++(www.cppentry.com)程序员UML实务手册》一书,读者可以学到更多UML在实作阶段的应用状况。
本书目标读者
如果您是先阅读了《系统分析师UML实务手册》一书之后,才阅读此书的话,相信您会学到更多UML概念,同时也会知道看了UML图之后,如何按图施工,相当有助于实际工作。
虽然本书采用C++(www.cppentry.com)程序语言描述,但是UML从来就不局限于任何特定的程序语言。同时,我也只是希望藉由这本书将程序员领进UML世界,所以即便是非C++(www.cppentry.com)用户的读者,其实也适合阅读此书。(经过台湾读者的证明,许多非C++(www.cppentry.com)用户的读者也很推荐此书。)
本书结构
本书首先在第1章中简介UML;然后在第2章中通过一个简单的范例示范C++(www.cppentry.com)如何落实UML图;随后在第3章中介绍C++(www.cppentry.com)的档案结构;接着是整本书的核心第4~14章分别详细介绍了UML的核心概念、类别图、循序图、使用案例图及其叙述、状态图及活动图,以及C++(www.cppentry.com)如何按图施工、StarUML如何绘制UML图。 第1章主要介绍UML是什么、UML图的用途和长相、认识UML工具,让您在最短的时间内最迅速地知道什么是UML。
第2章主要将本书提到的UML与C++(www.cppentry.com)的对应浓缩成一章,让您可以先睹为快,只要花费一会儿的工夫就可以知道整本书的重点。
第3章将说明如何使用免费C++(www.cppentry.com)工具—Dev-C++(www.cppentry.com),以及C++(www.cppentry.com)的档案结构。
第4章将讲述重要的UML概念,奠定您的UML及对象导向(Object-Oriented)基础。
第5~14章会分别详细介绍类别图、循序图、使用案例图及叙述、状态图及活动图中的UML概念,以及C++(www.cppentry.com)程序员看到这几款UML图之后,应该怎么按图施工,还介绍了免费的UML工具—StarUML如何绘制UML图和自动产出程序代码。
【责任编辑:
杜书 TEL:(010)68476606】