uml报告三状态图与活动图.docx
《uml报告三状态图与活动图.docx》由会员分享,可在线阅读,更多相关《uml报告三状态图与活动图.docx(17页珍藏版)》请在冰豆网上搜索。
uml报告三状态图与活动图
天津理工大学
计算机与通信工程学院
实验报告
2013至2014学年第二学期
课程名称
对象设计与建模
学号
学生姓名
年级
2011
专业
计算机
(合作)
教学班号
1
实验地点
7-215
实验时间
2014年月日第节至月日第节
主讲教师
辅导教师
实验(三)
实验名称
状态图与活动图
软件环境
Wingdows2000以上操作系统
RationalRose
硬件环境
PentiumII以上微机
实验目的
1.掌握如何创建活动图;
2.掌握在活动图加入活动、开始与结束状态、决策、保护条件等;
3.掌握如何创建Statechart图;
4.学习Statechart图中对象可以存在不同的状态信息,掌握对象如何从一种状态过
渡到另一种状态,以及对象在不同状态中的行为。
实验内容(应包括实验题目、实验要求、实验任务等)
【实验题目】
状态图和活动图。
【实验性质】
设计性实验。
【实验要求】
1.根据文档描述创建活动图;
2.运行活动图;
3.掌握在Statechart图中加入活动、加入操作、退出操作、事件和状态历史加进状态
中;
4.掌握如何将事件、变元、保证条件、操作加进Statechart图的过渡中。
【实验内容】
本次实验要求能够根据指定的需求描述文档设计活动图,状态图。
实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)
任务1:
活动图
Step1:
创建
1.创建一个新的RationalRose模型;
2.在UseCaseView中创建一个包,命名为MaintainPersonalPlanner;
3.在MaintainPersonalPlanner包中创建一个用例,仍命名为MaintainPersonal
Planner;
4.在MaintainPersonalPlanner用例中创建活动图,命名为BasicFlow;
Step2:
用例描述
1.关于MaintainPersonalPlanner用例的描述:
ProspectiveBuyer可以建立一个帐号,该帐号保存了该用户的联系方式,存储了
个人的喜好以及其他的个人财政信息。
2.事件流
2.1BasicFlow
首先ProspectiveBuyer选择创建一个PersonalPlannerprofile。
若profile不存在,系统要求ProspectiveBuyer创建一个新的;若存在则用户
可以选择退出系统。
2.2AlternativeFlow
备份LogonID:
BasicFlow中,ProspectiveBuyer若输入一个已存在的
e-mail地址,系统默认用户创建了profile,并询问用户是否创建一个新
帐号。
ProspectiveBuyerForgetsPassword:
在BasicFlow中,ProspectiveBuyer
若忘记了密码,系统允许用户创建一个新的帐号(e-mail地址),并自动
生成一个新密码并发送至用户的邮箱。
InvalidFormatorInsufficientInformation:
在BasicFlow中,Prospective
Buyer在创建新profile中,若遗漏了某些附加的信息,系统将自动发送
请求用户重新输入,用户可以输入信息,也可以选择“取消”,此时用
例结束。
3.BasicFlow活动图示意如下
根据2.事件流的描述,可在活动图中绘制如下图。
其中,当点击
时,确定事件流的开始节点,点击
,之后在活动图中单击,出现半圆形框图,在框中输入“ChooseMaintainProfile”,即确定了第一个框图;点击图标
,然后在
与
之间建立连接,接下来如上所述,最后完成如下图。
Step3:
创建活动图
1.在活动图BasicFlow中增加Start和EndStates;
一个活动图中只有一个StartState,却可以有多个EndState。
2.在活动图BasicFlow中增加StateTransitions,Decisions和Guard
Conditions;
先增加Decision,后增加StateTransition;
添加GuardCondition文本:
打开StateTransition的窗口,在Detail页
中加入相应的保护条件
Step4:
运行
在BasicFlow活动图中选择任一个元素,运行Report/ShowUsage,并观察其变化。
任务2:
状态图
Step1:
在MaintainPersonalPlanner包中创建一个类,命名为“Product”,右键单
击这个类,选择NewStatechartDiagram,命名为Shopping;
Step2:
在Shopping框图中增加StartState和EndState;
即右击“Shopping”框图,选择“new”,之后分别选择“StartState”,“EndState”,就增加了所要求的。
Step3:
在Shopping框图中增加5个State,分别命名为:
“Ordered”
“Inventoried”
“OutofStock”
“SelectforPurchase”
“Purchased”;
即右击状态图“Shopping”,选择“new”——“State”,就可以建立“Ordered”,同样建立其他四个状态。
如下图:
Step4:
为Shopping框图中的States增加信息,双击State,打开规范窗口,单击Action
标签,右击窗口,选择“Insert”:
i.Ordered增加Entry操作:
entry/Selectedproductisnotintheshop
entry/Selectedproductisintheshopping
增加Do操作:
do/Checkingselectedproductifisintheshop
出现“Entry”,双击,出现如下框,在“Name”一栏中填入要增加的内容:
同样,在增加“do”操作时,只需将“When”一栏中选择“do”
ii.Inventoried增加Entry操作:
entry/Purchasingproduct
增加Event事件:
eventUndefined/Selectedproduct
iii.OutofStock增加Exit操作:
exit/Recordingselectedproductisoutofstock
Step5:
在Shopping框图中增加过渡(Transition):
1.StartStateOrdered中增加transition;
2.OrderedOutofStock中增加transition;
3.OrderedInventoried中增加transition;
4.InventoriedSelectedforPurchase中增加transition;
5.SelectedforPurchaseInventoried中增加transition;
6.SelectedforPurchasePurchased中增加transition;
7.PurchasedEndState中增加transition;
8.OutofStockEndState中增加transition;
9.InventoriedEndState中增加transition
Step6:
增加过渡中的细节:
1.双击OrderedOutofStock中的transition,打开规范窗口,选择Detail
标签,在GuardCondition中输入“backordered”;
2.重复第1步,在下列的transition中增加GuardCondition:
“received”在OrderedInventoried;
“InShoppingCart”在InventoriedSelectedforPurchase;
“paid”在SelectedforPurchasePurchased
Step7:
Statechart图示意图略。
Step8:
保存结果
【扩展练习】
练习一:
对选课系统中的课程类(对象)(Course)的状态变化过程如下:
课程对象被
创建,添加到数据库中。
管理员可以删除、修改课程信息,在某个学期,开设该课程,如果
选修人数超过指定人数,就不再允许学生选这门课。
学期结束,课程的状态终止。
根据以上
描述,绘制课程类(Course)的状态图。
练习二:
选课系统中的添加课程(AddCourse)用例的事件流如下:
(1)管理员选择进入管理界面,用例开始。
(2)管理员输入课程各项信息;
(3)系统验证是否和已有课程冲突;
A1:
有冲突
(4)系统添加新课程,提示课程添加成功;
(5)系统重新进入管理主界面,显示所有课程;
(6)用例结束。
其他事件流:
A1:
有冲突
(1)系统提示冲突,显示冲突课程信息;
(2)用户重新输入;
(3)继续验证直至无冲突;
(4)进入添加课程事件流第4步。
附录(可包括源程序清单或其它说明)
心得体会
通过这次实验,我明白了不是所用的类都需要画状态图,有明确意义的状态,在不同状态下有不同的类才需要画状态图。
而活动图可以用来描述事物或对象的活动变化流程。