`
davidx
  • 浏览: 83089 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

UML学习笔记(ZT)

阅读更多

不知道把论坛的帖子转到这犯规不?怕找不到先留个档

http://www.iteye.com/topic/108

 

UML
作者:Thatway  保留所有权利


为什么重要
您应该使用UML吗?一个字:是!……新的书、文章等等将会全部以UML作为符号。……如果你正要开始使用建模符号,您就应该直接学习UML。
—— Martin Fowler 1997

统一建模语言UML(Unified Modeling Language)是一套用于面向对象系统建模的标准符号,在20世纪90年代几经波折,终于得到对象管理组织OMG(Object Management Group)的支持,成为业界符号系统的统一标准。
因此,了解它是学习后面技术的前提。这并不是夸张,在看懂(并非精通)UML以前,我压根没明白《设计模式》,因为《设》里面就用到象UML那样的语言——OMT。

那UML无疑是重要,但它能很好的胜任建模工作吗?关于这个问题,我没有能力给您一个完美的答复,相关的“讨论”也在继续,但下面的几个事实相信会给您信心。
1。UML吸取多种建模语言的优点,包括三位全球顶级方法学家的贡献。
2。它在风雨中崛起,经受考验。
3。UML得到OMG组织及其成员的支持。
4。相当多的业界巨头们也在使用着它。


学习旅程
UML体系是如此复杂,可能会让您觉得难以把握。但是我们只要有选择性的学习就足够了,剩下的当日后有需要时再深入研究。

在学习之前,我们先来做一个说明,UML仅是一门语言,学习UML不等同于学习系统建模,它们的关系就好比学习中文和学习文章写作那样。只是很多情况下,我们都会把它们联系在一起而已。

那好,就让我们开始吧,先来浏览一下UML的全貌。由于我们很难只从一个角度去完整描述一个系统的所有方面。因此UML提供了以下五种视图,它们分工合作,又互相补充。
1) 用况视图(Use Case View)
2) 设计视图(Design View)或逻辑视图(Logical View)
3) 进程视图(Process View)
4) 实现视图(Implementation View)或组件视图(Component View)
5) 实施视图(Deployment View)

而这五个视图又分别用到以下九种图中的一种或几种。
1) 用况图
2) 类图
3) 对象图
4) 顺序图
5) 协作图
6) 状态图
7) 活动图
8) 构件图
9) 实施图
总体关系如下图所示:

好,看一下相关资源。
1) 《UML用户指南》
此书出自名家,只是部分翻译欠佳。阅读时弄清楚上述五个视图的概念和几种常用的图的表示即可,初次阅读不必深究。
2) 《UML和模式应用》
书中示范如何结合UML以增量方式开发一个系统,着重介绍了OO分析的技巧和法则。内容稍嫌罗嗦,但不失为一本好书。
3) 《UML Distilled》
另一本入门好书,作为普通使用已经足够。
4) 《非程序员》第二期之《用UML设计Java应用程序》
阅读这一短篇文章,可以快速了解如何在实际项目中使用UML。
5) http://www.uml.org/
UML的官方网站,可以找到很多有用资料。
6) http://www.umlchina.com/
它发行《非程序员》电子杂志和记录很多中文文档,还有一个非常活跃的讨论组。
7) http://www.csdn.net/develop/
8) http://www-900.ibm.com/developerworks/cn
这两个网站可以搜索到很多UML的中文文章,只是比较零散,不大适合系统学习。

再来看一下UML工具。在这方面我没有很好的经验,且看看别人怎么说。
1) 《非程序员》第一期的“选择一种UML建模工具”介绍了评价UML工具的一系列标准。
2) UML官方网站资源页的“UML Tools”栏(链接)列出了极多的UML工具,可供选择。

最后,我们讨论一下几个具有“争议”性的概念——聚合(Aggregation)、组合(Composition)、相识(Acquaintance)、关联(Association)、依赖(Dependence)和引用(Reference)。它们极具相似性,在代码的实现上有些甚至是完全一样的,然而从概念上理解和区分它们对我们的系统分析和设计是有重要意义的。
聚合是指一个对象拥有另一个对象,仅强调“拥有”。而组合是指一个对象是另一个对象的一部分,强调“不可分割”,两个对象具有相同的生命周期。两者的差别就好比创立一间公司时您可以不要雇员(拥有),但创造一个人时您却不能丢掉了他的心(不可分割)。
关联和依赖都是指一个对象知道另一个对象。区别在于关联是一种结构关系,表现为一个对象能够获得另一个对象的实例引用并调用它的服务(即使用它);依赖是一种使用关系,表现为一个对象仅仅是调用了另一个对象的服务。相识既可能是关联,也可能是依赖。
引用是指那些指向对象的类属性。实现组合、聚合和关联时无可避免的要用到引用,但实现依赖时却不一定用到。
总的来说,关联和依赖是同级的;组合是一种聚合,而聚合是一种关联;引用则是相对独立的。

与此相关的文章有:
1) 《UML用户指南》第10章,Booch+详细讲述了依赖和关联的含义和区别。
2) 《设计模式》中文版第15~16页,Gof讲述了聚合和相识的差别。
3) 《非程序员》第二期之《类之间设置成“关联”OR“依赖”似乎全在个人喜好》是几位朋友就聚合、关联和依赖的区别进行的很好的讨论。

至此,如果您对它们的定义持不同意见,又或者觉得难以理解的话,不妨把别人的那一套都抛开,自己把它们重定义一遍。反正我们又不是理论家,就算定义得不科学也没关系,只要和我们的项目有关的人员都一致的理解和接受就可以了。毕竟有效的沟通才是我们真正的目的。

实践建议
按需剪裁。项目要用到什么就学习什么,暂时不用的就放下。我们的目的是当前的系统建模,而不是一下子成为UML高手。
自由扩展。结合我们的实际情况,在使用的过程中,要明确UML的重点是“沟通”,其次才是“公共”。UML本身有许多规则和约定,但没必要一一遵守。只要有利于沟通的,我们就采用,否则就摒弃。通常我们的文档只是在小范围里传播,要统一理解并不困难。当然,当规则定好了后,最好就不要随意更改了。

声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
分享到:
评论

相关推荐

    [UML]UML学习笔记

    ### UML学习笔记知识点 #### 一、UML概述与重要性 - **定义**: 统一建模语言(Unified Modeling Language, UML)是一种标准化的建模语言,用于描述和构建软件系统的结构和行为。它由一组图表、符号和规则构成,...

    大象UML学习笔记

    大象学习笔记

    UML学习笔记.zip

    **UML学习笔记** UML(Unified Modeling Language)是一种标准化的通用建模语言,用于软件开发过程中的系统建模。这个“UML学习笔记”压缩包包含了一系列关于UML的详细资料,涵盖了从基础概念到高级应用的多个方面...

    我的uml学习笔记(在尚学堂学习的)

    《UML学习笔记——探索软件建模的利器》 UML,全称为统一建模语言,是软件开发中的一种重要工具,尤其在需求分析和设计阶段发挥着关键作用。它并非一种具体的分析或设计方法,而是图形化表示法,帮助我们清晰地表达...

    尚学堂uml学习笔记 李腾飞讲解

    《尚学堂uml学习笔记 李腾飞讲解》是针对UML(统一建模语言)的一份详细学习资料,由知名讲师李腾飞主讲。这份笔记涵盖了UML的核心概念、图形表示和实际应用,旨在帮助学习者深入理解并掌握这一重要的软件设计工具。...

    个人UML学习读书笔记

    以下是对“个人UML学习读书笔记”中可能涵盖的知识点的详细阐述:** 1. **UML简介** - UML是由Grady Booch、Ivar Jacobson和James Rumbaugh共同开发的,目的是提供一个标准的图形化语言,使得软件开发者能够清晰地...

    UML学习笔记 建模语言

    ### UML学习笔记:建模语言详解 #### 统一建模语言(UML)概述 统一建模语言(UML, Unified Modeling Language)是一种被广泛应用于软件开发领域的标准化建模语言,它为软件密集型系统的可视化建模提供了一种统一的...

    (Rational rose) UML学习笔记

    UML设计网上选课系统:本系统拟使用Java语言通过三层模型实现:数据核心层,业务逻辑层和接入层。其中,数据核心层包括对于数据库的操作;业务逻辑层作为中间层对用户输入进行逻辑处理、再映射到相应的数据层操作;...

    OOAD+UML学习笔记

    对OOAD和UML指导思想的基本概述,欢迎大家下载学习,也希望各位继续完善

    uml学习笔记 凑够十个字

    【UML学习笔记】 UML(Unified Modeling Language)是一种标准化的建模语言,主要用于软件和系统开发中的分析、设计和交流。它通过图形化的表示方式,帮助开发者与客户沟通需求,促进开发团队间的协作,避免在处理...

    UML学习笔记

    **UML学习笔记** UML,全称统一建模语言(Unified Modeling Language),自1996年Booch、Rumbaugh和Jacobson合作推出的UML0.9版本以来,已成为软件开发领域广泛使用的建模工具。UML通过五种视图来描绘软件系统的...

    UML学习资料(内附三本电子书和学习笔记)

    该压缩包文件提供了丰富的UML学习资源,包括两本CHM格式的电子书——"23种经典设计模式UML类图汇总"和"UML图例子",以及可能包含的学习笔记,帮助初学者和经验丰富的开发者深入理解和应用UML。 1. **23种经典设计...

    UML建模ppt文档学习笔记

    **UML建模技术概述** ...通过学习UML建模,开发者能更好地理解和设计软件系统,提高沟通效率,减少误解和错误,确保项目的成功实施。深入掌握UML的各种图表和概念,对于任何软件工程团队来说都是至关重要的。

Global site tag (gtag.js) - Google Analytics