zoukankan      html  css  js  c++  java
  • 架构设计的UML图形思考

           本篇紧接着上一篇   基本OOP知识  ,介绍高焕堂老师的第二讲。 架构设计的UML图形思考。本篇最重要的是三个词语:图形、思考、UML。


           架构师的作用体现主要在项目开发前期。在整个项目还没有完毕的时候,架构师的心中就要有整个项目的蓝图,总体框架。为了可以将架构师自己的蓝图、思路、框架表达给其它人,就须要借助于图形的魅力。以图形来思考。以图形来表达思考的结果,表达对于产品的架构、、规划、设计。

    在架构中,要借助自己的思维去思考未来可能的变化。为了方便团队之间的交流。假设使用同样的语言、相似的工具就更好了。软件世界中,图形就是建模,用模型来表达未来的系统,简化未来的系统,让开发者从模型中看到系统未来可能的变化,以模型为蓝图进行开发。这才不会违背架构师的思考。而UML就是软件世界中用来图形交流的建模语言,架构师可以用模型表达出自己的创意。

         

     一、建模与图形思考的必要性

         在整个项目的开发过程中,架构师(Architect)的职责就是创意设计与人际沟通。在规划架构或框架的阶段。还没開始动工撰敲代码码,那么架构师怎样进行创意思考呢? 又怎样将创意设计表达出来。争取自己公司老板和业主的支持(比如投资)呢?大家都知道。像举世公认的创意天才:达芬奇(Leonardo da Vinci)。

    他具有非凡的图形绘制和思考能力(比如蒙娜莉萨的微笑就是他的名作)。这提醒了我们,身为架构师,其图形绘制和思考能力愈好,其创意设计与人际沟通能力就愈好。因此,培养Android架构师的图形思考能力是极为重要的。

        一个项目开发须要一年。那么在项目开发的一个月内。架构师就要将整个项目的架构设计出来,但是怎样设计?就算设计出来怎样让其它开发者、老板知道呢?敲代码实现时间肯定不够(并且这也不是架构师的职责嘛,不是),此时就须要借助图形的魅力了。我们说不出来。但我们能够画出来。

    在思考的时候我们能够借助图形来进行思考,思考系统未来可能的变化,然后将自己的思考以图形的思维表达出来,其它开发者就知道怎样去做了。在软件的世界中,建模是图形的最好诠释。用简单的模型表达出系统未来可能的一切变化。让开发者、老板、经理在心中对于整个系统有一定的了解,这个时候才干够真正的进行开发。否则都仅仅会是空谈。


     二、UML软件图形语言和工具

         既然决定用建模来表达系统的架构,那么就像我们人类一样,交流须要语言,这样彼此之间才干理解对方表达的意思。换句话说,假设使用同样的语言、相似的工具进行建模。那么无论是架构师与架构师之间,开发者与架构师之间都能非常好的交流的工具。因为人们对这些图形元素有了共同的认知。所以系统架构之描写叙述(即模型)也就成为人与人之间能够认知和理解的东西。因之,人与人之间採用共同的(图形)模型时,就易于沟通,易于互相合作了。而UML统一建模语言存在的意义正是如此,作为不同人员之间项目交流的工具语言。

          如上图所看到的,五线谱所绘制的交响曲正是作曲家、演奏家、一般人之间对于音乐理解沟通交流的语言,一个抽象的东西一下子就变得有迹可循。变得详细。

    建模语言扮演的角色正是五线谱所担当的角色。

          软件:UML是一种图形语言

          人们对于复杂事物的理解。有其先天上的限制。即使面对一般的系统,大部分的人们还是不敢拍胸脯保证能全然了解它。更何况眼下的软件系统已日益复杂了。此情况下,模式的建立。能够协助软件人员进一步了解系统。

    对于架构师或开发人员来说。都是很重要的。

    不管在培养图形思考或团队沟通上。对于软件创意或管理上。是无可代替的。


          UML的建模工具

            Astah Professional(原名JUDE)是UML建模工具中,最具有简洁设计、轻便简单、易学好用的。

    Astah 功能强大,支持 UML2.x中的图表(Diagram)

    三、UML实战:表示继承、接口

    这种图文对比,能有效培养架构师的图形思考和创意,提升架构师与项目经理、业主的沟通能力。在图形上,也能添加美感,培养架构师对软硬件的感觉(Feeling)而不是仅仅能逻辑的理解(Understanding)。有助于与设计师进行创意交流。





  • 相关阅读:
    Golang 用go-sql-driver 调用MySQL存储过程时的问题排查
    mysqlbinlog 查看binlog时报错unknown variable 'default-character-set=utf8'
    HBase Go客户端Row构造注意事项
    MySQL JOIN操作报错问题小解
    MySQL主从同步的一个小问题解决
    PHP 多个mysql连接的问题
    记一起动态库加载错误问题排查过程
    DNS缓存
    C输出大于127的ACSII字符
    Mint17 一些安装备忘
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5114448.html
Copyright © 2011-2022 走看看