03《UML大战需求分析》之三
学习了活动图之后,我又学习了流程分析工具之二的状态机图。看上去状态机图和活动图很类似,我也很容易从活动图的角度来理解状态机图。但是学习之后,发现两种图是两种完全不同的分析角度。活动图在流程分析时是玩你玩万能的,但是在流程是围绕某一事物的状态展开时,首选的应该是状态机图。
活动图是将流程分解为一个一个的活动,通过活动的先后顺序来展示流程;但是状态机图是从某个事物的状态是如何变化的角度来展示流程。在分析一个流程时,我们首先分析从头到尾一共经历了什么状态,状态之间是如何变化的。状态与状态之间的箭头叫转换,在状态转换时应该说明什么角色做了什么事情从而导致状态发生变化。在这里,两者的不同就是,状态图各种角色如何参与这个流程、各种角色的动作,都通过“转换”来体现,而活动图是通过“活动”来体现的。这一点是状态机图与活动图的重大差别体现。状态机图的难点和关键在于合适而准确的状态划分,我觉得这需要长时间的的练习和画图。在思考状态机图的流程时,我们首先应该找到整个流程是围绕什么事物展开的,找到这个事物的状态;然后分析,当一个状态可以转换为两个或两个以上状态时,表示分支结构。
紧接着我又学习了流程分析的另一利器顺序图,使用顺序图,我们可以很好的描述我们日常生活中的一些情况。比如去餐厅吃饭这个情况,我们首先会进入餐厅,第二步,坐到一个座位,第三步,从服务员那里拿到菜单,第四步,挑选菜品,最后一步,向服务员点单。这就是我们去餐厅吃饭的一个顺序。我们只需要从该流程中找到角色,并找到角色之间是通过什么事件如何交互的。用箭头表示交互,消息代表做了什么事情,引起了系统反响。我们可以使用顺序图画主要流程,再配合注解或文字说明特殊流程。顺序图强调的是角色之间的交互,信息的传递,并且强调按着时间顺序发生的事情,但是并不适合表达复杂的特殊流程。
这三种图不是限制必须使用某种图,我们可以同时使用来更好地表达我们的流程,我们应该从各个角度来分析,找到最适合而不是说最好的图来表述。
03《UML大战需求分析》之三的更多相关文章
- UML大战需求分析——阅读笔记03
读<UML大战需求分析>有感03 状态机图和活动图在样子比较相似,但状态机图是用来为对象的状态及造成状态改变的事件建模.我们大二学习UML统一建模语言状态机图模块时了解到,UML的状态机图 ...
- 《火球——UML大战需求分析》(0.2)——目录
说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...
- UML大战需求分析--阅读笔记01
本次阅读的书籍是<UML大战需求分析>,看了前两章的内容:1 大话UML,2绞尽脑汁的需求分析.这两章内容关联不大,分开描述. 第一章:大话UML 本章主要概述UML是什么,有什么内容.U ...
- UML大战需求分析——阅读笔记04
读<UML大战需求分析>有感04 开发某系统的重要前提是: 这个系统有谁在用? 这些人通过这个系统能做什么事? 一般搞清楚这件事,再画个业务流程图,就能条例清楚的表达系统的需求了.作为一个 ...
- 阅读笔记 1 火球 UML大战需求分析
伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本 <火球 UML大战需求分析>,首先 ...
- 《uml大战需求分析》阅读笔记05
<uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...
- <<UML大战需求分析>>阅读笔记(2)
<<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...
- uml大战需求分析阅读笔记01
<<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...
- 《UML大战需求分析》阅读笔记01
在刚学习软件开发的课程时,首先学习了UML设计,但只是学习了基本的语法,虽然在学期通过课堂练习进行了实践,但并没有真正理解其中作用.为了进一步的理解UML的用法,我阅读了<UML大战需求分析&g ...
- 火球-UML大战需求分析(体验版3.0.2).pdf
火球-UML大战需求分析(体验版3.0.2).pdf http://files.cnblogs.com/files/happlyonline/%E7%81%AB%E7%90%83-UML%E5%A4% ...
随机推荐
- switch 语句来选择要执行的多个代码块之一。
switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: n 与 case 1 和 case 2 不同时执行的代码 }
- Spring中xml文档的schema约束
最开始使用Spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version= ...
- js常用正则表达式大全--如:数字,字符等
一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9 ...
- HDU 4704 Sum( 费马小定理 + 快速幂 )
链接:传送门 题意:求 N 的拆分数 思路: 吐嘈:求一个数 N 的拆分方案数,但是这个拆分方案十分 cd ,例如:4 = 4 , 4 = 1 + 3 , 4 = 3 + 1 , 4 = 2 + 2 ...
- UVALive-8138 Number Generator 概率dp+优化
题目链接:https://cn.vjudge.net/problem/UVALive-8138 题意 有一个随机数生成器,输出1-n的整数. 现在已经输出了k个数,问再取几个数才能使取出的所有数的个数 ...
- Python学习笔记(2)操作符和数据类型
2019-02-25 一: (1)常用操作符: ① 算数操作符:=.-.*./.%(求余).**(幂运算).//(地板除法:计算结果取比商小的最大整型) 注意:幂运算操作符比其左侧的一元运算符的优先级 ...
- CNN卷机网络在自然语言处理问题上的应用
首先申明本人的英语很搓,看英文非常吃力,只能用这种笨办法来方便下次阅读.有理解错误的地方,请别喷我. 什么是卷积和什么是卷积神经网络就不讲了,自行google.从在自然语言处理的应用开始(SO, HO ...
- 【codeforces 723F】st-Spanning Tree
[题目链接]:http://codeforces.com/contest/723/problem/F [题意] 给你一张图; 让你选择n-1条边; 使得这张图成为一颗树(生成树); 同时s的度数不超过 ...
- hdu 3177贪心
#include<stdio.h>/*只能按这种形式排序单纯一种形式是不对的,按ai排序 20 2 1 1 10 20 按bi排序 20 2 5 17 1 16 都是不对的 二a.u+b. ...
- SwipeRefreshLayout与ViewPager滑动事件冲突解决
问题描写叙述: 开发中发现,SwipeRefreshLayout的下拉刷新,与ViewPager开发的banner的左右滑动事件有一点冲突,导致banner的左右滑动不够顺畅. 非常easy在bann ...