前言


通过看视频,对于UML也有了一些初步的了解。前面也介绍了UML的三个基本块规则和机制,只是这些东西就像是一个个机器的零部件。要组合起来才干发挥作用。

所以,实例才是验证自己学习好坏标准,以下我结合机房收费系统画了UML的九个实例图,如有认为不合适的地方,请大家多多不吝赐教:

类图(Class Diagram)


类图是描写叙述系统中的类,以及各个类之间的关系的静态视图。可以让我们在正确编写代码曾经对系统有一个全面的认识,在系统的整个生命周期都是有效的。

实比例如以下:

对象图(Object Diagram)


对象图所使用的表示符号与类图差点儿全然同样,它是类图的实例,它们的不同点在于对象图仅仅是显示类的对象实例,而不是实际的类。一个对象是类图的一个实例,因为对象存在生命周期,因此对象图仅仅能在系统某一时间段存在。对象图是类图的一种实例化图,描写叙述系统在某个时刻可能包括的对象和相互关系。实比例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


用例图(Use CaseDiagram)


它从用户角度描写叙述系统的功能。

说明的是谁要使用这个系统,以及他们使用该系统能够做些什么。用例图描写叙述了一系列的角色和使用案例及它们之间的关系。

一个用例图包括了多个模型元素,如系统、參与者和用例,而且显示了这些元素之间的各种关系,如泛化、关联和依赖。实比例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


活动图(ActivityDiagram)


描写叙述为满足用例要求所要进行的活动以及活动间的约束关系有利于识别并行活动。

可以演示出系统中哪些地方存在功能。以及这些功能和系统中其它组件的功能怎样共同满足前面使用用例图建模的商务需求。

活动图是使用例图所描写叙述的行为详细化。

实比例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


状态图(State Diagram)


描写叙述一类的对象的全部可能的状态以及事件发生时状态的转移条件。通常状态图是对类图的补充,实际上并不须要为全部的类绘制状态图,而仅仅须要为那些有多个状态、而且其行为受外界环境的影响而会发生改变的类绘制状态图。能够捕捉对象、子系统和系统的生命周期。

他们能够告知一个对象能够拥有的状态,而且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。一个状态图应该连接到全部具有清晰的可标识状态和复杂行为的类;该图能够确定类的行为,以及该行为怎样依据当前的状态变化,也能够展示哪些事件将会改变类的对象的状态。实比例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


序列图(SequenceDiagram)


用于显示对象间的动态合作关系。它强调对象之间消息发送的顺序,同一时候也显示对象之间是怎样交互的(交互过程),它强调的是时间和顺序。

实比例如以下:


协作图(CollaborationDiagram)


和序列图相似。它也显示对象间的动态合作关系,只是,除了显示信息交换外,协作图还显示对象以及它们之间的关系,它强调的是通信关系(怎样通信的)。能够看成是类图和顺序图的交集。

实比例如以下:

构件图(ComponentDiagram)


描写叙述用来建模的软件构件(如:代码部件,jar文件、EJB文件等)的物理结构以及各部件之间的依赖关系。一个部件可能是一个资源码部件、产品、文件、一个二进制部件或一个可运行部件。

构件图有助于分析和理解部件之间的相互影响程度。这些图由构件标记符和构件之间的关系构成。实比例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


部署图(Deployment Diagram)


描写叙述一个系统的拓扑结构,定义系统中软硬件的物理体系结构。它能够显示实际的计算机和设备(用节点表示)以及它们之间的连接关系。也可显示连接的类型及部件之间的依赖性。

在节点内部。放置可运行部件和对象,以显示节点跟可运行软件单元之间的相应关系。

比如计算机和设备,以及它们之间是怎样连接的。部署图的使用是开发者、系统集成人员和測试人员。

实比例如以下:


总结:

这九种图在软件开发中负担着各自的作用。开发的不同阶段,可能会用到不同的UML图。这就须要对它有足够的熟悉。才干够非常好的去完毕一个系统的完整的UML图。所以。我仅仅是每一个图画了一个小样例。认知有限,希望大家多多指导。

