【UML九种图系列】之如何利用三层来绘制类图、时序图?
UML并发视图:实体之间行为的交互,是动态。分为:时序图、协作图、状态图、活动图
一、时序图简述:
时序图(Sequence Diagram):描述对象之间的交互行为,按照时间顺序排列。
元素:
角色(Actor):人/系统
对象(Object):
生命线(Lifeline):对象存在的时间
控制焦点(FocusofControl):表示时间段的符号
消息(Message):
同步消息(SynchronousMessage):等待结果。
异步消息(AsynchronousMessage):不等待结果。
返回消息(ReturnMessage):从过程调用返回
自关联消息(Self-Message):统一的对象中方法的自身调用/相互调用。
二、如何绘制时序图?
时序图是如何绘制的呢?它和类图之间是什么关系呢?时序图的绘制和三层架构之间又是如何联系的呢?下面的内容将解答您所有的疑惑:
用一个纯三层的例子描述时序图是如何实现系统登陆的:
1、首先,绘制类图:
U层作用:输入+显示+简单判断,如:frmLogin类
B层作用:业务逻辑(理解什么是也要业务,对于时序图的绘制是很重要的!)是本系统中所特有的功能。如:LoginBLL类
D层作用:针对数据库中表的数据进行增删改查。如:UserDAL类、UserJobRecordDAL类。
2、其次,绘制时序图:(注:A向B的传递消息=A调用B的方法)
PS:图中传递的消息,解析如下:
frmLogin类属于U层,解析如下:
isEmpty:判断是否为空
isRightful:判断输入的合法性(是否含有非法字符)
LoginBLL类属于B层,解析如下:
Login(UserName,Password):登陆,并把用户输入的UserName,Password传递进去。
QueryUserByUserName(UserName):把U层传递的UserName传递至D层,以获取该系统用户的信息(密码、状态)。
isEmpty:判断获取的信息是否为空。若为空,则数据库中不存在该用户名,则登陆失败。
isPasswordRight:判断用户名和密码是都匹配。
isOnDuty:判断该用户是否处于上机状态,若已经处于上机状态,则不允许二次登陆。
UserDAL类、UserJobRecordDAL类属于D层,解析如下:
QueryUserByUserName(UserName):按照用户名查询,User表中含有UserName的信息。
ModifyUser(UserState):若登陆成功,则修改User表中,该UserName 的状态一项为“正在值班”,
AddUserJobRecord:并在UserJobRecord表中添加一条关于该UserName 的上机记录。
三、如何确定三层中应该放什么类呢?
1、Entity:数据库中有N个表,则Entity层中就有N个类,和数据库中的表一一对应。
2、D层:D层是对数据库的增删改查,则D层中有N个类,分别对应N个表均有增删改查的操作。当然您也可以增加如静态数据、枚举类型……的实体类。
3、U层:主要放窗体类,有M个窗体,U层中就有M个类
图示如下:
那么,B层中的类,该如何划分呢?有两种划分方式:
1、B层中的类,可以由该系统的功能/用例推导出。如:登陆Login用例是用户的一项功能。因此,可以在B层中写LoginBLL类。这样划分的特点是,有多少个用例,B层中就有多少个类。类的划分粒度比较细,该类的方法比较少,功能职责单一。但是数目比较多。
2、另一种方法是,由D层推导出,即D层有多少个类,B层就有多少个类,也就是说B层中的类和D层中的类是一一对应的关系。这种划分方式的特点在于:B层中的类数目比较少,相对而言方法就比较多,违背了单一职责的原则。
上如两种方式各有优缺点,仅供参考,如有建议欢迎指出。
【UML九种图系列】之如何利用三层来绘制类图、时序图?的更多相关文章
- UML九种图 之 包图和对象图
前言 对象图和包图依然是对系统的静态的描写叙述.UML九种图加上包图,事实上是十幅图. 包图 1.构成 2.包中的元素 类.接口.用例.构件.其他包等.( ...
- UML九种图-包图、类图
UML九种图-包图.类图 一.包 (一)相关概念: 1.包: 一个包=一层=一个命名空间=一个文件夹 2.包的命名: 简单名:王老二 路径名:中国.河北省.廊坊市.廊坊师范学院.信息技术提高班.九期班 ...
- 【转】浅谈UML的概念和模型之UML九种图
原文地址:浅谈UML的概念和模型之UML九种图 目录: UML的视图 UML的九种图 UML中类间的关系 上文我们介绍了,UML的视图,在每一种视图中都包含一个或多种图.本文我们重点讲解UML每种图的 ...
- 浅谈UML——九种图(一)
前言 学UML将近两个星期了,对UML有了一定的了解,学过的没学过的都知道UML中最最最核心的部分要数那九个图了.浅谈UML九种图. 实例 1.用例图: 什么是用例?描绘一个系统外在可见的需求情况,是 ...
- 【聚沙成塔系列】之《UML九种图-包图、类图》
一.包 (一)相关概念: 1.包: 一个包=一层=一个命名空间=一个文件夹 2.包的命名: 简单名:王老二 路径名:中国.河北省.廊坊市.廊坊师范学院.信息技术提高班.九期班.王老 3.可见性: +公 ...
- 浅谈UML的概念和模型之UML九种图
1.用例图(use case diagrams) [概念]描述用户需求,从用户的角度描述系统的功能 [描述方式]椭圆表示某个用例:人形符号表示角色 [目的]帮组开发团队以一种可视化的方式理解系统的功能 ...
- UML九种图作用简介
UML(统一建模语言):是面向对象的可视化建模语言. UML中有3种构造块:事物.关系和图,事物是对模型中最具有代表性的成分的抽象,关系是把事物结合在一起,图聚集了相关的事物 UML中有九种图如下: ...
- [UML]转:浅谈UML的概念和模型之UML九种图
转自:http://blog.csdn.net/jiuqiyuliang/article/details/8552956 目录: UML的视图 UML的九种图 UML中类间的关系 上文我们介绍了,UM ...
- UML 小结(6)- UML九种图的比较与学习
UML中的九种图: 用例图.类图.对象图.状态图.时序图.协作图.活动图.部署图.构件图. 1)用例图(Use Case Diagram) 它是UML中最简单也是最复杂的一种图.说它简单是因为它采用了 ...
随机推荐
- sql 合并相同条件的字段
案例:将 Albums 字段相同的数据的 PhotoUrl 字段 拼接到一起(我写的是前9行,可以去掉) 一.表的结构 二.sql 语句(为了方便 我加了一个条件[Albums=783] ) ) '; ...
- 毕业论文endnote使用
毕业论文的参考文献的标准格式,参考了一下文章 http://blog.sina.com.cn/s/blog_62a1f43801016fq5.html http://blog.csdn.net/zhe ...
- uboot: 理解uboot要看哪些书
概览:
- 虚拟rethat联网问题
近日在vmware虚拟了一台rethat的linux,但是使用桥连也上不了网! 宿主机是win7,由于在公司,是采用固定ip上网的,通过上网查资料,终于可以连接网络了: 步骤如下: 第一:修改vi / ...
- [POJ 1521]--Entropy(哈夫曼树)
题目链接:http://poj.org/problem?id=1521 Entropy Time Limit: 1000MS Memory Limit: 10000K Description A ...
- Android 中 GridView 常用属性合集
GridView的一些常用属性: android:numColumns=”auto_fit” //GridView的列数设置为自动 android:columnWidth=”90dp " / ...
- MVC-03 控制器(4)
七.模型绑定 在ASP.NET MVC中是通过模型绑定(Model Binding)达到解析客户端传来的数据. 1.简单模型绑定 当网页上有个窗体,且窗体内有个名为Username的输入字段,而Act ...
- U+00A0 (Non-breaking space)无法被正确压缩
Code Glyph Decimal HTML Description #U+00A0 Non-breaking space 0096 https://zh.wikipedia.org/wik ...
- JProtector 帮助文档
一.应用加密 1.使用 JProtector在线 进行应用加密:使用浏览器访问 http://app.shuton.net/encryptjar, 点击 Browse 选择待加密的应用jar包.war ...
- 一个load飙高的过程分析,非常有价值(转)
关于us高和sy高的问题分析: 当us值过高时,表示运行的应用消耗大量的CPU.java应用造成us高的原因主要是线程一直处于可运行(Runnable)状态,通常这些线程在执行无阻塞.循环.正则或纯粹 ...