UML 五步法:轻量级OOAD

这个理论内容源自于我阅读的UML .Net 实战一书,这本书整本都在讲五步法的开发过程,因为他是以.Net 为背景编写的所以我想学习一下他其中的一些应用思想。这本书针对的UML不是2.0

UML 五步法并不是适合于开发复杂系统的全功能的OOAD过程,他没有管理、测试、文档编制和审查功能,UML五步法适合于学习UML的框架过程。

6,7,8,9,10章是细化每一个过程的特定章节。

2009-11-26_132150

image

1.定义

找出需求中的角色和域对象,并分别以参与者为核心去画用例图,再以域对象为核心画用例图

以参与者为核心画用例图

 2009-11-26_163901

以域对象为核心画用例图

2009-11-26_163917

Pen,是域对象

2.细化

为每个用例都建立一个场景(活动图)来详细地描述此用例做什么

简单活动图有8个元素:初始状态、终止状态、活动状态、分支、归并、分叉和结合(一个线程变多个线程,多个线程合并为单个线程)。

活动图中的活动可以包含子活动以对活动进一步描述。

2009-11-26_193108

2009-11-26_195107

3.分配

 image

将活动图划分泳道,就是在前期去分析,这些状态将会在那些类和组件部分去实现。这些类之间的交互,而每个泳道代表了这个组件。

转换上的原型《》,实际其中的英文我认为完全可以用中文去说明:

《invoke》:调用原型,代表在A类中使用了B类中的方法或者属性。

《interrupt》:中断原型,表示A类中正常的运行中,来了事件中断了了A类,到B类中运行,结束后返回A类。

《UI》:界面原型:指一个用户界面的操作活动。

《return》:终止原型:代表调用终止中断结束了。

《display》:显示原型:代表这个转换是显示内容到UI。

image

而这个带泳道的活动图,可以用顺序图代替,不过顺序图是线性的,而活动图可以表现非线性分支和循环并包含子活动,可以向下钻取更多逻辑活动。

image

但是在UML2.0中顺序图同样可以解决这些问题,EA工具中似乎是这样做的。

4.设计

image

实际上他的这一步就是为系统定义一个组件图。但是他的根据是之前的泳道,或者是顺序图。

向类图中添加接口(圆形),并分析此接口将要实现的操作,由那个组件来实现这个接口,并将这个接口定义成类图的接口。

image 

上面的接口类图定义

image

查找泳道,或者顺序图对象的方法调用,以分析依赖关系。

这个所做的是体系结构的设计

 image

5.重复和再次重复

这个部分是为每一个组件创建类图,考虑每个类的属性和方法。

类图的关联,一般可以理解为一个类包含在另一个类之中。

类图的依赖,可以理解为using 和程序集引用。

网关类

image

 image

再次细化,就是再执行5步

 image

最后一步他是考虑的部署图

image

书签82页

冯瑞涛
原文地址:https://www.cnblogs.com/finehappy/p/1611192.html