由于项目需要, 我想对原有的设计文档做优化, 将部分字信息转化成符号,立刻想到了uml。由于之前只是看到过别人画的uml图,但自己没有画过,也缺少系统了解,所以能想到进行优化的地方很少,比如类说明和方法说明就可以用到类图, 程序流程图可以考虑时序图。
于是赶忙学习一下uml,到javaeye上先搜索了一下,发现了uml版块的三篇精华文章:
1.UML学习笔记
http://www.iteye.com/topic/108
2.Open Source 的 UML 建模工具
http://www.iteye.com/topic/774
3.UML 中各种图形的重要性排行
http://www.iteye.com/topic/14804
三篇文章看下来,个人感觉《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的中文文章,只是比较零散,不大适合系统学习。
推荐的三本书,1),2),3) ,我到chinapub上看了书籍介绍和评论, 1和3都是出自名门,可惜翻译不好;2篇幅过多。我认为uml学习不必全学,只要知道各种图的基本特点,能在实践中采用最合适的来描述问题就好了。根据这点, 《UML Distilled》英文版最合适,出自Martin Fowler之手, 全书才100来页。下了电子版试读, 感觉虽是英文但还算易懂, 篇幅不长很快就可以通读,目录编排觉得很合理清晰, 上手而言绝好。
学习uml的网站,在google里搜索了一把, ibm的uml基础系列还算不错, 几个常见图形怎么画都有说明,
http://www.ibm.com/developerworks/cn/rational/r-uml/
而最后的实践建议,我也很受启发。
引用
实践建议
按需剪裁。项目要用到什么就学习什么,暂时不用的就放下。我们的目的是当前的系统建模,而不是一下子成为UML高手。
自由扩展。结合我们的实际情况,在使用的过程中,要明确UML的重点是“沟通”,其次才是“公共”。UML本身有许多规则和约定,但没必要一一遵守。只要有利于沟通的,我们就采用,否则就摒弃。通常我们的文档只是在小范围里传播,要统一理解并不困难。当然,当规则定好了后,最好就不要随意更改了。
这里指出,uml并不是什么高深的技术, 重在“沟通”,以更加合适的方式跟同行沟通。至于uml的各种规定, 有利于沟通则用之。真是很好的实战建议。
第二篇介绍uml的开源建模工具, lz介绍的几个我都试了一下, 不是很顺手。后来发现jude和staruml不错,比较习惯,staruml做出来的图比较像rose画的,难怪网上很多例图都用它,做图环境比较像vc。但我最后决定用jude, 因为更加小巧而快速。
第三篇,感觉是几个老手在介绍自己的实践中uml的用法, 看得有些不知所以然。但用例图、类图、序列图已经能帮上我大忙了, 序列图画起来还有些费时间,认真做的话,感觉程序都给写出来了。。。 复杂一点的交互过程再考虑用吧。
分享到:
相关推荐
**UML小结UML图UML例子.rar**这个文件可能包含了一些关于UML的总结资料,包括各种UML图的示例,这对于学习和掌握UML是非常有帮助的。通过查看这些实例,可以更好地理解和应用UML到实际的软件开发项目中。 **UML00....
### 小结 UML作为一种强大的可视化工具,不仅能够帮助软件开发者更好地理解和设计系统,还能促进团队成员之间的沟通和协作。通过对UML设计层次和关系的深入理解,可以有效地提升软件项目的质量和效率。无论是对于...
**1.4 小结** 通过介绍.NET和C#的基础概念,本章为读者提供了初步的理解,接下来的章节将深入探讨C#的具体特性和使用方法。 ##### 第二章 运行环境 **2.1 .NET结构** .NET框架主要包括以下组成部分: - **公共...
小结 永远记住:自始至终,实践是学习Java技术历程中极其重要的一环。脱离了实践,是学不好技术的! Java学习、实践之路依然没有银弹,况且一步步走来,要学的东西很多,勤奋是金! 善于利用Internet上众多的资源,多...
**1.4 小结** - 对本章内容进行总结,强调.NET平台和C#语言对于现代软件开发的重要性,并为后续章节的学习奠定基础。 ##### 第二章:运行环境 - **2.1 .NET结构** - 详细介绍.NET框架的整体架构,包括CLR(公共...
- **1.4 小结** - 介绍了.NET的概念以及C#在.NET框架中的角色。 - 强调了C#作为一种现代编程语言的重要性。 ##### 第二章:运行环境 - **2.1 .NET结构** - .NET Framework主要包括公共语言运行时(CLR)和.NET...
91.3.2 Delphi的发展历史 111.3.3 Delphi程序的编写、编译和运行111.4 本章小结 161.5 本章习题 17第2章 程序设计基础 192.1 数据和数据处理 192.1.1 计算机的结构 192.1.2 数据的表示 202.1.3 数据的处理 222.2 ...
- **2.4 小结** - .NET框架为C#提供了丰富的类库和运行时支持,使得开发者可以快速高效地开发高质量的应用程序。 ##### 第三章:编写第一个应用程序 - **3.1 Welcome程序** - 示例程序通常从简单的“Hello World...
- **14.5 小结**:总结继承和多态性在面向对象设计中的重要性和灵活性。 #### 第四部分:深入了解C# 这部分涵盖了更高级的主题,包括接口、应用程序组织、文件操作和一些高级话题。 ##### 第十五章:接口 - **...
#### 小结 通过StarUML,开发者不仅能直观地构建和理解系统架构,还能借助自动代码生成和逆向工程功能提高开发效率。无论是初学者还是经验丰富的程序员,StarUML都能成为项目开发过程中的得力助手。通过本文介绍的...
- **1.4 小结** - 本章总结了.NET平台的概念以及C#语言的关键特点,为后续的学习打下了基础。 ##### 第二章:运行环境 - **2.1 .NET结构** - .NET框架主要包括公共语言运行时(CLR)和.NET Framework类库两大...
1.9 本章小结 22 本章练习 22 第2章 理解面向对象 23 2.1 面向对象 24 2.1.1 结构化程序设计简介 24 2.1.2 程序的三种基本结构 25 2.1.3 面向对象程序设计简介 27 2.1.4 面向对象的基本特征 28 2.2 UML...
- **1.4 小结** - 本章概述了.NET平台的概念及其与C#语言的关系,强调了C#作为一种现代化的编程语言在.NET框架中的核心地位。 ##### 第二章 运行环境 全面了解.NET - **2.1 .NET 结构** - .NET Framework 包括...
"个人实验小结样板.doc"可能是一份实验报告的示例,指导学生如何总结实验过程,反思问题,以及提炼出关键的学习点。 总的来说,这个压缩包提供的资料构成了一个完整的软件工程学习体系,涵盖了理论教学、实践指导、...
**1.4 小结** - C#作为.NET框架的关键组成部分,不仅具备强大的功能和灵活性,还具有良好的可维护性和扩展性。这使得C#成为了开发各种类型应用(包括Web应用、桌面应用和移动应用)的理想选择。 #### 二、.NET框架...