软件工程软件工程软件工程 (49).pdf

上传人:刘静 文档编号:52747943 上传时间:2022-10-23 格式:PDF 页数:13 大小:444.47KB
返回 下载 相关 举报
软件工程软件工程软件工程 (49).pdf_第1页
第1页 / 共13页
软件工程软件工程软件工程 (49).pdf_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《软件工程软件工程软件工程 (49).pdf》由会员分享,可在线阅读,更多相关《软件工程软件工程软件工程 (49).pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、UMLUML状态图中的组合状态(状态图中的组合状态(SuperstatesSuperstates)“OR”的组合状态 处于组合状态时只能满足其中一个子状态 1“AND”的组合状态(并发状态)处于组合状态时,满足所有的子状态 通常,AND的子状态会进一步嵌套为OR的子状态 可以通过状态嵌套的方式简化图表 一个组合状态可以包含一个或多个状态 组合状态可以实现从不同抽象层次去体现状态图 employed employed probationary probationary full full after 6 months employed employed on payroll on payroll

2、 assigned assigned to project to project 组合状态的例子组合状态的例子 2 idle idle connected connected ringing ringing dial dial tone tone busy busy on hook on hook on hook on hook off hook Dial callee busy Dial callee idle Callee accepts Callee disconnects Off-hook Off-hook idle idle connected connected ringing r

3、inging dial dial tone tone busy busy on hook off hook Dial callee busy Dial callee idle Callee accepts Callee disconnects 3 adultsinglecoupledchildworking ageseniorunmarriedmarrieddivorcedwidowedseparateddeceased组合状态的例子组合状态的例子 组合状态的状态迁移组合状态的状态迁移 指向组合状态边界的状态迁移等价于指向该组合状态初态的迁移 所有属于该组合状态的入口条件将被执行 从组合状态边

4、界转出的迁移等价于从该组合状态的终态发出迁移 所有出口条件均将被执行 迁移可直接指向组合状态的子状态 4 练习练习:在图中增加一个新的状态和相关的状态迁移在图中增加一个新的状态和相关的状态迁移,表示在物品投递之前的任何环节都可以取消订单表示在物品投递之前的任何环节都可以取消订单 5 OrderOrder CheckingChecking do:do:checkcheck item item Start Start getget nextnext item item NotNot allall itemsitems checkedchecked DispatchingDispatching do

5、:do:initiateinitiate delivery delivery AllAll itemsitems checkedchecked&allall itemsitems availableavailable WaitingWaiting Item Item ReceivedReceived some some itemsitems notnot in stock in stock AllAll itemsitems checkedchecked&some some itemsitems notnot in stock in stock DeliveredDelivered /getg

6、et firstfirst item item Item Item ReceivedReceived allall itemsitems availableavailable DeliveredDelivered 练习练习:组合状态组合状态 参考答案参考答案 6 Cancelled Delivered Superstate name Active cancellation OrderOrder CheckingChecking do:do:checkcheck item item Start Start getget nextnext item item NotNot allall items

7、items checkedchecked DispatchingDispatching do:do:initiateinitiate delivery delivery AllAll itemsitems checkedchecked&allall itemsitems availableavailable WaitingWaiting Item Item ReceivedReceived some some itemsitems notnot in stock in stock AllAll itemsitems checkedchecked&some some itemsitems not

8、not in stock in stock/getget firstfirst item item Item Item ReceivedReceived allall itemsitems availableavailable DeliveredDelivered UMLUML状态图中的历史状态状态图中的历史状态(History(History State)State)历史状态是一种伪状态。当激活这个状态时,会保存从组合状态中退出时所处的子状态,用H表示 当再次进入组合状态时,可直接进入到这个子状态,而不是再次从组合状态的初态开始。7 H和H*的区别:H只记住最外层的组合状态的历史。H*可记住

9、任何深度的组合状态的历史。例:历史状态的例子。8 例例:课程注册 课程注册 9 状态图的工具支持 状态图的工具支持 正向工程:根据状态图生成代码。例:所生成的代码示例:10 class MessageParser public boolean put(char c)switch(state)case Waiting:if(c=)state=GettingBody;else token.append(c);break;case GettingBody:if(c=;)state=Waiting;return true;else body.append(c);return false;public

10、StringBuffer getToken()return token;public StringBuffer getBody()return body;private final static int Waiting=0;private final static int GettingToken=1;private final static int GettingBody=2;private int state=Waiting;private StringBuffer token,body;状态图与其他状态图与其他UMLUML图的关系图的关系 状态图中的事件为顺序图/交互图中该对象的输入消息

11、 状态图应针对类图中具有重要行为的类进行建模 每个事件、动作对应于相应类中的一个具体操作 状态图中每个输出消息对应于其他类的一个操作 状态图中的操作定义等价于类图中的操作定义 11 OrderOrder CheckingChecking do:do:checkcheck item item Start Start getget nextnext item item NotNot allall itemsitems checkedchecked DispatchingDispatching do:do:initiateinitiate delivery delivery AllAll items

12、items checkedchecked&allall itemsitems availableavailable WaitingWaiting Item Item ReceivedReceived some some itemsitems notnot in stock in stock AllAll itemsitems checkedchecked&some some itemsitems notnot in stock in stock DeliveredDelivered /getget firstfirst item item Item Item ReceivedReceived

13、allall itemsitems availableavailable DeliveredDelivered 状态图建模风格 状态图建模风格 建模风格1:把初态放置在左上角;把终态放置在右下角 建模风格2:用过去式命名转移事件 建模风格3:警戒条件不要重叠 建模风格4:不要把警戒条件置于初始转移上 12 状态图的检查表状态图的检查表 一致性检查 状态图中所有的事件应该是 类图中本对象类的方法 状态图中所有的动作应该是 类图中其他对象类的方法 绘图风格 每个状态的命名应该是唯一的,意义明确的 只对行为复杂的状态使用组合状态建模 不要在一个图中包含太多细节 使用警戒条件时要特殊注意不要引入二义性 状态图应该具有确定性(除非特殊原因)13 下述情况不适宜使用状态图:当大部分的状态转移为“当这个状态完成时”有很多来自对象自身发出的触发事件 状态代表的信息与类中的属性赋值并不一致

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