题外话(简识UML语言)
PS:“不积小流无以成为江河,不积跬步无以至千里”,学习也好,吃饭也罢,做任何事情都需要一步一个脚印,逐步积累过程,最后才会知识越来越丰富,吃的越饱…
在学习过程中用到了一些框图,用于绘画框图的语言数不胜数,本篇将就学习中用的一款绘画框图的语言做个简单的介绍。
直奔主题,采用一种可视化的面向对象的建模语言---UML,UML使用一些标准的圆形元素直观的表示对象模型,使人员就像建筑工人多年使用建筑设计图一样,主要的介绍UML常见的几种框图用法。
用例图(User Case Diagram):从用户角度描述系统功能.采用一种可视化的方式来理解系统功能需求,其及内容:角色--->系统边界,即系统特定功能的用户,人形符号表示。用例--->系统的某个功能,椭圆符号表示。角色和用例关系--->使用关系,实线的箭头符号表示。用例间关系--->可能存在关系包含或是扩展,包含关系指一个用例包含另一个用例功能,而扩展关系指一个用例继承了另一个用例功能。

类框图(Class Diagram):描述对象模型中类与类之间的关系。其及内容:类--->类框图中的主要元素,矩形表示。上层表示类名,中层表示属性,下层则是行为也就说所谓的方法。抽象类的类名用斜体字表示,方法也类同。类之间关系--->包括关联、依赖、聚集、泛化和实现这5种关系。

Panel类:画出用户指定的形状。
ShapeFactory类:根据指定形状创建相应的Shape对象。
Shape类:绘制形状,其是一个抽象类。
Circle类:绘制一个圆形。
Line类:画一条直线。
Rectangle类:画一个长方形。
它们之间的关系:Panel和ShapeFactory类依赖关系,前者会调用后者的getShape方法;Panel类和Shape类之间也是依赖关系,前者会调用后者的draw方法;ShapeFactory类和Shape类也是依赖关系,ShapeFactory类会构建Shape对象;具体的几个形状类和Shape类之间是泛化关系,Shape类是它们几个类的父类。
时序图(Sequence Diagram):描述对象间的交互,显示对象之间的动态协作关系,消息发送的时间顺序并显示交互。其有两个维度:水平维度--->显示对象之间发送消息的过程;垂直维度--->显示发送消息顺序。

1.用户选择特定的形状类型。
2.画板从形状工厂中获取形状对象。
3.形状工厂创建一个形状对象。
4.画板调用形状对象绘画方法绘制形状。
协作图(Cooperation Diagram):描述对象间的交互,能直观显示对象间协作关系,与时序图合称为交互图。

状态转换图(State Transition Diagram):描述对象所有可能的状态以及导致状态转换的转换条件。其包括一下基本元素:
初始点--->用实心圆表示;
状态间的转换--->箭头表示;
状态--->圆角矩形表示;
终止点--->内部包含实心圆的圆表示。

组件图(Component Diagram):描述系统中各个软件组件之间的依赖关系或是组件源代码的组织机构。

部署图(Deployment Diagram):描述系统中软硬件物理体系结构。显示计算机和设备以及它们之间的连接关系,也可显示软件在硬件环境中的布局。

