您的位置:首页 > 其它

【UML初识】-简单理解

2016-11-02 10:40 260 查看

开篇:

学到UML了,有一点小兴奋,经常看到公司的招聘信息中写着”某某职务,需精通UML”。UML到底是什么呢?竟然受到如此青睐??

内容:

一、面向对象和面向过程

1、面向过程:就是典型的C语言这种,一个main函数,从头走到脚,中间可能涉及到一些方法的调用,但是整个代码完全是流水线一样。这样就会导致一个问题,虽然代码流程很清晰,但是不容易扩展,我需要修改某一个计算过程,有可能导致全部代码需要重写。

2、面向对象:就是以一种对象的角度来编写程序,设计程序,每个对象具有自己的生命特征。面向对象具有封装,继承,抽象,多态四种特性。

每个对象内部具有一些复杂的变量以及方法,对外提供接口或者公共方法进行调用,这就是封装

而对象之间可以互相关的继承,借鉴存在的方法,这就是继承

相同类型的对象,可以提取公共的部分,形成一个新的父类对象,这就是抽象

每个相同类型的子对象之间可能存在不同的方法,这就是多态

这样,通过对象的方式,来看待世界,整个过程就变得解耦了,一旦需要扩展或者修改某个地方,单纯的修改与之对应的对象就可以了。

二、什么是UML

1、定义:

         统一建模语言,可视化的面向对象建模语言,其实呢就是一种图形化的语言,用图说话的语言,我们学的很多计算机语言是用代码来写的,UML的不同之处就在于它是用图形来表示的。当一个繁杂的系统用文字表达不清楚的时候,UML图的作用就凸现出来了。

2、理解:
         UML讲白了就是音乐的五线谱。
        五线谱是什么?它只是一种标记方法,这种标记方法有其优点(比如,能直观体现出音高),所以这个方法成为世界范围内通用的方法,五线谱之于音乐,恰如UML之于软件。

        五线谱本身并没有告诉你应该如何作曲,熟悉五线谱也不意味着你同时就会作曲,当然熟悉五线谱,可以保证你读懂别人的音乐作品。同样,UML本身也没有告诉你如何设计软件,但是,你熟悉了UML,就可以看懂别人的设计,如果你自己也有设计上的思路,你也可以用UML表达出来,大家也都能看得懂。

        所以,掌握UML只是成为软件设计师的必要条件,要想真正成为软件设计师,还需要有很多 设计经验,通过设计模式的学习,了解前人的设计套路(注意,模式就是套路),也是一个比较好的途径。

        UML也相当于建筑行业的图纸。

3、可视化建模:

        可视化建模就是以图形的方式描述所开发的系统的过程,是利用围绕现实想法组织模型的一种思考问题的方法。可视化建模允许你提出一个复杂问题的必要细节,过滤不必要的细节。它也提供了一种从不同的视角观察被开发系统的机制。

4、为什么建模:

       设计一个软件的模型就好比是一幢大楼需要蓝图一样重要。好的模型能够:   

  鉴别需求和沟通信息   
  着眼于系统的组件如何相互作用,而不是陷于具体的细节   
  使你能够了解设计组件的相互关系   
  通过使用一个共同的图形语言,改进跨团队的沟通

5.怎样建模:

        从不同的角度形成系统不同的视图,也就是UML的9种图,用例图,类图,对象图,状态图,活动图,序列图,协作图,构件图,部署图。

三、九种图



1、 用例图:用来描述用户的需求,从用户的角度描述系统的功能,并指出各功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能。

2、 静态图

          类图:用于定义系统中的类,包括描述类的内部结构和类之间的关系。类图奥用于描述系统的静态结构。

          对象图:对象图是类图的一个实例,描述了系统在具体时间点上所包含的对象以及各个对象之间的关系。

3、行为图:用来描述系统动态模型和对象之间的交互关系          

          状态图:用来描述类的对象所有可能的状态以及事件发生时的状态的转移条件。        

          活动图:描述活动的顺序,展现从一个活动到另一个活动的控制流。活动图在本质上是一种流程图。    

          交互图:用来描述对象之间的交互关系

                        序列图:描述对象之间的交互顺序,

                        协作图:描述对象之间的合作关系,更侧重于说明哪些对象之间有消息的传递。

4、 实现图

          构件图:构件图用来描述代码构建的物理结构以及构件之间的依赖关系。

          部署图:定义了系统中硬件的物理体系结构,用来描述实际的物理设备以及他们之间的连接关系。

小结:

        就像建造一幢高楼一样,最重要的是先要有一张蓝图,有一个模型,然后再去准备各种必需品。UML对于软件开发来说,正是蓝图式的存在。UML是我们必须掌握的,今天简单总结了一下暂时的理解,随着学习的深入,相信我会有更深的理解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息