知道 UML 造成了怎样的局面大混乱吗?知道什么样的功能是 UML 拥有但 JAVA 不具备的吗?知道我们为什么需要除 JAVA 外的另一种电脑语言吗?UML 并不仅仅只是 JAVA 或者其它什么语言的替代品。UML 是面向对象的分析及设计的注释。UML 是独立于那些传统设计语言之外的一种语言。因为 UML 并不依附于某种语言,而且它被用作是联系沟通 Java、 C++ 、Smalltalk 等语言的基础工具。通过使用 UML,可以在开始编码之前规划好整个系统,并且开发人员清楚自己所负责的模块在整个系统中所起的作用。 更为重要的是,UML 可以帮你记录下从设计就开始出现的错误,要知道糟糕的设计会带来一系列的麻烦。设想一下,在源代码编制到一半的时候,你突然发现你所需要的信息已经枯竭了,但你却没有办法重新取得信息,因为你没有引用 OBject,甚至于你引用了 object,然而信息确是非 public 的。显然的,你将花费数天时间来找出代码的变化。 UML 可以帮您摆脱如下一些困境:代码随着细节的增多而累积,因此,查找哪些是系统的基本要素,了解 objects 之间的关系如何以及它们之间怎么联系都会变得困难起来。当大量的代码产生出来的时候,做一些改变也变得困难。因此决定一个对象的功能被分配到协作中的设置是一项主要的工作。甚至有时只是改变一个方法的名称那样简单事情,也很可能导致一个很长的编辑----编译---错误循环。 在编码之前高水平的设计是进行正确的需求分析和精确的定义,UML 的自动化工具固然重要,但 UML 在设计讨论中就显得更为有用。 OOA, OOD, and OOP 什么是 OO 分析和设计?它们与OO编程相比又有什么不同之处?要了解这些,请注意观察一个程序的循环过程 第一步,需求收集:首先要规划好系统,计划好系统的实施步骤。通常人们都会通过讨论来萃取出需求,并做详细记录,然后与关键用户或是消费者一起探讨并使他们同意你们已掌握系统正在解决的问题。 OOA (Object oriented analysis)即是描述系统实施与系统规划相结合一个的进程。解析放大了处于问题中心区域的目标,分析它们的重要作用是什么,分析何种目标与何种目标相联系。另外,解析还决定何种目标从属于公用类别。 OOA (Object oriented analysis)即是描述系统实施与系统规划相吻合的一个过程。分析放大了处于问题中心区域的目标,分析它们的重要作用是什么,分析何种目标与何种目标相联系。另外,解析还决定何种目标从属于公用类别。 特别地是,解析应与现实生活中的问题类似,不需要产生什么新的复杂的问题。你甚至可以与一个不懂技术但懂得这些问题的人员来分享这些解析,他们可以指出你在解析中遗漏了什么,忽略了什么或者哪些地方出错了。 OOD 在设计阶段,你得准备将具体问题放大化以便分析。然后你得决定方法的自变量有哪些,以及它们的 return 类型。你也许可以发现新类将会帮您完成设计。你可以抽象出公用的功能到接口或基类中。一个单一的分析类可以分解成为几个合作类。总而言之,你仍停留在规划阶段,而不是实施阶段。 OOP在您搭建好一个框架后,下一步就是实施代码了。在合适的设计后,你可以按以下步骤来实施细节: 1、是使用哈西表或者是二叉树 2、是使用 RMI 还是 CORBA 来完成客户/服务器的通信? 3、用何种语言? 为了更真实的体验到 UML 是怎样在解析及设计阶段起铺助作用,则需要通过解决一个问题来了解。 一旦你将一切都代码化并且处于施行中,你就可以将周而复始的循环运用。随着系统交付日期的临近,更会发现什么地方不足,以及下一步需要完善哪一部份。通过使用交互式的解析、设计,完善及运行,你可以很迅速、稳定地重复运行及完善系统,而不需要担心遗失代码。