UML图与机房收费系统实例的更多相关文章

  1. UML实战总结——机房收费系统UML第一版部分图展

    距离机房收费系统已经过去了近2个月之久,如今的UML图才出来,从软件开发设计的逻辑上来讲这是顺序有问题的,不过,对于我们而言,而且是初次用面向对象的思想去设计和建模,就当是UML的一个实战练手的项目吧 ...

  2. 机房收费系统——UML类图

    在对一个软件系统进行设计和建模的时候,一般是从构造系统的基本词汇開始,包含构造这些词汇的基本属性和行为. 系统分析师假设要对所设计的系统清晰认识.还有考虑这些基本词汇之间的关系.而假设把这些行为可视化 ...

  3. 机房收费系统——UML用例图

    用例图(Use Case Diagram)是由软件需求分析到终于实现的第一步,说明的是谁要使用系统,以及他们使用该系统能够做些什么,是九种图里面最为基础且很重要的一张图.     用例图包含3方面内容 ...

  4. 机房收费系统之处理流程图与DFD图

    一直想把自己画的图拿出来与大家分享,不过说来惭愧,一是图还没画完,二是图画的确实不咋地, 对于机房收费系统还是感到混乱,图画的不好大家多多指正. 系统处理流程图: DFD图

  5. VB.NET 机房收费系统项目总结

    VB.NET机房收费系统项目总结 从2013年5月3日——2013年8月20日历时三个多月的.NET机房收费系统终于完成了.项目做完了,真有一种如释重负的感觉. 下面我将从文档.UML图,代码这三个方 ...

  6. VB.NET机房收费系统总结

    总感觉这次机房收费系统非常有份量,一直没有下手总结,从2014-7-27至2014-9-29.这中间有太多故事和成长.首先说一下两次机房收费系统的不同,它是我们从面向过程向面向对象的一个转变.在.NE ...

  7. VB.NET版机房收费系统---七仙女之系统登录

    VB.NET第一版机房收费系统,告一段落,验收的时候.问题也是大大的存在,没实用上设计模式,什么触发器.存储过程,都没实用上.看看其她小伙伴的,七层实现登录?那是什么东东,相比較我的三层而言,多了两倍 ...

  8. VB.NET<机房收费系统个人重构版>你都学会了什么(之五)

    接着上篇我们说的配置文件,今天我们来说一下接口. 1.UML图 2.三层架构 3.Sqlhelper 4.配置文件 5.接口 6.设计模式 什么是接口呢?我们可以将接口理解为用于沟通的中介的抽象化.可 ...

  9. .NET分层登陆——机房收费系统再总结

    去年的时候,我写过一篇机房收费系统登陆的总结文章,那是站在VB的基础上,直接查询数据库实现的登陆.是很初期的知识.如果想了解详情,请看VB查询数据库之登陆窗体--机房收费系统总结(一). 今天,我要换 ...

随机推荐

  1. TP-LINK路由器桥接功能实现(WDS)

    弄过好几次路由器的桥接了,但每次都忘记了,要重新找资料.在此记录一下,方便以后使用. 准备工作: 1.设置本地连接/无线网络连接(取决于用哪个配置路由器):IP-192.168.1.100 掩码-25 ...

  2. Windows live writer 2012 测试

    升级到win10,居然Windows live writer不能用了,装了好久就是装不上去,wlsetup-web.exe 在线安装失败,wlsetup-all.exe离线安装也失败了. 安装Blog ...

  3. Zed Shaw:程序员的常见健康问题

    Zed Shaw:程序员的常见健康问题 原文作者Zed Shaws是一位作家.软件开发人员.音乐人(下文中提到吉他手),于2010年发布<Learn Python The Hard Way> ...

  4. 飞思卡尔开发板-迅为IMX6开兼容单核 双核 四核Plus开发板

    飞思卡尔开发硬件接口介绍: 核心板参数 尺寸:51mm*61mm CPU:Freescale Cortex-A9 四核 i.MX6Q,主频 1.2 GHz 内存:2GB DDR3 存储:16GB EM ...

  5. RabbitMQ之六种队列模式

    先学习一下RabbitMQ中的六种队列,只学习前五种,具体的官方文档地址是:http://next.rabbitmq.com/getstarted.html 导入maven依赖: <depend ...

  6. 关于C/C++的一些思考(4)

    C++的类型转换规则: 对于数值类型而言:当一个较小数值类型赋值给一个较大数值类型的时候,C++支持隐式的类型转换,不会有任何的损失: 对于数值类型而言,当一个较大数值类型赋值给一个较小数值类型时候, ...

  7. 笔试算法题(13):反转链表 & 左旋转字符串

    出题:反转链表(递归和非递归解法): 分析:有递归跟非递归实现,注意对原始链表头节点的处理,因为其他节点都指向下一个节点,其需要指向NULL: 解题: struct Node { int v; Nod ...

  8. <Redis> 入门X 分布式锁

    分布式其实就是多进程的程序,当多个进程访问一个资源,会造成问题: 1.资源共享的竞争问题 2.数据的安全性 分布式锁的解决方案: 1.怎么去获取锁 数据库 zookeeper redis 2.怎么释放 ...

  9. [Python3网络爬虫开发实战] 1.2.3-ChromeDriver的安装

    前面我们成功安装好了Selenium库,但是它是一个自动化测试工具,需要浏览器来配合使用,本节中我们就介绍一下Chrome浏览器及ChromeDriver驱动的配置. 首先,下载Chrome浏览器,方 ...

  10. 第二次 Ubuntu16.04 vi编辑器的方向键和退格问题

    新安装ubuntu后,好多人可能都碰到过这样的问题,vi对文件进行编辑时,上下左右键变成了ABDC,退格键也不管用. 解决办法其实也很简单,首先卸载掉旧的vim-common. apt-get rem ...