架构设计的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),有助于与设计师进行创意交流。

时间: 2024-08-27 18:26:47

架构设计的UML图形思考的相关文章

实时海量日志分析系统的架构设计、实现以及思考

1 序 对ETL系统中数据转换和存储操作的相关日志进行记录以及实时分析有助于我们更好的观察和监控ETL系统的相关指标(如单位时间某些操作的处理时间),发现系统中出现的缺陷和性能瓶颈. 由于需要对日志进行实时分析,所以Storm是我们想到的首个框架.Storm是一个分布式实时计算系统,它可以很好的处理流式数据.利用storm我们几乎可以直接实现一个日志分析系统,但是将日志分析系统进行模块化设计可以收到更好的效果.模块化的设计至少有两方面的优点: 模块化设计可以使功能更加清晰.整个日志分析系统可以分

GPS部标平台的架构设计(十)-基于Asp.NET MVC构建GPS部标平台

在当前很多的GPS平台当中,有很多是基于asp.NET+siverlight开发的遗留项目,代码混乱而又难以维护,各种耦合和关联,要命的是界面也没见到比Javascript做的控件有多好看,随着需求的增多,平台已经臃肿不堪. 设计基于.NET的GPS部标平台,我们坚定不移的选择了基于JQUERY+Asp.NET MVC来作为前端交互和后台处理的框架.选用一个灵活的脚手架,同时团队又能掌握这个脚手架为团队所用. 对于一个web应用项目,基于MVC的框架,前面文章提到过,最大的优点就是结构清晰,强制

小钢的架构思考:架构设计

原创文章,转载请注明:转载自Keegan小钢并标明原文链接:http://keeganlee.me/post/architecture/20160621微信订阅号:keeganlee_me写于2016-06-21 小钢的架构思考:什么是架构小钢的架构思考:架构规划小钢的架构思考:架构设计 最近一个多月因为忙于工作上的项目重构,所以文章一直没能更新.现在,重构终于暂时告一段落,于是,赶紧抽时间把文章写完更新发布.下面进入正文. 当架构规划的结果,整理出一堆不同优先级的需求,尤其是质量需求之后,接下

UML笔记1---结合架构设计用对象建模

UML笔记1---结合架构设计用对象建模 一.UML的视图和图 视图,只是表达系统某一方面特征的UML建模组件的子集:视图被划分成三个视图域:结构分类.动态行为和模型管理. ---结构分类,描述了系统中的结构成员及其相互关系.类元包括类.用例.构件和节点.类元为研究系统动态行为奠定了基础.类元视图包括静态视图.用例视图和实现视图. ---动态行为描述了系统随时间变化的行为.行为用从静态视图中抽取的瞬间值的变化来描述.动态行为视图包括状态机视图.活动视图和交互视图. ---模型管理说明了模型的分层

Robustness Diagram - 从需求分析到架构设计

转载自: http://www.dotblogs.com.tw/jed/archive/2010/11/21/robustness_diagram.aspx   什么是Robustness Diagram Robustness Diagram是一种很特殊的图形,介于Class Diagram与Activity Diagram之间,最早由 Ivar Jacobson 于1992年所提出,台湾这边翻成强韧图.稳健图,对岸则采译音翻成鲁棒图.在需求分析领域,UML的Use Case Diagram已经

架构设计的方法学

约公元前25年,古罗马建筑师维特鲁威说:"理想的建筑师应该既是文学家又是数字家,他还应通晓历史,热衷于哲学研究,精通音乐,懂得医药知识,具有法学造诣,深谙天文学及天文计算."(好难哪,软件构架设计师的要求呢?大家好好想想吧.)   本文目录   一.与构架有关的几个基本概念:   二.构架设计应考虑的因素概揽:   三.程序的运行时结构方面的考虑:   四.源代码的组织结构方面的考虑:   五.写系统构架设计文档应考虑的问题   六.结语   一.与构架有关的几个基本概念:   1.模

Swing程序最佳架构设计—以业务对象为中心的MVC模式(转)

前言: 我打算写一系列关于Swing程序开发的文章.这是由于最近我在做一个Swing产品的开发.长期做JavaEE程序,让我有些麻木了.Swing是设计模式的典范,是一件优雅的艺术品,是一件超越时代的产品! 有机会作Swing软件的开发,让我非常有感觉! 呵呵,希望有机会能够用Java3D编写软件,那种感觉一定更棒! Java和Swing都是杰作.我这个人对别人一向很挑剔的,能够得到我由衷地赞誉,可想而知它们有多优秀了.奇怪的是,它们居然一直都无法占领桌面市场.有人说这是技术的原因.我认为这应该

深度桌面操作系统架构设计

今天就结合深度桌面操作系统给大家讲讲桌面操作系统的架构设计和原理细节,一来向外界讲讲深度这么多年都做了哪些工作,二来希望通过客观公正的事实向中国新一代的开源爱好者讲述怎么用正确的三观去贡献自己的力量. 什么是桌面操作系统? 简而言之,桌面操作系统就是大家平常个人电脑里面用的操作系统. 桌面操作系统应该是所有操作系统类型中最为复杂.研发技术难度最高的一种操作系统了. 世界上非常优秀的桌面操作系统有微软的Windows和苹果的Mac OS,其他的Linux桌面操作系统,比如Fedora.Suse.U

Unity3d 引擎原理详细介绍、Unity3D引擎架构设计 - zhibolife

时间 2014-03-24 11:18:00  博客园-所有随笔区原文  http://www.cnblogs.com/zhibolife/p/3620440.html 体系结构 为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则. Unity3D 引擎 Unity3D的是一个屡获殊荣的工具,用于创建交互式3D应用程序在多个platforms.Unity3D由游戏引擎和编辑器.该引擎包含的软件组件,在游戏的研究与开发中最常见