请教一个领域设计的问题

07-12-28 wlcome998
您好,各位高手,小弟最近在设计一个关于水情监测信息的系统,这次使用了Hibernate作为持久层的框架,因没有领域设计的经验,故来请教各位,以下是我个人简述的情况和一些想法。

本系统主要用于发布和管理水信息以及操作预案,其中该系统分两部分,第一部分是通过在河边各监测站的测点采集数据,并统一的放入一数据库中(这部分不需要我负责),我的这块就是从这个数据库中读取数据放入另一个数据库中,进行处理和发布。

系统主要有几大块:

首先用户身份分为注册用户和管理员两级

监测站根据类型可以分为水质监测站、水位监测站、泵站、闸站等。。

用户可以查看的信息分为两块 实时信息和历史统计信息

此外可以查看的信息还有河段和断面

管理员可以选择和执行各种水情调度的预案(这个由专门的专业人士给出算法,本人将其作为业务逻辑已经实现)。

因没有领域设计的经验,有些不成熟的设计和想法,希望各位给予批评和指正

首先我将域对象分为:

User(用户)

测站 (具体的水质监测站、水位监测站、泵站、闸站等通过继承该站实现)

实时信息(具体化后分为实时水情、实时水位等也都通过继承)

历史信息(历史平均水位、历史水情等同样使用继承)

RIVER_INFO河段(测站和河段是一对多,一个测站可以测多个河段)

DM断面(断面和河段是一对多)

Program预案(管理员一次可以使用1种预案,这是一对一的关系)

请问下怎么设计成领域模型,把握不好粗细的粒度。。谢谢。

         

banq
2007-12-29 09:39
你这个系统主要是记录,没有对行为过程的跟踪tracing,所以相对比较简单,只要找出高聚合的静止关系就可以了。

找出核心模型,就是这个系统监测信息的主要主体。从你提供有限需求信息中还是不能了解:实时信息是否是发生某个测站中某个河段中某个断面的水情或水位信息?

如果是,那显然, 不同断面的水情信息就是两个不同的Object,就象在轿车上的玻璃和在房子上的玻璃分属不同的主体,玻璃和轿车是聚合关系。那么断面和水情也是紧密的聚合关系。

至于测站和河段以及断面是一种Compsite组合关系,可以采取类似展会 展区 展位或论坛 主题贴 帖子 这样分级树形结构来解决,测站和河段以及断面合并在一起决定水情的发生的地方或位置。

wlcome998
2008-01-01 00:30
首先谢谢彭老师,遵循DDD,应具体根据什么步骤?我的领域模型应设计成什么样子

应提取什么信息,抛弃什么?

我现在的想法是

首先 抽象出来的实体类

User(用户)Station(测站)Rinfo(实时信息) Dinfo(历史信息)

RIVER_INFO(河段)DM(断面)Program(预案)

关系:除了继承 关联 聚类 还有什么?都要显示在类图上吗??图会不会很复杂

1. 继承关系

Admin(管理员)和Register(注册用户)继承User(用户)

Sstation(闸站)、Pstation(泵站)、Qstation(水质站)、Lstation(水位站)继承Station(测站)

RS (实时闸位)、RS (实时闸位、RP(实时泵位)、RQ(实时水质)继承Rinfo(实时信息)

DP(历史的泵位信息)、DS(历史的闸位信息)、DQ(历史的水质信息)、DL(历史统计的水位)继承Dinfo(历史信息)

2 关联关系

Lstation(水位站)用于测RL(实时水位)和统计 DL(历史统计的水位)这里应该是一对多 1:N

Sstation(闸站)用于测RS (实时闸位) DS(历史的闸位信息)1:N

Pstation(泵站)用于测RP(实时泵位) DP(历史的泵位信息) 1:N

Qstation(水质站)用于测RQ(实时水质) DQ(历史的水质信息)1:N

Station(监测站)和StationAlarm(站报警)是1对1(这里是关联还是聚类)

StationAlarm(站报警)用于测DeviceAlarmConf(设备警报配置)

Staion(监测站)和Device(设备)是1对多 Device和Devicestatus(设备状态)状态是1对1

Staion(监测站)和RIVER_INFO河段(测站和河段是一对多,一个测站可以测多个河段)

RIVER_INFO(河段)和DM(断面)是1:N

Admin(管理员)和Program(预案)是1:1,管理员一次可以使用1种预案。

3 聚类?目前没看出来

[该贴被wlcome998于2008-01-01 22:00修改过]

wlcome998
2008-01-14 15:12
这几天抽空对模型梳理下,理清了很多关系,以下我简单的列出了一个实体间的关系图,请教下各位,根据改图怎么样表达出域模型的设计图,还需要哪些改动和变化,谢谢了。。

主要关系为:

1Admin(管理员)和Register(注册用户)继承User(用户)

2用户可以查看各种信息,信息分为实时水信息和历史统计水信息,信息主要有水质、水位、水流、雨量信息组成。

3 河道分有几段河段组成,一段河段上可能存在几个断面

4 水闸和泵站都存在于某一河段上。

5 水位测站用于监测实时信息和历史统计信息。

[该贴被wlcome998于2008-01-14 16:55修改过]


banq
2008-01-15 18:01
我比较习惯用四色原型和DDD分析,不习惯ER模型。我也建议你用四色图来表达你的需求和简单分析。

猜你喜欢
2Go 1 2 下一页