开始看的时候也许有很多的专有名词不知是其何意,看书不只是看书,有时候需要懂得暂时的放弃,只需要记住以及怎么用,当你回首时在琢磨琢磨也许就顿然大悟…
题外话(简识UML语言)的更多相关文章
- 简识UML语言(转)
在学习过程中用到了一些框图,用于绘画框图的语言数不胜数,本篇将就学习中用的一款绘画框图的语言做个简单的介绍. 直奔主题,采用一种可视化的面向对象的建模语言---UML,UML使用一些标准的圆形元素直观 ...
- 题外话:Lua脚本语言存在的意义
纯属个人见解. 大致来说:c/c++执行效率高,游戏中一些性能敏感的复杂计算需要用c/c++来实现,防止游戏卡顿和低帧率.这些复杂计算包括战斗逻辑,复杂AI,骨骼动画蒙皮骨骼点的坐标计算等等.但c++ ...
- 题外话:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗
以下文章虽然是编程,但是对于IT行业都通用 文章背景,回答提问:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗? 我的建议是这样:1. 不要辞职.首先说,你对整个开发没 ...
- 题外话:计算密集型 vs IO密集型
我们把任务分为计算密集型和IO密集型,erlang作为IO密集型的语言,适合网关等相关的场景,而对计算达到某一量级后,可能处理效率下降的很明显. erlang不适合数值计算.erlang是解释型的,虽 ...
- hihoCoder#1105 题外话·堆
原题地址 有没有更优雅地堆模板啊,总感觉我写的有些啰嗦 代码: #include <iostream> using namespace std; #define MAX_NODE 1000 ...
- 题外话 -- windows10系统C盘空间变大 CPU莫名跑满
场景描述: 安装windows10一段时间了,发现C盘空间越来越小 CPU有时候,莫名其妙的跑满,造成操作卡顿. 如何处理参考: windows10 C盘空间清理:https://jingyan.ba ...
- 一个.net Cookie组件的bug引发的题外话
在.net里,做过Http模拟发送请求的朋友们应该遇到过,有个时候无论怎么努力,都没办法让Cookie跟网页用浏览器所收集的一样,其中原因除了有些Cookie大概是ReadOnly之外,似乎另有隐情: ...
- [hihoCoder] 题外话·堆
A direct applicatin of the heap data structure. Specifically, a max heap is used. The required funct ...
- HihoCoder1105 题外话·堆(基础二叉搜索树)
第1行为1个整数N,表示需要处理的事件数目. 接下来的M行,每行描述一个事件,且事件类型由该行的第一个字符表示,如果为'A',表示小Ho将一粒糖果放进了盒子,且接下来为一个整数W,表示这颗糖果的重量: ...
随机推荐
- [转载] ubuntu下定制Vim/Gvim及使用技巧
vim是linux下的编辑器之神,是玩linux的必备工具,同样emacs是神的编辑器,两个编辑器是各有千秋,看个人的喜好,青菜萝卜各有所爱.我是比较喜欢vim,用vim编写bash,perl,pyt ...
- list() and tuple()
>>> l = list('sdfsdf') >>> l ['s', 'd', 'f', 's', 'd', 'f'] >>> t = tuple ...
- webstorm安装破解版
破解方法: 现在有个比较简单的注册方法.注册时选择“License server”输入“http://15.idea.lanyus.com/”点击“OK”即可快速激活JetBrains系列产品”
- JBPM4入门——3.JBPM4开发环境的搭建
本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...
- struts2异常处理,global-results定义全局结果处理
<global-results>定义全局结果处理 一般发生异常之后 结果返回errHandler 因为errHandler是由<global-exception-mappings&g ...
- JDBC数据源(DataSource)的简单实现
数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用. 数据源提供了一种简单获取数据库连接的方式,并能在内部通过一个池的机制来复用数据库连接,这样就大大减少创建数据 ...
- CAT XQX --- 省市三级级联实现说明
最终效果: 满足要求, 上代码 : 1. 需要调用这个控件 的地方:添加引用,因为里面写着逻辑呢..... <script type="text/javascript" ...
- nagios监控linux设置
本章主要用来设置nagios的相关配置文件,从而能实现对linux系统的监控. 在进行监控相关服务的时候,nagios会周期性的调用插件去监测服务器的状态,nagios自带的所有插件都放在如下目录: ...
- 分布式数据库hbase详解
新霸哥注意到了在人类随着计算机技术的发展,数据的存储量发生了很大的变化,可以用海量来形容,同时,存储的数据类型也是有多种多样的,网页,图片,视频,音频,电子邮件等等,所以在这中情况下以谷歌旗下的Big ...
- BITED数学建模七日谈之四:数学模型分类浅谈
本文进入到数学建模七日谈第四天:数学模型分类浅谈 大家常常问道,数学模型到底有哪些,分别该怎么学习,这样能让我们的学习有的放矢,而不至于没了方向.我想告诉大家,现实生活中的问题有哪些类,数学模型就有哪 ...