(零雨其蒙原创 转载请注明)
2007
						
				
				
						年
						
								3
						
				
				
						月
						
								11
						
				
				
						日星期日
						
								
								
								
						
				
		
		
				
						
								 
						
				
		
		
				第五部分
				
				
				细化迭代
				
						3
				
				——中级主题
		
		
				第
				
						28
				
				章
				
						UML
				
				活动图及其建模
				
				
		
		
				
						UML
				
				活动图的基本作用
		
		
				
						
								    
						
				
				一个
				
						UML
				
				活动图表示一个过程中的多个顺序活动和并行活动。这些活动图有助于业务过程、工作流、数据流和复杂算法进行建模(
				
						P346
				
				)。
		
		
				
						
								    
						
				
				从上面这段话的描述我们可以得知,活动图可以替代面向过程的分析与设计中的业务流程图和数据流程图以及算法图等。
				
						
								
								
						
				
		
		
				
						
								 
						
				
		
		
				
						UML
				
				活动图的基本表示法
		
		
				基本表示法包括如下符号:
		
		
				
						动作(
						
								action
						
						)
				
		
		
				也就是它完成某些事物
		
		
				
						分区(
						
								partition
						
						)
				
		
		
				表示参加过程的不同参与者,这样可以使得系统责任更加清晰,谁负责什么工作(
				
						action
				
				),而且显得不是那么乱糟糟的一片,让人看得想吐!
				
						
						
				
		
		
				
						分叉点(
						
								fork
						
						)
				
		
		
				一个输入转换,以及多个输出的并行转换或对象流,就是一分多
		
		
				
						连接点(
						
								join
						
						)
				
		
		
				多个输入转换或对象流,一个输出变换,就是多合一
		
		
				
						对象节点(
						
								object node
						
						)
				
		
		
				由动作产生或使用的对象。这允许我们对数据流或对象流建模,也就是说在表示数据流图时可以使用它。
		
		
				
						当某个活动需要在另外一个活动图中展开时,如何表示?
				
		
		
				可以使用耙子(
				
						rake
				
				)符号来表示。使用耙子的作用就好像在画业务流程图或数据流程图时要画不同层次(
				
						level
				
				)的图一样,需要一层一层细化,我觉得使用
				
						rake
				
				是个更清晰的选择,比传统的数据流图等要好。因为耙子这个符号很好!
		
		
				
						如何表示条件分支?
				
		
		
				使用决策(
				
						decision
				
				)符号和合并(
				
						merge
				
				)符号
		
		
				以上例子见
				
						P348-350
				
		
		
				准则
		
		
				
						l         
				
				对于复杂的业务过程使用活动图,而简单的使用用例文本就好了。
		
		
				
						l         
				
				尽量保持在同一张图中所有动作节点的抽象水平一致。也就是说要表示同一程度的颗粒度。
		
		
				
						
								 
						
				
		
		
				
						
								 
						
				
		
		
				第
				
						29
				
				章
				
						UML
				
				状态机图和建模
		
		
				
						UML
				
				状态图的作用
		
		
				
						
								    
						
				
				状态图是动态视图,用来表示状态。
				
						UML
				
				状态机图(
				
						state machine diagram
				
				)描述了某个对象的状态和感兴趣的事件以及对象响应该事件的行为。
		
		
				事件
				
						event
				
		
		
				
						
								   
						
				
				指一件值得注意的事情的发生。
		
		
				状态
				
						state
				
		
		
				
						
								   
						
				
				指对象在事件发生之间某时刻所处的情形。
		
		
				
						
								   
						
				
				我觉得具体而言对象状态变化包括:属性值改变,关联关系改变和生命周期的改变(创建、激活、钝化和销毁)
		
		
				转换
				
						transition
				
		
		
				
						
								   
						
				
				是两个状态之间的关系。它表明当某事件发生时,对象从先前的状态转换到后来的状态。
		
		
				
						
								 
						
				
		
		
				
						
								 
						
				
		
		
				何时使用
				
						UML
				
				状态机图
		
		
				
						
								   
						
				
		
		
				
						
								准则
								
										
										
								
						
				
				
						
								
										   
										
												 
										
								
						
						
								考虑为具有复杂行为的状态依赖对象(
						
						指响应行为依赖于当前状态,比如按下电话某个键,状态的变化依赖于电话机处于何种状态,接听还是放在原位)而不是状态无关对象建模。
				
		 
		
				
						
								 
						
				
		
		
				
						
								 
						
				
		
		
				事务处理等复杂的反应式对象和页面(
				
						UI
				
				,
				
						Web
				
				,窗口)导航(一系列的流程,比如先按
				
						btnA
				
				,然后
				
						edtB
				
				的
				
						enble
				
				属性变为
				
						true
				
				等;还有就是
				
						Web
				
				页面导航的例子,如
				
						A
				
				页面通过
				
						URL
				
				导航到
				
						B
				
				页面,然后点击
				
						B
				
				页面上的按钮转到
				
						C
				
				页面),都可以用状态图来进行可视化表示。