您的位置: 首页 > 技术文档 > 网络编程 > UML的构成
UML建模 回到列表 多建车道以提高Oracle性能
 UML的构成

作者:郝宪玮 时间: 2010-06-13 文档类型:转载 来自:灵动生活

第 1 页 需求阶段如何书写Use Case [1]
第 2 页 设计阶段如何画用例视图(Use-Case View) [2]
第 3 页 类与类之间的关系图(Class Diagram,UML图) [3]
第 4 页 UML建模之活动图介绍(Activity Diagram) [4]
第 5 页 UML建模之状态图(Statechart Diagram) [5]
第 6 页 UML建模之时序图(Sequence Diagram) [6]
第 7 页 UML建模之业务处理模型(Business Process Model,BPM) [7]
第 8 页 UML建模之数据建模(Data Model Diagram) [8]

一、状态图简介(Brief introduction)

状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)。一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机(State Machine Diagram),重点在与描述状态图的控制流。

如下图例子,状态机描述了门对象的生存期间的状态序列,引起转移的事件,以及因状态转移而伴随的动作(Action)

.状态有Opened、Closed、Locked。

事件有 Open、Close、Lock和Unlock。

注意:

1、并不是所有的事件都会引起状态的转移,比如当门是处于【Opened】状态,不能进行【Lock】事件。

2、转移(Transition)有警备条件(guard condition),比如只有doorWay->isEmpty 条件满足时,才会响应事件。

二、状态图元素(State Diagram Elements)
 
1、状态(States)

指在对象的生命周期中的某个条件或者状况,在此期间对象将满足某些条件、执行某些活动活活等待某些事件。所有对象都有状态,状态是对象执行了一系列活动的结果,当某个事件发生后,对象的状态将发生变化。

状态用圆角矩形表示

初态和终态(Initial and Final States)

初态用实心圆点表示,终态用圆形内嵌圆点表示。

2、转移(Transitions)

转移(Transitions)是两个状态之间的一种关系,表示对象将在源状态(Source State)中执行一定的动作,并在某个特定事件发生而且某个特定的警界条件满足时进入目标状态(Target State)

事件标记(Trigger):是转移的诱因,可以是一个信号,事件、条件变化(a change in some condition)和时间表达式。

 警界条件(Guard Condition):当警界条件满足时,事件才会引发转移(Transition)。

 结果(Effect):对象状态转移后的结果。

3、动作(State Actions)

动作(Actions)是一个可执行的原子操作,也就是说动作是不可中断的,其执行时间是可忽略不计的。

在上例中,对象状态转移后的结果显示在转移线上,如果目标状态有许多转移,而且每个转移有相同的结果,这时把转移后的结果(Effect)展示在目标状态中(Target State)更好一些,可以定义进入动作(Entry Action )和退出动作(Exit Action),如下图

4、自身转移(Self-Transitions)

状态可以有返回自身状态的转移,称之为自身转移(Self-Transitions)

2S后,Poll input事件执行,转移到自己状态【Waiting】

5、组合状态(Compound States)

嵌套在另外一个状态中的状态称之为子状态(sub-state),一个含有子状态的状态被称作组合状态(Compound States). 如下图,【Check PIN】是组合状态,【Enter PIN】是子状态。

也可用以下方式进行描述

如上图,状态机【Check PIN】的细节被分割到另外一个图中了。

6、进入节点(Entry Point)

如下图所示,由于一些原因并不会执行初始化(initialization),而是直接通过一个节点进入状态【Ready】,则此节点称之为进入节点(Entry Point)

7、退出节点(Exit Point)

8、历史状态(History States)

 历史状态是一个伪状态(Pseudostate),其目的是记住从组合状态中退出时所处的子状态,当再次进入组合状态,可直接进入这个子状态,而不是再次从组合状态的初态开始。

在上图的状态图中,正常的状态顺序是:【Washing】- >【Rinsing】->【Spinning】。

如果是从状态【Rinsing】突然停电(Power Cut)退出,,洗衣机停止工作进入状态【Power Off】,当电力恢复时直接进入状态【Running】。

9、并发区域(Concurrent Regions)

状态图可以分为区域,而区域又包括退出或者当前执行的子状态。说明组合状态在某一时刻可以同时达到多个子状态。如下图刹车系统,同时进入前刹车【Applying Front Brakes】状态和后刹车【Applying Rear Brakes】状态。

三、状态图案例分析(State Diagram Example Analysis)

按照blink518的建议(“出货中”是属于条件分支应该使用Decision),改成如下图也是很好的做法:

订单成立状态主要有:

订单成立

订单取消(Guard:会员订单-缴款期限已过期)

备货中(Guard:已付款、订单成立、库存量足够)

出货中(Effect:扣除商品可接单量及移除购物车中的购买资料)

出货确认(Guard:实际配达日及发票代码、号码均不为空值)

出货完毕(Guard:实际配达日不为空)

出货失败

订单成立(Guard:出货完毕,已付款、鉴赏期结束日期 小于等于 [系统日期])

分析:

1、购物车生成订单进入状态【订单成立】

2、系统检测订单已经付款并且库存量足够,则进入状态【备货中】

3、物流发货,进入状态【发货中】,状态转移为【发货中】后,需要做的操作有“扣除商品可接单量及移除购物车中的购买资料”

4、发货完毕后,状态分为【出货确认】和状态【出货失败】,如果状态是【出货失败】,则【结束】,如果状态为【出货确认】,则进入下一步。

5、配货人员填写实际配达日期,进入状态【出货完毕】。

6、如果”已付款、鉴赏期结束日期 小于等于 [系统日期]”,则【订单成立】。

四、总结(Summary)
 
       状态图重点在于描述对象的状态及其状态之间的转移,状态图的基本元素主要有:状态、转移、动作、自身转移、组合状态、进入节点、退出节点、历史状态、并发区域等,状态中的事件分为调用事件(Call)、变化事件(Change)、时间事件(Time)和信号事件(Singal)。最后以实例对状态对进行了分析。

出处:灵动生活
责任编辑:bluehearts

上一页 UML建模之活动图介绍(Activity Diagram) [4] 下一页 UML建模之时序图(Sequence Diagram) [6]

◎进入论坛网络编程版块参加讨论

作者文章
VS2010中创建自定义SQL Rule
UML建模
关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule
>> 分页 首页 前页 后页 尾页 页次:5/81个记录/页 转到 页 共8个记录

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2