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)具有以上性质的一个或多个类型的抽象

绘制要点:

  具体方法:http://blog.csdn.net/meteorlwj/article/details/2142705

         http://www.uml.org.cn/mxdx/200803173.asp

注意事项:

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

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

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

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

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

    1) 跟UI相关的名词不要

    2) 跟database相关的名词不要

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

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

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

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

  (3)没有名词,扣分

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

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

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

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

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

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

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

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

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

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

试题答案:

时间: 2024-11-15 21:24:39

UML期末复习题——2.4:Domain Model的相关文章

UML期末复习题——2.6:Package Diagram

第六题 包图 重要概念: 1.包图(package Diagram) 由若干个包以及包之间的关系组成.包是一种分组机制,其将一些相关的类集合为一个包,形成高内聚,低耦合的类集合,可以说,一个包相当于一个子系统. 2.简要介绍: 包图是一种维护和描述系统总体结构的模型的重要建模工具,通过对包中各个包以及包之间关系的描述,展现出系统的模块与模块之间的依赖关系.在面向对象软件开发的视角中,类显然是构建整个系统的基本构造块.但是对于庞大的应用系统而言,其包含的类将是成百上千,再加上其间“阡陌交纵”的关联

UML期末复习题——2.8:UML Design Class Diagram(DCD)

第八题:设计类图 重要概念: 1. 类图(Class Diagram): 类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础.类图主要是用来显示系统中的类.接口以及它们之间的静态结构和关系的一种静态模型.UML用类图表示类.接口及其关联. 2. 表示类元属性的方法: a.属性文本:如currentSale:Sale b.关联线表示法 c.两者兼有 属性文本表示法的完整格式:visibility name : type multiplicity = default {property-

UML期末复习题——2.9:UML Deployment Diagram

附加题:部署图 重要概念: 1. 部署图表示的是,如何将具体的软件制品(例如可执行文件)分配到计算节点(具有处理服务的某种事物)上.部署图表示了软件元素在物理架构上的部署,以及物理元素之间的通信(通常通过网络进行). 2. 部署图中最基本的元素是节点. 有两种节点: a.设备节点——具有处理和存储能力,可执行软件的物理(电子数字式)计算资源,例如典型的计算机或移动电源. •设备(<device>):没有处理能力的节点,至少是不关心其处理能力的节点.例如打印机.IC卡读写器,如果我们的系统不考虑

UML期末复习题

看了网上的各种UML图的相关资料,找到的都是差不多一样的对图的基本介绍.之前复习的时候也想对不同UML图单独进行复习总结,后来发现这样复习好像没什么用,不能理解每个图之间的关系,所以就没有进一步总结.现在打算针对一个具体的系统对其进行分析,依次画出考试中要求画出的9种图,以便更好的了解作图的规则和要求,以及图之间的关系. 这是考试的试题 这是试题中涉及到的系统简介

UML期末复习题——2.5:System Sequence Diagram &amp; Post-condition

第五题:系统顺序图 重要概念: 1.对象: 对象是特定行为与属性的集合. 对象的表示方式有三种: a.包括对象名和类名 b.只有类名. c.只有对象名 2.消息表示形式: 消息用于描述对象间交互的方式及内容. 消息分为四种:同步消息.异步消息.返回消息.自关联消息 a.同步消息:一个对象向另一个对象发出同步消息后,将处于阻塞状态,一直等到另一个对象的回应. 表示方式: b.异步消息:一个对象向另一个对象发出异步消息后,这个对象可以进行其他的操作,不需要等到另一个对象的响应. 表示方式: c.返回

UML期末复习题——2.7:UML Sequence Diagram

第七题:顺序图 重要概念: 1. 顺序图的主要介绍,在之前对第5题“系统顺序图”的解析讲解里已经很详细了,在这里只是对部分不全面的内容进行补充. 第五题:系统顺序图&后置条件 http://www.cnblogs.com/xiaolongbao-lzh/p/4609306.html 2. 实例的创建 UML中要求在创建实例是使用虚线表示.实心箭头表示常规的同步信息,开放箭头表示异步调用. 3. 对象生命线和对象的销毁 在某些情况下,需显式表示对象的销毁.例如当使用没有自动垃圾回收机制的C++时,

UML期末复习题——2.2:UML Activity Diagram.

第二题:活动图 重要概念: 活动图:一种有助于使工作流和业务过程可视化的图. 绘制要点: 具体方法见:http://www.cnblogs.com/xiaolongbao-lzh/p/4591953.html 注意事项: 1.一定要有起点终点,起点只有一个,终点可以有多个(活动终点.流程终点) 2.有箭头的线,如果有循环一定有归并节点,如果有条件的话,一定要写guard(写在guard里面会自动加上左右中括号[ ]的,guard在constraint选项卡里面). 3.作图时不要追求画的太详细,

UML期末复习题——2.1:Use Case Diagram

第一题:用例图 重要概念: 1.采用参与者和参与者目标的观点: 一组用例实例,每个实例是系统所执行的一系列活动,以此产生对特定参与者具有价值的客观结果. 短语“对特定参与者具有价值的客观结果”是细微而又重要的概念,它主要强调了需求分析的两个态度. · 关注系统的用户或参与者来编写需求,询问其目标和典型情况. · 关注理解参与者所考虑的有价值结果. 2.如何发现用例 具体步骤: (1)选择系统边界 (2)确定主要参与者 (3)确定每个主要参与者的目标 (4)定义满足用户目标的用例,根据其目标对用例

UML期末复习题——2.3:UML State Diagram

第三题  状态图 重要概念: 1.定义:事件.状态和转换: 事件:指一件值得注意的事情的发生. 状态:指对象在事件发生之间某时刻所处的情形. 转换:两个状态之间的关系.它表明当某事件发生时,对象从先前的状态转换到后来的状态. 2.状态无关和状态依赖对象 如果一个对象对某事件的响应总相同,则认为此对象对该事件状态无关(或非模态).例如,如果对象接收某个消息,响应该消息的方法总做相同的事情,则该对象对于该消息状态无关.如果,对所有事件,对象的响应总是相同的,则该对象是一个状态无关对象. 相反,状态依