- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VisualModelingandtheUML.ppt
UML及软件建模 第七章 状态图 2、在状态图中增加细节 转换可能具有一个保护条件,保护条件是一个布尔表达式。保护条件可以引用对象的属性值和触发事件的参数。当一个触发器事件被触发时,监护条件被赋值。如果布尔表达式的值为“真”,那么触发事件即,使转换有效。如果布尔表达式的值为“假”,则不会引起转换。保护条件只能在触发事件发生时被赋值一次。如果在转换发生后保护条件由原来的“假”变为“真”,则因为赋值太迟而不能触发转换。从一个状态引出的多个转换可以有同样的触发器事件,但是每个转换必须具有不同的保护条件。当其中一个保护条件满足时,触发器事件会引起相应的转换。通常,保护条件的设置要考虑到各种可能的情况以确保一个触发器事件的发生应该能够引起某些转换。如果有些情况没有考虑到,一个触发器事件没有引起任何转换,那么在状态机视图中要忽略这个事件。一个事件的发生只能同时引起一个转换(在一个控制线程中)。如果一个事件可能引起多个转换,那么其中只有一个转换有效。如果两个相互矛盾的转换同时有效,则无法确定到底发生了哪个转换。这两个转换随机地发生一个,或者由系统的实现细节决定究竟发生哪一个,但是对建模者来说,无法预料这种转换产生的后果。 保护条件示例图 5、子状态(substate) 某些状态存在于单个状态之中,因此它们被称为子状态。子状态以两种 形式出现:顺序子状态和并发子状态。 5.3、顺序子状态(sequential substate) 正如其名字一样,顺序子状态按照顺序一个接着一个出现。 重新分析前面提到的“工作”状态,可以有如下图: 5.4、并发子状态(concurrent substate) 子状态是在同时执行的状态是并发状态。 并发状态之间用虚线隔开。 6、几个状态图示例 初始状态是Available状态。在票开始对外出售前,一部分票是给预约者 预留的。当顾客预定票,被预定的票首先处于锁定状态,此时顾客仍有 是否确实要买这张票的选择权,故这张要票可能出售给顾客也可能因为 顾客不要这张票而解除锁定状态。如果超过了指定的期限顾客仍未做出 选择,此票被自动解除锁定状态。预约者也可以换其他演出的票,如果 这样的话,最初预约票也可以对外出售。 7、小结 系统中的对象改变自身的状态以响应事件和时间的流逝。UML状态图就能捕获这些状态变化状态图的焦点就是一个对象状态的变化。 状态用一个圆角矩形表示,状态转移用带箭头的实线表示,它指向目标状态。 状态图标中要写明状态名,并且可以包括状态变量和活动列表。 转移可能作为对触发器事件的响应而发生,并且需要一个活动;转移页可能因为状态中的活动完成而引起:这种方式发生的转移叫做无触发器转移;转移还可能起因于一个特定条件的满总而引起。 有时候状态可以包含子状态,子状态可能是顺序的,也可能是并发的。包含子状态的状态被称为组成状态 UML必须包括状态图,因为它能够帮助分析员、设计员和开发人员理解系统中各个对象的行为。开发人员尤其应该知道对象是如何体现各自的行为的,因为他们要用软件实施这些行为。只实施对象的静态特征是不够的:开发人员必须要让对象能够做一些事情。 Page * ? 主讲人 :李 唯clx7000@163.com 什么是状态图,如何使用它如何使用事件,动作和保护条件如何对子状态,历史状态和连接点建模 1、概述 状态视图通过对类对象的生存周期建立模型来描述对象随时间变化的动 态行为。每一个对象都被看作是通过对事件进行探测并做出回应来与外 界其他部分通信的独立的实体。 事件表示对象可以探测到的事物的一种运动变化—如接受到从一个对象 到另一个对象的调用或信号、某些值的改变或一个时间段的终结。任何 影响对象的事物都可以是事件,真实世界所发生的事物的模型通过从外 部世界到系统的信号来建造的。 状态是给定类的对象的一组属性值,这组属性值对所发生的事件具有相同 性质的反应。换而言之,处于相同状态的对象对同一事件具有同样方式 的反应,所以当给定状态下的多个对象当接受到相同事件时会执行相同 的动作,然而处于不同状态下的对象会通过不同的动作对同一事件做出 不同的反应。例如,当自动答复机处于处理事务状态或空闲状态时会对 取消键做出不同的反应。 状态用于描述类的行为,但它们也描述用例、协作和方法的动态行为。对这些对象方面而言,一个状态代表了执行中的一步。我们通常用类和对象来描述状态,但是它也可以被其他元素所直接应用。 状态描述了一个类对象生命期中的一个时间段。它可以用三种附加方式说明:在某些方面性质相似的一组对象值;一个对象等待一些事件发生时的一段时间;对象执行持续活动时的一段时间。虽然状态通常是匿名的并仅用处于该状态时对象进行的活动描述,但它也可以有名字。 在状态机中,一组状态由转换相连
文档评论(0)