"UML用户指南(第2版)/图灵计算机科学丛书"的书摘……
312统一建模语言(UnifiedcModelingcLanguage,1UML)是一种用于对软件密集型系统的制品进行可视化.c详述.c构造和文档化的图形语言.aUML给出了一种描绘系统蓝图的标准方法,1其中既包括概念性的事物(如业务过程和系统功能),1也包括具体的事物(如用特定的编程语言编写的类.c数据库模式和可复用的软件构件).a.1a1c1ac111c111a1a1
313本书旨在教会读者如何有效地使用UML.a2a2c2ac222c222a2a2
314本书涵盖了UML2.20.a3a3c3ac333c333a3a3
315目标4a4c4ac444c444a4a4
316在本书中,5读者将获益于以下几点:5a5c5ac555c555a5a5
317.5明白UML是什么,6不是什么,6以及为什么UML对于开发软件密集型系统的过程非6a6c6ac666c666a6a6
318常重要.a7a7c7ac777c777a7a7
319.7掌握UML的术语.c规则和惯用法,8一般说来,8还将学会如何有效地使用这种语言.a8a8c8ac888c888a8a8
3110.8知道如何应用UML去解决许多常见的建模问题.a9a9c9ac999c999a9a9
3111本书为UML具体特征的使用提供了参考资料,10但它不是一本全面的UML参考手册,c全面的参考请参阅我们编写的ThecUnifiedcModelingcLanguagecReferencecManual第2版(Rumbaugh.cJacobson.cBooch合著,10Addison-Wesley出版公司2005年出版)1.a10a10c10ac101010c101010a10a10
3112本书描述了使用UML进行开发的过程,11但并没有提供对于开发过程的完整参考资料.a开发过程是ThecUnifiedcSoftwarecDevelopmentcProcess(Jacobson.cBooch.cRumbaugh合著,11Addison-Wesley出版公司1999年出版)9一书的重点.a11a11c11ac111111c111111a11a11
3113最后,12本书提供了如何运用UML去解决许多一般的建模问题的提示和技巧,12但没有讲述如何去建模.a本书类似于一本编程语言的用户指南,12它教用户如何使用语言,12而不教用户如何编程.a12a12c12ac121212c121212a12a12
3114读者对象13a13c13ac131313c131313a13a13
3115进行软件开发.c部署和维护的人员均可使用UML.a本书主要针对用UML进行建模的开发组成员,14但它也适用于为了理解.c建造.c测试和发布一个软件密集型系统而一起工作的人员,14他们要阅读这些模型.a虽然这几乎包含了软件开发组织中的所有角色,14但本书特别适14a14c14ac141414c141414a14a14
3116合下述人员阅读:分析员和最终客户(他们要详细说明系统应该具有的结构和行为).c体系结构设计人员(他们设计满足上述需求的系统).c开发人员(他们把体系结构转换为可执行的代码).c质量保证人员(他们检验并确认系统的结构和行为).c库管理人员(他们创建构件并对构件进行编目).c项目及程序管理者(他们一般是把握方向的领导者,15要进行有序的管理,15并合理地分配资源,15以保证系统的成功交付.a15a15c15ac151515c151515a15a15
3117使用本书的人员应该具有面向对象概念的基本知识.a如果读者具有面向对象编程的经验或懂得面向对象的方法,16就能更容易掌握本书内容,16但这并不是必需的.a16a16c16ac161616c161616a16a16
3118怎样使用本书17a17c17ac171717c171717a17a17
3119初次接触UML的开发人员最好按顺序阅读本书.a第2章提出了UML的概念模型,18读者应特别予以注意.a所有的章节都是这样组织的——每一章建立在前面各章的内容之上,18循序渐进.a18a18c18ac181818c181818a18a18
3120至于正在寻求用UML解决常见的建模问题的有经验的开发人员,19可以按任意顺序阅读本书.a读者应该特别注意在各章中提到的常见建模问题.a19a19c19ac191919c191919a19a19
3121本书的组织及特点20a20c20ac202020c202020a20a20
3122本书主要由7个部分组成:21a21c21ac212121c212121a21a21
3123.21第一部分入门22a22c22ac222222c222222a22a22
3124.22第二部分对基本结构建模23a23c23ac232323c232323a23a23
3125.23第三部分对高级结构建模24a24c24ac242424c242424a24a24
3126.24第四部分对基本行为建模25a25c25ac252525c252525a25a25
3127.25第五部分对高级行为建模26a26c26ac262626c262626a26a26
3128.26第六部分对体系结构建模27a27c27ac272727c272727a27a27
3129.27第七部分结束语28a28c28ac282828c282828a28a28
3130本书还包含两个附录:UML表示法的概要和Rational统一过程的概要.a在附录后,29提供了一个常见术语表和一个索引.a29a29c29ac292929c292929a29a29
3131每章都描述了针对UML具体特征的用法,30其中的大部分按下述4节的方式组织:30a30c30ac303030c303030a30a30
3132(1)入门31a31c31ac313131c313131a31a31
3133(2)术语和概念32a32c32ac323232c323232a32a32
3134(3)常用建模技术33a33c33ac333333c333333a33a33
3135(4)提示和技巧34a34c34ac343434c343434a34a34
3136第3节“常用建模技术”提出一组常见建模问题并予以解决.a为了便于读者浏览本书找到这些UML的应用场合,35每一个问题都标有一个明显的标题,35如下例所示.a35a35c35ac353535c353535a35a35
3137类似地,36把附加的解释和一般性的指导分离出来作为注解,36如下例所示.a36a36c36ac363636c363636a36a36
3138注解UML中的抽象操作对应于C++中的纯虚操作,c叶子操作对应于C++的非虚操作.a37a37c37ac373737c373737a37a37
3139UML的语义是非常丰富的,38因此对一个特征的描述自然会涉及另一个特征.a在这种情况下,38在自然段的最后部分标注交叉引用,38正如本段这样.a[第15章讨论构件.a]c38a38c38ac383838c383838a38a38
3140c在图中使用灰色字1是为了表明这些文字不是模型本身的一部分,39只是用于解释模型.a程序代码用Courier字体表示以示区别,39如thiscexample.a39a39c39ac393939c393939a39a39
3141致谢40a40c40ac404040c404040a40a40
3142作者向BrucecDouglass.cPercKrol和JoaquincMiller表示感谢,41谢谢他们帮助审阅了第2版的书稿.a..41a41c41ac414141c414141a41a41
3143UML简史42a42c42ac424242c424242a42a42
3144通常公认的第一个面向对象语言是1967年由Dahl和Nygaard在挪威开发的Simula-67.a虽然该语言从来没有得到大量拥护者,43但是它的概念给后来的语言以很大启发.aSmalltalk在20世纪80年代早期得到了广泛的使用,43到20世纪80年代晚期跟着出现了其他的面向对象语言,43如ObjectiveC.cC++和Eiffel等.a方法学家面对新类型的面向对象编程语言的涌现和不断增长的应用系统复杂性,43开始试验用不同的方法来进行分析和设计,43由此在20世纪80年代出现了面向对象建模语言.a在1989年到1994年之间,43面向对象的方法从不足10种增加到50种以上.a面对这么多的方法,43很多用户很难找到一种完全满足他们要求的建模语言,43于是就加剧了所谓的“方法战”.a一些明显突出的方法脱颖而出,43其中包括Booch方法.cJacobson的OOSE(面向对象的软件工程)和Rumbaugh的OMT(对象建模技术).a其他的重要方法还有Fusion方法.cShlaer-Mellor方法和Coad-Yourdon方法.a这些方法中的每一种方法都是完整的,43但是每一种方法又都被认为各有优点和缺点.a简单来说,43Booch方法在项目的设计和构造阶段的表达力特别强,43OOSE对以用况作为一种途径来驱动需求获取.c分析和高层设计提供了极好的支持,43而OMT对于分析和数据密集型信息系统最为有用.a43a43c43ac434343c434343a43a43
3145到20世纪90年代中期方法之争到了转折点,44当时GradycBooch(Rational软件公司).c44a44c44ac444444c444444a44a44
3146JamescRumbaugh(通用电气公司).cIvarcJacobson(Objectory公司)和其他一些人开始从彼此的方法中取长补短,45他们的共同成果,45开始在全球范围内被公认为是领导性的面向对象方法.a作为Booch方法.cOOSE方法和OMT方法的主要作者,45促进我们创建统一建模语言的原因有三个.a首先,45我们的方法已经在朝着相互独立的方向演化,45而我们希望它朝着一个方向演化,45这样可以消除任何不必要的和不合理的潜在差别,45因为这样的差别会加重用户的疑惑.a第二,45通过统一我们的方法,45能够给面向对象的市场带来一定的稳定,45能够让人们使用一种成熟的建模语言去设计项目,45使工具开发人员把焦点集中于最有用的特征.a第三,45希望我们的合作能够改进三种早期的方法,45帮助我们吸取教训,45解决我们以前的方法不能妥善处理的问题.a45a45c45ac454545c454545a45a45
3147统一工作之始,46我们确立了3个工作目标:46a46c46ac464646c464646a46a46
3148(1)运用面向对象技术对系统进行从概念到可执行制品的建模.a47a47c47ac474747c474747a47a47
3149(2)解决复杂系统和关键任务系统中固有的规模问题.a48a48c48ac484848c484848a48a48
3150(3)创造一种人和机器都可以使用的建模语言.a49a49c49ac494949c494949a49a49
3151设计一种用于面向对象分析和设计的语言与设计一种编程语言不同.a首先,50必须缩小问题范围:这个语言是否应包含需求描述?这个语言是否应支持可视化编程?其次,50必须在表达能力和表达的简洁性之间做好平衡.a太简单的语言将会限制能够解决的问题的范围,50而太复杂的语言将会使开发人员无所适从.a在统一现有方法的情况下,50也必须小心从事.a若对语言进行太多的改进,50将会给已有用户造成混乱,c若不对语言进行改进,50则将会失去赢得更广大的用户群和使语言得到简化的时机.aUML的定义力争在这些方面做出最好的选择.a50a50c50ac505050c505050a50a50
31521994年10月,51Rumbaugh加入Booch所在的Rational公司,51自此正式开始了UML的统一工作.a我们的计划最初注重于联合Booch方法和OMT方法.a“统一方法”(当时的名称)0.508版本(草案)在1995年10月发布.a差不多就在那时,51Jacobson也加入了Rational公司,51于是UML项目的范围又做了扩充,51把OOSE也结合进来.a经过我们的努力,51在1996年6月发布了UMLc0.509版本.a在1996年全年,51我们在软件工程界征求和收集反馈意见.a在此期间,51明显地有很多软件组织把UML作为商业战略来考虑.a我们与几个愿意致力于定义一个强大而完善的UML的组织一起成立了一个UML伙伴组织.a对UMLc1.500版本做出贡献的合作伙伴有DEC.cHP.cI-Logix.cIntellicorp.cIBM.cICONcComputing.cMCIcSystemhouse.cMicrosoft.cOracle.cRational.c丁I和Unisys.a这些合作伙伴协作产生的UMLc1.500版本是一个定义明确.c富有表现力.c强大.c可应用于广泛问题域的建模语言.aMarycLoomis帮助说服OMG(对象管理组织)发布了一个标准建模语言的提案需求(RFP).a在1997年1月,51作为对该提案的响应,51UMLc1.500作为标准化的建模语言提交给OMG.a51a51c51ac515151c515151a51a51
3153在1997年1月至7月之间,52合作伙伴的队伍不断扩大,52实际上包括了所有对最初OMG的提议做出贡献的公司,52它们是AndersencConsulting.cEricsson.cObjeccTimecLimited.cPlatinumcTechnology.cPTech.cReichcTechnologies.cSofteam.cSterlingcSoftware和Taskon.a为了制定UML规范,52并把UML与其他的标准化成果结合起来,52成立了一支由MCIcSystemhouse公司的CriscKobryn领导并由Rational公司的EdEykholt管理的语义任务组.a在1997年7月,52把UML的修改版(1.511版本)提交给OMG,52申请进行标准化审查.a1997年9月,52OMG的分析与设计任务组(AnalysiscandcDesigncTaskcForce,52ADTF)和OMG的体系结构部接受了该版本,52并把它提交给OMG的全体成员进行表决.a1997年11月14日,52UMLl.511版本被OMG采纳.a52a52c52ac525252c525252a52a52
3154几年来,53UML一直由OMG的修订任务组(RevisioncTaskcForce,53RTF)维护,53陆续研制了UML的1.523.c1.524和1.525版本.a从2000年到2003年,53一个经过扩充了的新的伙伴组织制定了一个升级的UML规范,53即UML2.520.a由IBM的BrancSelic领导的定案任务组(FinalizationcTaskcForce,53FTF)对这个版本进行了为期一年的评审,53UMLc2.520的正式版本于2005年初被OMG采纳.aUMLc2.520是对UMLl的重大修订,53包括了大量的新增特性.a此外,53基于先前版本的经验,53UMLc2.520对先前版本的构造物做了很多的修改.a可以在OMG的网站www.52omg.52org上获得当前的UML规范文档.a53a53c53ac535353c535353a53a53
3155UML是很多人的工作成果,54它的思想来自于大量的先前工作.a重新构造一个贡献者的完整列表将是一项很大的历史性研究工程,54根据对UML影响大小来识别那么多的先驱者就更为困难.a同所有的科学研究和工程实践一样,54UML只是站在巨人肩上而已.a...54a54c54ac545454c545454a54a54