UML中的几种其他图资料.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UML中的几种其他图资料

AABB() //该标记或者放在引起析构的箭头处 { A a; a.x(); } (2)表示法 把组合状态展开是为了表示它的内部状态机结构。除了(可选的)名称和内部转换分栏外,状态可以包含容纳嵌套图的附加分栏。通过在图形区域里显示嵌套状态机图,把状态展开,表示其不相交(顺序)的子状态。 顺序子状态示意图 并发子状态示意图 从带有并发组合状态内的任一状态离开的转移导致离开所有的其他并发区域。这种转移通常表示有错误发生或例外发生,从而迫使所有并发计算都被中断。 用虚线划分图形区域,每个区域都是一个并发的子状态。每个区域有一个可选的名称,但必须包含一张具有不相交状态的状态机图。用实线把整个状态的名称分栏和内部转换分栏与并发的子状态相分离。 5.3 .2 建立状态机图 对对象的状态变迁建模,应遵循如下策略: n?? 设置状态机的语境 考虑在特定语境中哪些对象与该对象交互,包括这个对象的类的所有的一般类和通过依赖或关联到达的所有类。这些邻居是动作的侯选目标或在监护条件中包含的侯选项。 n??? 建立初始状态和终止状态。 n?? 选定对象中的一组有意义的对对象状态有影响的属性,结合有关的事件和动作,对象可能在其中存在各段时间的条件,以决定该对象所在的稳定状态。 n?? 在对象的整个生命期中,决定稳定状态的有意义的偏序。从初态开始到终态,列出这个对象可能处于的顶层状态 n?? 决定这个对象可能响应的事件。可在对象的接口处发现事件,并给出一个唯一的名字。这些事件可能触发从一个合法状态到另一个合法状态的转换。 n 用被适当的事件触发的转换将这些状态连接起来,接着向这些转换中添加事件、监护条件或动作。对于内部转换也是如此。 n????识别各状态的进入或退出的动作 n 如果需要,从这个对象的高层状态开始,然后考虑各自的可能子状态,用子状态进行扩充。 n 检查 l? 检查在状态机中提到的所有事件是否和该对象所期望的事件相匹配。类似地,检查该对象的所期望的所有事件,是否都被状态机所处理。 l? ?检查在状态机中提到的所有动作是否被闭合对象的关系和操作所支持。 l???通过状态机,跟踪检查事件的顺序和它们的响应,尤其要努力地寻找那些未达到的状态和导致状态机不能走通的状态。 l 在重新安排状态机后,按所期望的顺序再一次检查,以确保你没有改变该对象的语义。 5.5 包图 对一个较为复杂的系统建模,要使用大量的模型元素,这时就必要把这些元素分组进行组织。这样把在语义上接近且倾向于一起变化的模型组织在一起,不但控制模型的复杂度,有助于理解,而且也有助于按组控制元素的可见性。 7.3.1 概念与表示法 包是对模型元素分组的机制。 使用包的最常见目的是把建模元素组织成为组,作为一个集合进行命名和处理。 包可以拥有类、接口、构件、节点、用况和图,甚至可以是其它包。拥有是一种组成关系,这意味着被拥有的元素被声明在包中。如果包被撤消了,元素也要被撤消。——包是一个命名空间,一个元素只能被一个包所拥有。 设计良好的包,把在语义上接近并倾向于一起变化的元素组织在一起。因此结构良好的包是松耦合、高内聚的,而且对其内容的访问具有严密的控制。 包的层次性 因为包中还可以有包,这样包之间可以有一个层次,且在组织结构上是一棵严格的树。 在实际使用中,最好要避免过深地嵌套包,一般两、三层即可。对过多的嵌套,要用“引入依赖”来组织包。 类名 类名 ······ 类名 ······ 包名 包名 包名 对包中元素的命名 一个包形成了一个命名空间,这意味着在一个包的语境中同一种元素的名字必须是唯一的。 例如,同一个包不能拥有两个名为Queue的类,但在P1包中可以有一个名为Queue的类,而在P2包中又有另一个(不同的)名为Queue的类。实际上,类P1::Queue和类P2::Queue是不同的类,这可以由各自的路径名区别开来。 如果一个包位于另一个包中,外层的包可作为里层包的前缀。例如,在包Vision中有一个名为Camera的类,而包Vision又在包Sensor中。类Camera的全名为Sensor::Vision::camera。 在一个包中不同种类的元素可以有相同的名字。这样,在同一个包中,对一个类命名为Timer,对一个构件也可以命名为Timer。为了不造成混乱,最好对一个包中所有元素也都唯一地命名。 如果包的内容没有被显示在大矩形中,那么

文档评论(0)

LOVE爱 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5341224344000002

1亿VIP精品文档

相关文档