您的位置:首页 > 其它

UML整体认知

2015-11-16 22:56 295 查看

UML是什么?

让我们先来看看下面这张Mind Map



面向对象技术

面向对象技术在系统开发过程中主要体现为通过建立模型对现实世界进行抽象并且将目标系统模型化来进行软件的开发与管理。现实世界经过面向对象技术处理后是这个样子的:



之前我对面相技术仅停留在封装、继承的大概了解上面。看过UML视频后,我对面相对象技术的印象是这样的:



其中基本概念部分是我对面向对象技术条件下的系统的理解各组成成分以及各成分之间的关系的理解。总体来说,面向对象技术不仅将现实世界进行了抽象,而切还对目标系统进行了抽象,从而使系统开发不再是一种茫然状态而是一种可控性更强、风险更加易于管理的一种状态。

模型

如果说面向对象技术是UML的基础,那么模型的概念则当之无愧于面向对象基石一说。模型更多的是在数学领域中的应用,一个好的模型不仅可以使我们在物理工具的制作上面事半功倍(中国印刷术),而且模型在帮助我们的软件开发工作更加的易于控制和管理。
模型可以说是我们将要处理的对象的一个投影:包括我们对待处理对象的整体认识、待处理对象的各个组成构件以及各构件之间的联系、待处理对象所处的内外部环境和约束条件的具体描述。我们在建立模型时一般遵循分解、抽象、泛化、投影、构件化等思想,即将一个对象分解成一个个具有逻辑关系的部分今儿对其进行理解。

UML的利器——九鼎图~

UML是Unified Modeling Language的缩写,中文意思为统一建模语言。UML是一种可视化的面相对象的标准化建模语言。说起可视化,我们很容易联想到VB;至于面向对象的思想,我们对其优点相信已经决不陌生了。正是因为可视化的简单易学以及面向对象的易开发、易维护等等一系列让程序员爱不释手的优点,UML才历经时间的考验并且成为可视化建模语言的标准。关于UML的简介我们就暂且说到这里,如果大家想详细了解UML请点击这个链接进行学习统一建模语言—百度百科。下面让我们来看看看UML的具体结构。

UML的九种图:
UML的定义部分我们在上面已经提到了,就不再赘述了。我们先看UML的九种图是什么。



个人认为UML的这九张图是其可视化的基础:UML的九种图可以说是面向对象技术的具体体现了。这九种图分别是用例图、类图、对象图、组件图、部署图、状态图、活动图、序列图和协作图。UML的九种图分别从静态和动态的角度对一个对象进行全面具体细致并且严格的描述。关于这九种图我在这里先列出我对其中几个的理解,具体部分将会在后面的博客中加以体现。

用例图:



类图:



包图:



PS:包图并不是UML九种图中的成员,包图和UML九种图的关系好比文件夹和文件的关系。
交互图:



行为图:



UML的公共机制:

UML之所以能够集可视化和面向对象两者于一体,其严格的约束和对所使用到的图形、关系等的准确说明功不可没。可以说UML的公共机制是UML之所以广为流传的基础。UML的公共机制有规格说明、扩展机制、通用划分和修饰这四部分组成。
规格说明负责对UML中的各部分的语法和语义进行严格准确简洁的说明。



扩展机制主要通过构造型、标注值和约束对UML中使用到的图形进行扩展。



关于通用划分,我个人认为并不是利用了严格的数学二分法原理进行的。通用划分更像是对一个概念进行一次二级具象的过程。如在UML中,类是一种抽象,而对象就是这种抽象的具体形式。



修饰的话,我个人认为就是对一个对象从静态和动态角度进行更加细致的描述。



UML的工具——Ritional Rose

我们不难想象到借助图形工具,我们可以充分发挥UML给我们带来的不可估量的便捷性。但是难道我们要人工手绘那么多的图形吗?当然不是,撇开那繁重的劳动量不说,手绘的图形很难在有限的时间内高效率的达到标准状态。现在我们绘制UML中的各种图一般都是借助软件来实现的。其中使用比较多的是Ritional Rose这款软件。关于这款软件,大家可以参考这个链接进行了解Ritional
Rose—百度百科。

UML在软件开发各阶段的应用

关于UML在软件开发过程中各阶段的应用这部分,我建议大家先进行一下软件工程的系统学习

到时你就会对UML在软件开发过程中各阶段的应用有一个自然而然的理解了。我这里仅贴出两张图供大家参考:
1、



2、



UML的应用——RUP

RUP是Ritional Unified Process的简称,中文意思为统一软件开发过程。这一过程可以说是软件开发的一个总的指导路线,我们可以以这一过程思想进行软件工程的全程工作。该过程同样贯彻了面向对象的开发思想并且充分利用了网络这一资源,通过不断完善即迭代这种方法以用例驱动软件工程的进行,并且严格按照设计的架构进行整个软件的开发。关于迭代,我们可以通过下面这两张图进行理解。





总结:

目前,我对UML的理解还有点不确定。我认为UML是软件工程的一个具体的开发语言(流程),就像我们看到软件工程开发文档中的程序流程图之类的基本上是UML的具体呈现。个人感觉对UML的整体认识还是不成熟的,敬请各位的指导了~~~~~~

感谢您的宝贵时间~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息