Peter Coad,软件工程和建模大师。TogetherSoft公司总裁,Color UML 和 FDD 的创始人。
Peter Coad作为世界上最杰出的软件设计师之一,曾经设计过数以百计优秀的组件和对象系统。Peter和别的软件工程大师最大的区别也是其参予的实际项目众多经验极为老道,包括以其名称命名的Coad方法,FDD等。曾一手创建Together公司,后随公司一起加入Borland。
Peter Coad著书很多,包括《Object Oriented Analysis》,《Java Modeling In Color With UML》和《对象模型:策略模式应用》等。在《Java Modeling In Color With UML》书中Peter Coad提出的几类基本元模型对于实际进行建模工作有着非比寻常的指导价值——当大多数人在分析业务领域模型时,Peter Coad则在分析业务领域的元模型。
《对象模型:策略模式应用》一书则介绍了如何应用策略和模式建立有效的对象模型。可能通过对案例的类比及应用这些策略和模式,开发自己的有效的对象模型。其中还提供了用于开发对象模型的Coad标注法,它把从概念模型到程序代码的多个层次、多个方面的模型统一在一起,是一种切实可行的图形标注法。
在软件工程这一块,Peter Coad还真是很牛的一个人物。包括以其名称命名的Coad方法。据说在Together到处都是Peter的门生,Together现在给公司认证工程师发的证书上面写的是Together Certified,但是第一批认证工程师拿到上面写的是什么呢?Coad Certified!呵呵,这些人是黄埔一期。
Peter和别的大师最大的区别是其参予很多的实际项目,经验极为老道。在一些细节上面都看得出来。在画UML图的时候,Coad方法和别人的是有点不一样的。就拿关系的方向来说,有的人使用单向箭头来表示,但是在Coad习惯下往往使用双向箭头,其用意很明显就是在设计或者说编程的时候我们往往需要从关系的任何一方得到另一方的Reference,这是典型的程序员的思路,就是出于程序的需要不太可能老是有单向的关系。
Peter的个人论著发布页
http://bdn.borland.com/coadletter/
个人简介编辑本段回目录
Peter Coad is a software entrepreneur and author of books on programming. He is notable for his role in defining what have come to be known as the UML colors,[1] a color-coded notation chiefly useful for simplifying one's understanding of a design or model.
Coad attended the Stanford Executive Program for Growing Companies and received a Master of Science in Computer Science (from USC) and a Bachelor of Science with Honors in Electrical Engineering (from OSU).
Career
In 1986, Peter Coad founded Object International, a software consulting firm where he served as President.
During the 1990s Coad co-authored six books on the analysis, design, and programming of object-oriented software. During this time Coad became famous through his work on the Coad/Yourdon method for Object-oriented analysis (OOA) which he had developed together with Edward Yourdon. He is considered a supporter of the lightweight methodology called Feature Driven Development (FDD), which was developed primarily by co-author Jeff De Luca.
In 1999, Coad was one of the founders of the software company TogetherSoft, where he served as Chairman, CEO, and President.
From about 2000 to 2004 Coad was Editor-in-Chief of the Coad Series[2] of books from Prentice Hall. This series of books were in the field of software development.
Coad became senior vice president and chief strategist of Borland Software Corp. when Borland bought TogetherSoft in January 2003. Coad left Borland before the end of 2003 and turned his attention to interests outside of the software development field, especially simplified teaching techniques for learning to read The Bible in its original languages.
著作一览表Books编辑本段回目录
Java Modeling In Color With UML, Peter Coad, Eric Lefebvre, and Jeff De Luca, June 1999, ISBN 0-13-011510-X
Java Design: Building Better Apps and Applets (2nd Edition), Peter Coad, Mark Mayfield, and Jon Kern, 1998, ISBN 0-13-911181-6
Object Models: Strategies, Patterns, and Applications, (2nd Edition) Peter Coad, Mark Mayfield, and David North, 1996, ISBN 0-13-840117-9
Object-Oriented Programming, Peter Coad and Jill Nicola, 1993, pages 582, ISBN 0-13-032616-X
Object Oriented Design, Peter Coad and Ed Yourdon, 1991, ISBN 0-13-630070-7
Object Oriented Analysis (2nd Edition), Peter Coad and Ed Yourdon, 1990, pages 233, ISBN 0-13-629981-4
Peter Coad名作《彩色建模》中译本 编辑本段回目录
对象技术大师Peter Coad的领域建模名作《Java Modeling In Color With UML》中译本即将出版。
本书在面向对象领域名气颇大,但由于出版时间稍早,而且只有6章,国内出版社引进的兴趣不大,随着时间一年年过去,就更没有出版社问津。我们对此书的信息大多只是来自网络上残缺的电子版。
乘着“领域驱动**”、“领域**”等等词汇再度活跃的春风,机械工业出版社大胆引进了本书。由UMLChina王海鹏翻译的中译本即将上市,而且要出精装彩页本!
不要被书名中的Java、UML所蒙蔽,本书的焦点是Modeling In Color。在本书中,Peter Coad把领域模型看作主要由四种基本的架构型(Archetype)组成,MomentInterval、Role、PartyPlaceThing、Description,并用四种颜色来标记它们。以此为利器,可以如庖丁解牛般解剖各类系统的业务模型。
Peter Coad的7项修炼编辑本段回目录
Peter Coad的7项修炼
王海鹏
Peter Coad是我喜欢的一位面向对象专家和软件创业者。他在上世纪九十年代与人合著了6本关于面向对象软件的分析、设计和编程的书籍。他以《面向对象分析》一书中和Yourdon共创的Coad/Yourdon方法而成名。1999年,他创建了TogetherSoft公司。2003年,TogetherSoft卖给了Borland公司,他成为了Borland公司的副总裁。后来,他离开了Borland,兴趣转向了软件之外,教人读希腊文版的圣经。
他最值得一提的技术贡献,就是提出了“彩色UML”建模的方法,这也是他最后一本书《彩色UML建模》的主题。在这种建模方法中,他使用了4种颜色,代表4种不同设计意图的类,创造性地回答了面向对象分析和设计的一个根本问题:“怎样识别类,并确定方法和属性?”这本书已由机械工业出版社引入版权并出了中文版,很荣幸,我是这本中文版的译者。
我对Coad的关注始于十多年前,那时朋友向我推荐了北大出版社引进的《面向对象分析》一书。后来因为学习Java、UML建模、关注Borland公司的产品,又看到了TogetherSoft和Coad的名字。再后来,敏捷方法学兴起,我又看到了Coad,他是特征驱动开发(FDD)的主要支持者。向师傅学习,要学师傅练功的方法,而不只是师傅的招式。我想知道的是:为什么Peter Coad会发明彩色UML的方法?或者说,Peter Coad是怎样炼成的?
在他1994年左右的一篇文章中,为这个问题给出了一些提示。这篇文章标题是“Amplified Learning”,介绍了“7种智能”的理论和应用。
语言是第一种智能。著名的通天塔的故事体现了自然语言表达的重要性:失去了语言沟通能力,团队协作就成为了不可能的任务。语言能力的习得,有一句话可以概括:“听说领先,读写跟上”。学习本国语言和外语都是如此。语言的重要性,实际上体现的是沟通的重要性。据说,当年TogetherSoft公司在面试时,会先让被面试的人选一个与软件开发无关的话题讲15分钟。通过这样的面试环节,可以了解面试者对生活的一些理解和表达沟通的能力。这里我还想强调一下中国程序员的英语能力。由于软件方面的最好的信息几乎都是英语的,所以良好的英语能力对程序员有很大的帮助。一般来说,最成功的人都是拥有最好信息的人。
代码的可读性也是语言能力的体现。Knuth在1984年提出的Literate Programming,把编程比喻为写文学作品。既然是文学作品,就会有不同的风格。有晦涩难懂,也有深入浅出、生动有趣。所以作为一名好的程序员,需要对自然语言和编程语言都有深刻的理解,要懂得欣赏和创造文章之美,代码之美。
那么什么样的文章是好文章?一个留美回来的英语作文教师曾对我说,好文章首先要有“something new(新东西)”。新的观点、新的解释、新的视角、新的实践、新的证据......都可以。然后才是布局谋篇、遣词造句。这是西方鼓励创新的思路,所以我们会看到软件业的创新层出不穷。中国人对好文章的评判标准更注重传统。《文心雕龙》里提出的标准是“本乎道,师乎圣,体乎经,酌乎纬,变乎骚”。把软件提升到道的高度,那就是Bjarne Stroustrup所说的,“人类文明运行于软件之上”。
数理逻辑是第二种智能。我们需要对数字敏感,需要具有归纳和演绎的能力。这样的能力虽然也包含在语言学习之中,但更多地包含在数学、物理等理科科目中。在西方,学理科的学生几乎都读过波利亚的《怎样解题》一书。数学是思维的体操,它让我们的思维更灵活、更缜密。懂得欣赏数学之美的人,会看到简洁的公式和逻辑的力量。许多大学的计算机系都是从数学系分出来的,一些老师以前是学数学或物理的。史书记载:“尧造围棋,教子丹朱”。学围棋也是对逻辑思维很好的锻炼。和数学一样,从围棋中我们也可以看到,从一些简单的规则出发,可以怎样建造一个瑰丽的宫殿群。
以上两种智能是学校教育的核心,体现在语、数、外三门主课上。能够熟练灵活地运用语言进行沟通,并能够运用逻辑推理来找出问题和解决问题,学校的基础教育就是成功的。但除此之外,还有一些扩展性的智能,对于我们软件开发者也很重要。
空间色彩是第三种智能。九十年代是GUI的十年,在这十年里,软件的美由内而外,扩展到了视觉领域。叔本华说,“美是最高级的善,创造美是最高级的乐趣”。但是,我们不时会看到一些殊无美感的设计,那真是叫“乏善可陈”。Apple公司的操作系统中,利用色彩来表示窗口的控制按钮,给人以艺术的享受。Peter Coad的彩色UML建模方法利用4种色彩来表示4种不同的架构型,通过色彩强化了信息沟通的效果。我还记得当初在Borland公司的集成环境中第一次看到彩色语法制导时,带来的那种震撼。作为程序员,我们经常需要阅读图表、画设计草图、运用图表或幻灯片来传达信息,空间色彩能力也是相当重要的。
“流光容易把人抛。红了樱桃,绿了芭蕉。”“知否?知否?应是绿肥红瘦。”中国人讲究“诗中有画,画中有诗”。软件是散文,是诗,其中也蕴含着色彩和空间之美。
音乐是第四种智能。科学家有音乐特长的例子比比皆是,并且他们都认为,音乐对他们的专业是有启发的。Spring框架的作者之一Rod Johnson拥有音乐博士学位。旋律和节奏是音乐训练的两个主要方面。从小学乐器的人,长大了唱歌不容易走音。我喜欢在工作环境中使用背景音乐,这样能舒缓压力,激发创造力。《庄子•养生主》载,“庖丁为文惠君解牛,手之所触,肩之所倚,足之所履,膝之所踦,砉然响然,奏刀騞然,莫不中音,合于桑林之舞,乃中经首之会。”庖丁是个解牛的专家,是个哲学家,也是个音乐家。
运动锻炼是第五种智能。许多职业棋手都通过运动锻炼,保持有活力的工作和思考,使自己处于最佳状态。极限编程(XP)在一开始提出“每周工作四十小时”作为一种最佳实践,但是如果你的身体有问题,就会连四十小时都做不到。后来XP将这一实践改成了“保持有活力的工作”,我想大概是因为有些身体好的人,每周工作六十小时也一样很有效率吧。要养成锻炼的习惯,“每天锻炼一小时,健康工作五十年,幸福生活一辈子”。
以上三种智能,体现在音、体、美这三门副课上。
自知是第六种智能。曾子曰:吾日三省吾身。苏格拉底说:“认识你自己”。蘧伯玉年五十而知四十九年非。正确地认识和评价自己,不断地反省自己,这才是进步的基础。《从优秀到卓越》一书的作者柯林斯说,你应该问自己一个问题:在哪个领域你可以做到世界前三?人贵有自知之明。
知人是第七种智能。越来越多的工作,正由团队承担。有一本书名叫“Teamwork Is an Individual Skill(
团队合作是一项个人技能)”。要成为团队的一员,你需要读懂他人,并具备一定的社交技能。然后,通过实现团队的目标来实现自我。“己欲立而立人,己欲达而达人。”如果你是团队的领导,那么知人善任就是一项重要的能力。刘邦因为用对了张良、韩信、萧何而得天下。
寻找怎样的人作为合作的伙伴或朋友?益者三友:友直、友谅、友多闻。怎样看人不走眼?子曰:视其所以,观其所由,察其所安;人焉廋哉。人焉廋哉。
以铜为镜,可以正衣冠;以古为镜,可以知兴替;以人为镜,可以明得失。所以知人也可以促进自知。
知人者智,自知者明。以上两种智能,就属于情商的范畴了。
我们每个人在这7种智能上的发展都不尽相同,如何在这些方面提高自己,是否也是值得考虑的一个问题呢?