前言


通过看视频,对于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. html 零散问题

    1.iconfont的使用 https://www.cnblogs.com/yujihang/p/6706056.html 2.阴影效果比较 box-shadow:0 0 6px #000 inset ...

  2. 09C++指针

    指针 6.1 指针的概念 请务必弄清楚一个内存单元的地址与内存单元的内容这两个概念的区别.在程序中一般是通过变量名来对内存单元进行存取操作的.其实程序经过编译以后已经将变量名转换为变量的地址,对变量值 ...

  3. Python tldextract模块

    最新发布的 PyPI: pip install tldextract 或者最新的开发版本: pip install -e 'git://github.com/john-kurkowski/tldext ...

  4. js使用canvas在前端压缩图片

    HTML代码: <input id="file" type="file"> JS代码: var eleFile = document.querySe ...

  5. jquery toggle()设置

    很多朋友对jquery toggle()比较熟练,甚至经常用到,而且对toggle的三个参数也比较了解$(selector).toggle(speed,callback,switch).但是当你设置$ ...

  6. action类中属性驱动和模型驱动的区别

    1.Struts2的属性驱动 在Action类中,属性××通过get××()和set××()方法,把参数在整个生命周期内进行传递,这就是属性驱动 代码如下: package org.abu.csdn. ...

  7. buf.values()

    buf.values() 返回:{Iterator} 创建并返回一个包含 Buffer 值(字节)的迭代器.当 Buffer 使用 for..of 声明时将自动调用该函数. const buf = B ...

  8. 《机器学习实战》-逻辑(Logistic)回归

    目录 Logistic 回归 本章内容 回归算法 Logistic 回归的一般过程 Logistic的优缺点 基于 Logistic 回归和 Sigmoid 函数的分类 Sigmoid 函数 Logi ...

  9. Python之模块和包的创建与使用

    一.模块的概念 在计算机的开发过程中,随着程序代码越写越多,在一个文件里代码就越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,放在不同的文件里面,这样,每个文件包含的代码就相对 ...

  10. 第十六节:Scrapy爬虫框架之项目创建spider文件数据爬取

    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取所设计的, 也可以应用在获取API所返回的数据或 ...