• UML期末复习题——2.4:Domain Model


    第四题:领域模型

     

    重要概念:

    1. 领域模型:是对领域内的概念类或现实世界中对象的可视化表示。领域模型也称为概念模型领域对象模型分析对象模型

    2. 应用UML表示法,领域模型被描述为一组没有定义操作的类图。它提供了概念透视图。它可以展示:

       1)领域类之间的关联
       2)概念类之间的关联
       3)概念类的属性
     领域模型是可视化字典,表示领域的重要抽象领域词汇领域的内容信息

    3. 如何找到概念类

       1)重用和修改现有的模型:这是首要、最佳且最简单的方法。
       2)使用分类列表
       3)通过识别名词短语寻找概念类

    4. 准则:属性和类的常见错误

     在创建领域模型时最常见的错误是,把应该是概念类的事物表示为属性。
     如果我们认为某概念类X不是现实世界中的数字或文本,那么X可能是概念类而不是属性

    5. 准则:何时需要描述类?

     在以下情况下需要增加描述类(例如,ProductDescription):
       1)需要有关商品或服务的描述,独立于任何商品或服务的现有实例
       2)删除其所有描述事物的实例后,导致信息丢失,而这些信息是需要维护的,但是被错误地与所删除的事物关联起来
       3)减少冗余或重复信息 

    6.  关联:

     关联是类之间的关系,表示有意义和值得关注的连接
     在UML中,关联被定义为“两个式多个类元之间的主义联系,涉及这些元实例之间的连接”

    7. 准则:为什么应该避免加入大量关联?

     我们要避免在领域模型中加入太多的关联。回顾离散数学的相关知识,可以知道,在具有N个节点的图中,节点间有(n*(n-1))/2个关联,这可能是个非常大的数值。连线太多会产生“视觉干扰”,使图变得混乱。所在要谨慎地增加关联线。

    8. 准则:在UML中如何对关联命名

     以“类名—动词短语—类名”的格式为关联命名,其中的动词短语构成了可读的和有意义的顺序
     例如,Sale Paid—by CashPayment 反面示例,应改为Sale Uses CashPayment
               Player Is—on Square 反面示例,应以为 Player Has Square
      关联名称应该使用首字母大写的形式。在UML中,类元应该首字母大写。以下是复合性关联名称的两种常见并且等价的合法格式:
                                     Records—current
                                     RecordsCurrent

    9. 应用UML:角色

      关联的每一端称为角色。角色具有如下可选项:
      1)多重性表达式
      2)名称
      3)导航

    10. 应用UML:多重性

      多重性定义了类A有多少个实例可以和类B的一个实例关联

    11. 应用UML:两个类之间的多重关联

      在UML类图中,两个类之间可能会有多重关联,这并不罕见。
     

    12. 属性:是对象的逻辑数据值

      准则:何时展示属性
      需求建议或暗示需要记住信息时,引入属性
    例如,在处理销售用例中的票据通常含有工期和时间、店名和地址以及收银员ID等
    因此,
          1)Sale需要dataTime属性
          2)Store需要name和address属性
          3)Cashier需要ID属性
    在UML中,属性的完整语法是:
          visibility name:type multiplicity=default{property—string}
      准则:什么样的属性类型是适当的
      十分常见的数据类型包括:Boolean、Date(or DataTime)、Number、Character、String(Text)和Time等
      准则:何时定义新的数据类型类
      下述情况下,在领域模型里,把最初被认为是数字或字符串的数据类型表示为新的数据类型类:
        1)由不同的小节组成
        2)具有与之相关的操作,例如解析或校验
        3)具有其他属性
        4)单位的数量
        5)具有以上性质的一个或多个类型的抽象
     
    绘制要点:
     
    注意事项:

      1.名词法:找一堆名词,然后把这堆名词之间的关系给建立起来

      2.名词里面有属性。要判断名词是不是概念类,是不是属性。

      3.考试的时候是针对一个用例来画领域模型,一定要看清楚是要对哪个用例建模,没有那么多时间对整个系统建模。

      (1)先找到所有名词,判断它是类还是属性

        找名词的原则(下面不要的名词标红):

        1) 跟UI相关的名词不要

        2) 跟database相关的名词不要

        3) 跟业务流程没有关系的名词不要,如技术相关的术语,如下面的workflow,list

        4) 任何计算出来的结果,不参与业务运算,不要,如果留下了这个会扣分

        5) 模糊的术语一定要过滤掉

      (2)如果出现动词,扣分

      (3)没有名词,扣分

      (4)多重性(关联的一对多,一对一等)没有,扣分

      (5)漏掉一两个类,不扣分

      6、 属性,假如每一个类有七八个属性,只写一两个典型的代表即可,考试没有那么多时间

      7、 领域模型的类不能有操作(也就是类的函数),如果写出来要扣分。

      8、 如果有描述类,一定要画出来。

      描述类是包含其他事物的信息的类。命名方式:被描述类名Description

      被描述的事物存在,并且描述独立于事物的实例

      比如酒店的每一个同类型的房间价格都是一样的,它并不随着房间号的变化而变化,所以把房间描述独立出来会比较好

         9、 没有描述类一定会扣分!

         整个画图的最重要步骤就是找出名词!

     
    试题答案:
  • 相关阅读:
    保护【大数据】应用的步骤和工具
    提高UI设计效率的4个技巧
    你学会UI设计了吗?
    Android 零散知识点整理
    PHP面试和PHP开发者都应掌握的10个问题
    MySQL 中如何存储 emoji ?
    想在网上保持匿名?教你用Linux如何实现!
    数据库入门之运行原始 SQL 查找
    PHP之取得当前时间函数方法
    【在线】使用在线软件来完成任务
  • 原文地址:https://www.cnblogs.com/xiaolongbao-lzh/p/4606618.html
Copyright © 2020-2023  润新知