域模型

来源:百度文库 编辑:神马文学网 时间:2024/04/28 08:20:25

我们知道:一个软件从无到有需要经过如下几个阶段:分析、设计、编程、调试、部署和运行。

我们不能只用一个一个单独的类来表达客观世界,因为客观世界存在千丝万缕的各种关系,在计算机领域无疑我们使用类的关系来

表达映射这些关系。这里我们只探讨类在建模方法上的关系,而不是UML中类的通用关系。类在建模上主要有如下几个关系:

类与类关系经常是这样:一个类包含一个类(构造性structural),或者借助另外一个类达到某个功能(功能性),在对需求建模分析中,构造性的这种关系,也称为关联(Association)是我们关注重点,当然这种关系很显然表达的是一种静态的结构,比如电脑包含屏幕,他们之间的关系就是一种关联。

聚合(Aggregation)是一种表格式样的关联,表示一个类包含多项子类,这种关系是一种整体与部分的关系。一个汽车有四个轮子,四个轮子是汽车的部分。
    泛化(generalize)  概括,一般化,也就是泛化,用这两种方式可以表示领域对象的关系。
  组成(Composition)是一种更强烈的聚合关系,一个对象实际是由其子对象组成,子对象也唯一属于父对象。

继承也是类建模中经常用到的关系,继承可以将一些数据属性抽象到父类中,避免重复,如入库单和出库单有很多属性是差不多的,唯一不动的就是入库和出库的行为,那么我们可以抽象一个库单为父类,使用继承关系分别表达入库单和出库单。

时序图
  健壮性分析旨在发现对象,而详细设计则主要是关于分配行为:将确定的软件操作(函数、方法)分配给发现的一组对象。时序图是详细设计的核心,也是系统动态模型的核心。
 
 
ICONIX方式绘制时序图的步骤
  1。复制用例文本,粘贴到页面的左边。
  2。加入健壮性图中的实体对象。
  3。加入健壮性图中的边界对象和参与者。
  4。将方法分配给类。这时需要将健壮性图中的控制器转换为一组执行所需行为的方法和消息(有时候,控制器也可能转换为一个控制对象)。

 建立域模型的10个指导原则:

  1. 将注意力放在真实世界(问题域)中的实体上
  2. 用泛化和聚集关系来表示对象之间是怎么样联系在一起的
  3. 限制你画出你的域模型在12个小时内
  4. 抽象你的问题域中的类,不包含方法和属性
  5. 不要把你的域模型弄错成数据模型
  6. 不要把你的对象和数据表弄混淆了,你的数据表包含一系列东西的集合
  7. 把你的域模型中的对象当成为项目中的术语表
  8. 写用例文本前要初始化你的域模型,避免命名上的不明确。
  9. 不要期望你的最终的类图和域模型一致,但是它们应该很相似
  10. 不要把你的边界类放在你的域模型中,域模型中只包含问题域中的对象。