论坛项目
用例图
- 几个论坛版块(boards),每个版块像一个分类一样
- 指定的版块里面,用户可以通过创建新主题(Topic)开始讨论
- 其他用户可以参与讨论回复
类图
- Board:版块
- Topic:主题
- Post:帖子(译注:其实就是主题的回复或评论)
这是模型最基本的内容:
Board 模型
- name字段必须是唯一的,为了避免有重复的名称。
- description 用于说明这个版块是做什么用的。
Topic 模型
- subject 表示主题内容,
- last_update 用来定义话题的排序,
- starter 用来识别谁发起的话题,
- board 用于指定它属于哪个版块。
Post 模型
- message 用于存储回复的内容,
- created_at 在排序时候用(最先发表的帖子排最前面),
- updated_at 告诉用户是否更新了内容
User 模型
- username
- password
- is_superuser
一个topic 必须与一个(1)Board(这意味着它不能为空)相关联,但是 Board 下面可能与许多个或者0个 topic 关联 (0..*)。这意味着 Board 下面可能没有主题。(译注:一对多关系)
一个 Topic 至少有一个 Post(发起话题时,同时会发布一个帖子),并且它也可能有许多 Post(1..*)。一个Post 必须与一个并且只有一个Topic(1)相关联。
一个 Topic 必须有一个且只有一个 User 相关联,topic 的发起者是(1)。而一个用户可能有很多或者没有 topic(0..*)。
Post 必须有一个并且只有一个与之关联的用户,用户可以有许多或没有 Post(0..*)。Post 和 User之间的第二个关联是直接关联(参见该行最后的箭头),就是 Post 可以被用户修改(updated_by),updated_by 有可能是空(Post 没有被修改)
画这个类图的另一种方法是强调字段而不是模型之间的关系:
线框图(原型图)
版块:
主题:
“new topic” 页面:
主题页面显示了帖子和讨论:
如果用户点击回复按钮,将看到下面这个页面,并以倒序的方式(最新的在第一个)显示帖子列表: