java开发为什么需要UML

news/2024/7/7 9:18:09
出处 www.cnejb.com

知道UML造成了怎样的局面大混乱吗?知道什么样的功能是UML拥有但JAVA不具备的吗?知道我们为什么需要除JAVA外的另一种电脑语言吗?UML并不仅仅只是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是怎样在解析及设计阶段起铺助作用,则需要通过解决一个问题来了解。

一旦你将一切都代码化并且处于施行中,你就可以将周而复始的循环运用。随着系统交付日期的临近,更会发现什么地方不足,以及下一步需要完善哪一部份。通过使用交互式的解析、设计,完善及运行,你可以很迅速、稳定地重复运行及完善系统,而不需要担心遗失代码。

http://www.niftyadmin.cn/n/4217499.html

相关文章

ACM算法笔记(五)二叉树的检查和变换

一、对称二叉树 给定一颗二叉树,检查他是否对称 思路:使用递归处理(递归的比较左子树的左孩子和右子树的右孩子) public bool isSymmetric(TreeNHode root) {if(root nuill)return ture;return deepCheck(root.left,root.right)…

对Vue的生命周期的理解

因为是第一天学习vue,可能有理解不全面或者错误的地方,如果有误导,非常抱歉。 Vue的生命周期1. 生命周期是什么2. 生命周期过程图3. Vue的生命周期钩子函数4. 测试钩子函数1. 生命周期是什么 Vue的每个组件都是独立的,从一个组件…

Vue学习Day2 v-bind动态绑定属性、计算属性、v-on事件监听、v-if、登陆切换小案例、v-show

想利用暑假时间好好学习一下vue,会记录每一天的学习内容。 今天是学习vue的第2天! 起起伏伏乃人生常态,继续加油~ 学习内容1. v-bind 使用简单使用v-bindv-bind语法糖v-bind动态绑定class对象语法v-bind动态绑定class数组语法v-bi…

Vue学习Day3 v-for遍历、组件的key属性、列表点击变色案例、书籍购物车案例

想利用暑假时间好好学习一下vue,会记录每一天的学习内容。 今天是学习vue的第3天! 起起伏伏乃人生常态,继续加油~ 学习内容1. v-for使用v-for遍历数组v-for遍历对象组件的key属性2.检测数组更新3.列表项点击变色简单案例4. 书籍购…

Vue学习Day4 v-model表单双向绑定、注册组件、组件模版分离、组件中的数据存放、组件中data为什么是个函数

想利用暑假时间好好学习一下vue,会记录每一天的学习内容。 今天是学习vue的第4天! 起起伏伏乃人生常态,继续加油~ 学习内容1. 表单绑定v-modelv-model原理v-model:radiov-model:checkboxv-model&#xff1a…

Myeclipse打开就出错Could not create the Java virtual machine

Myeclipse打开就出错Could not create the Java virtual machine 描述: JVM_terminted_Exit_code1图片:描述: Could_not create_the_Java_virtual_machine图片:myeclipse一启动就自动关闭,报错"Could not creat…

JavaScript高级程序设计 学习笔记3 - 语言基础

内容均摘自JavaScript高级程序设计第四版,仅用于记录学习过程。 虽然这一章都很基础,但是还是有很多小细节需要注意的!好好看看吧~进一步细分了书里的目录,这样查询也更方便啦 第三章 语言基础一.语法3.1 语法3.1.1 区…

Myeclipse7.0安装时出现“灾难性故障”

Myeclipse7.0在安装过程中会报 “灾难性故障”,总结了一下,可能原因有一下几个方面 1. jdk版本和Myeclipse不兼容 解决方案:重新安装jdk新版本 2.安装路径的问题 解决方案:安装Myeclipse时,不修改其默认的安装路径…