uml建模风格之状态图

uml建模风格之状态图

ID:33341684

大小:53.50 KB

页数:7页

时间:2019-02-25

uml建模风格之状态图_第1页
uml建模风格之状态图_第2页
uml建模风格之状态图_第3页
uml建模风格之状态图_第4页
uml建模风格之状态图_第5页
资源描述:

《uml建模风格之状态图》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、UML建模风格之状态图UML状态图描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反应的。通常我们创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。建模实时系统。 指南∶概要当行为的改变和状态有关时才创建状态图。把初始状态放置在左上角。把最终状态放置在右下角。状态指南状态名称要简单但应具有描述性。避免"黑洞"状态。避免"奇迹"状态。子状态建模指南为复杂的目标建模子状态。把通用的子状态变换放在一起为复杂的实体创建一个分层的状态图最高阶的状态图总有初始态和

2、最终态变换和动作用实现语言的命名规则命名软件动作用叙述性文字命名角色动作只有对所有的入口变换都合适时才注明入口动作只有对所有的出口变换适合时才注明出口动作只有当你想终止并再进入该状态时才建模递归变换用过去式命名转换事件把转换标记放在接近源状态的地方以转换方向为基础放置变换标记警界点警戒点不应该重叠为可视化的定位警戒点而引入接合点。警戒点不必配套一致的命名警戒点   通用准则当行为的改变和状态有关时才创建状态图。    敏捷建模(AM)(Ambler2002)的原则--最大化项目干系人的投资--建议你只有当模型能够提供正面

3、价值的时候才创建模型。如果一个实体,比如一个类或组件,表示的行为的顺序和当前的状态无关,那么画一个UML状态图可能是没有什么用处的。例如一个SurfaceAddress类就很简单,表示了那些你将会在系统中显示和操作的数据,因此一个UML状态图就没有任何相关之处。而一个Seminar对象就非常的复杂,学生注册这样一个事件将会根据它的当前状态有不同的反应,就像你在图1中看到的。图⒈班级注册的一个UML状态图。 把初始状态放置在左上角。    如你在图1所见的,初始状态被建模成一个实心圈,把初始状态放在左上角反映西方人的阅读文

4、化的习惯。把最终状态放置在右下角。    如你在图1所见,最终状态被建模为一个带边界的实心圆。把最终状态放右下角反映了西方的文化的从左到右,从上到下的阅读习惯。状态指南    状态是一个实体的行为模式的某个阶段。状态的表示是通过实体的属性值。例如,在图1中,当seminar被标记为open,并且存在空位的时候,seminar就处于OpenForEnrollment的状态。状态名称要简单但应具有描述性。    象OpenForEnrollment和Proposed这种的状态名称很容易理解,从而提高了图⒈的沟通价值。理论上状

5、态名称应该是现在时,但是用过去式写成的诸如Proposed的名称要比用现在时写成的诸如IsProposed的名称好的多。避免"黑洞"状态。    黑洞状态是那种只有变换进来但没有任何变换发出的状态,这种情况要么由于该状态是一个最终状态,要么就是你已经错过了一个或多个变换变换。避免"奇迹"状态。    奇迹状态是那种只有变换发出但没有任何变换进来的状态,这种情况要么由于该状态是一个起点,要么就是你已经错过了一个或多个变换变换。子状态建模指南为复杂的目标建模子状态。    图1中展示的UML状态图是不完整的,因为它没有建模S

6、eminar的post-enrollment(注册后)状态。图2建模了一个Seminar的完整的生命周期,把图1描述为一个新的包括子状态集合的Enrollment的复合状态,也称作超状态。注意按理说你会像图1的模型那样处理标记,但为了简化起见在原先变换上的标记都没有包括在内。当一个现有状态表现出复杂的行为时,建模子状态就是有意义的,从而促使你来研究它的子状态。当几个现有状态共用一个通用的入口条件或出口条件(Douglass1999)时,引入超状态是有意义的,在图1中你可以看到所有的状态共用一个通用的closed变换,以到

7、达最终状态。图⒉Seminar的完整生命周期 把通用的子状态变换放在一起    和图1中每一个子状态都拥有一个cancelled变换不同,在图2中你可以看到cancelled变换仅用于描述Enrollment超状态,这使图形得到简化。如果子状态都共享一个入口变换或出口变换,都可以使用一个同样的方法。变换上的警戒点和动作(如果有)也应该使相等的。为复杂的实体创建一个分层的状态图    虽然这种表现子状态的方法是很好使的,但是最终的图可能变得相当复杂--我们只要设想一下如果BeingTaught状态也有子状态的话,图2会变成

8、什么样就知道了。一个替代的方法是创建一个分层的UML状态图。例如,图3表示高阶视图,而图1描述了一个细节视图。这种方法的好处是如果需要的话,马上就可以建立一张详图来研究BeingTaught状态。图⒊Seminar的高阶状态图。 最高阶的状态图总有初始态和最终态    一个高阶的UML状态图,例如图2描述的这样,应该

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。