第六篇 章 对域中的类建模 研究生课程-MDA.pptVIP

第六篇 章 对域中的类建模 研究生课程-MDA.ppt

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

对域中的类建模 赵建华 南京大学计算机系 类图概览(1) 类图以类的形式定义关键抽象。 每个类都有属性和操作两类特性。 类之间有聚合和泛化关系。 类图可以被当作一组可验证的声明。 类图是一个稳定的定义。一个好的类图将在被开发系统的整个开发生命周期中保持稳定。 类图是一个整理好的术语表。 类图的生命周期 类图的初稿产生于活动分析的早期,通常是第三章中讨论的对象闪电战时期。 接下来的工作是给类添加更多的属性,并对关系的形式、基数和命名进行精化。 类的操作通常在分析阶段的后期被添加到类图中。 类的定义 一个类是对被研究的域的一个事物的集合的抽象,并满足: 集合中的所有事物——对象——有同样的特性,且 所有的对象遵守相同的规则和策略。 类描述 类图提供了相关内容的可视化表示 类通过最多一个状态机、零个或多个操作,以及零个或多个属性进行正式定义。 为了使模型容易被诸如客户和使用者的普通人接受,我们还要提供类的描述。 马铃薯图 马铃薯图提供了图形化描述类、类的对象、以及关联实例的非正式的方法。 关联 关联是对对象之间系统性地保持的关系的抽象 我们识别类之间的紧密绑定关联。 问一下自己“没有病人,病床还有意义码?”,当然没有。所以,也就没有多少动机去建立一个不知道有关病人的知识的Bed类。 每个关联从4个方面来描述: 1.角色短语 2.多重性 3.约束条件 4.描述 角色短语 关联中的每个类都有自己的视点,因此我们给每个关联赋予两个角色短语。 多重性 多重性表明了有多少个对象参与一个关联。有3种选择: 一对一 一对多 多对多 关联描述 。关联描述要说明谁来维护链接(如果链接是动态的)以及选择对象参与关联的原则。 关联类 泛化/特化的层次结构 抽象的本质是找出能够引起其它差异的差异。 引擎数目的不同并不使得模型有所不同。 然而,航空器有垂直起飞的能力表示它的行为与水平起飞的航空器不同。 子类层次 原有的hoursAttended属性适用于日间照管的门诊病人,而dnaCount属性只适用于咨询门诊的病人。为了解决这个需求要,我们需要进一步对OUT PATIENT类进行特化。 多重分类 允许一个类具有多个子类族的能力被称为多重分类 动态分类 差异不是关于抽象实体的,而是和该实体正在做的事情有关。 多重分类和动态分类的结合 对象标识 对象标识是一个或多个属性的集合,这些属性的值可以唯一地区分一个类中的各个对象。 为每个类指定对象标识有助于我们考虑如何识别一个对象。 对象标识有助于形式化域中的专业知识。 对象标识是分析的产品。但是,它们常被直接映射到实现中。 表示对象标识 UML类图的表示法不支持显式的对象标识, 所以习惯上用一个UML标记(tag)来表示它们 冗余属性 一个类永远没必要拥有一个其值可以从其它对象导出的属性。 但是有可能因为性能方面的考虑,可接受一些冗余。 一个值存放在另一个域中,通过桥操作来获取这个值会引起一些额外的开销。属性描述要说明为什么需要冗余,以及如何使冗余拷贝中的值是最新的; 超类的一个属性中保存对应子类对象的类名。 一个属性表示了它所在的主动类的状态。 规范化 规范化的主要目的是消除数据模型中的冗余。 一个规范化后的模型使得在系统生成阶段具有最大的作出设计决定的自由度。 我们建立了一个无冗余的PIM,并不是一定要求产生一个无冗余的PSI。 可以在PSI中加入冗余信息。 类似于数据库表的规范化。 改善模型效率 在一个xUML系统中,有两个方法可达到高效: 对所需行为的高效建模。这由建立PIM的分析员负责; 在目标环境下xUML表示方法的高效实现。这由包含PIM到PSM映射的软件体系结构域负责。 并不意味着要建立一个模型来利用实现环境中的一些特殊性以提高效率。 让它在xUML的抽象层次上提交好的性能。 属性可见性 其目的是限制对系统的类的无心的耦合。在UML中有四种可附加于属性的可见性, Public——任何外部的模型元素都能看到该属性,属性以‘+’作前缀; Protected——该模型元素的任何后裔都能看到该属性,属性以‘#’作前缀; Private——只有元素本身或内嵌元素才能看到该属性,属性以‘-’作前缀; Package——与给定属性在同一个包(或者嵌套其中的任意层次的子包)内声明的元素都能看到该类元素。属性以‘~’作前缀。 xUML不在属性上使用可见性装饰,而是让所有的属性都具有Public可见性。

文档评论(0)

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

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

1亿VIP精品文档

相关文档