蔡
				
				
				超
				
						
						
						
				
		
		
				SCEA
				,
				SCBCD
				,
				MCSD
北京天融信软件架构师
 SUN,Microsoft培训中心特邀高端教师
		
		
				
						
常年提供架构咨询服务
				
						
						
				
		
		
				chaocai2001@yahoo.com.cn 
				,
				010-82776427
		
		
				
						 
				
		
		
				4+1
				视图与
				UML
		
		
				软件架构设计已经逐渐成为现代软件开发过程的核心,然而能够清晰表明架构设计并不是一件容易的事,就面向对象开发而言,
				RUP 
				的
				4+1
				视图已在架构设计的撰写中得到了广泛的应用和认可。
		
		
				对于
				4+1 view
				的描述有几个不同版本(或包含的视图不同,或视图的名称不同),文中以
				Philippe Kruchten, November 1995
				提出的
				4+1
				视图为准。
		
		
				4+1
				视图包括:逻辑视图(
				Logic View
				),开发视图(
				Develop View
				),进程视图(
				Process View
				),物理视图(
				Physical View
				)和场景视图(
				Scenarios
				)。
		
		
				
						 
				
		
		
				
						
						
								
								
								
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
								
								
								
								
								
						
						
								
										 
								
						
				
		
		
				视图间的关系
		
		
				
						 
				
		
		
				4+1
				视图不仅便于我们记录架构设计,实际上它也指导了我们进行架构设计活动的部分过程。
		
		
				通常我们选择
				UML
				来表现各种视图,以下列出了
				UML
				和各视图的对应关系
		
		
				
						4+1
				
				
						视图
				
				
						       
						                          
						
								  UML
				
		
		
				场景视图
				
						         
						                   use case
		
		
				逻辑视图
				
						                            
				
				类图
		
		
				开发视图
				
						                            
				
				类图,组件图
		
		
				进程视图
				
						                            
				
				无完全对应
		
		
				部署视图
				
						                            
				
				部署图
		
		
				在架构设计稳定中通常不会给出较多的用例描述,这些是在需求稳定中定义。但是往往架构文档会选择一些用例,列入文档中,这些用例和一些非功能性需求一起用以证明架构的有效和正确性。在逻辑视图中用例的实现是必不可少的一节,尽管架构设计更关注非功能性需求。
		
		
				融入
				MDA
				的思想
		
		
				对于逻辑视图和开发视图所应包含的内容常常会觉得很难区分两者间的明显界限。逻辑视图包含更多的分析模型与实现技术本身相关性应该较少,如业务对象模型及其扩展。而开发视图则会与实现技术紧密相关。
		
		
				随着
				MDA
				思想的推广,在架构设计文档的撰写方面也产生了影响,我们不难把
				MDA
				的
				PIM
				和逻辑视图联系起来,而把
				MDA
				中的
				PSM
				和开发视图联系起来。
		
		
				在编写逻辑视图是我们应该描述与技术平台无关的模型,而开发视图则描述与实现技术平台相关的模型。
		
		
				如在逻辑视图中表现的某些实体类,我们会在开发视图中转换为
				EJB
				组件(实体
				Bean
				)。
		
		
				这种做法不仅有利于我们编写架构设计文档,同时更是一种好的架构设计思考流程。