练功场 - 概念设计 (0分)

Y

yysun

Unregistered / Unconfirmed
GUEST, unregistred user!
练功场是开发源码项目(open source project)的平台。
1、项目(project):用户申请在练功场建立的开发源码(open source)软件项目。
2、模块(module):为提供项目发展的服务模块,包括:项目新闻(News)、项目文档(Document)、
程序下载(Package)、需求调查(Survey)、 屏幕预览(Screenshot)、项目论坛(Forum)、错误列表(Bug)、
任务列表(Task)等等。
3、条目(item):模块中得具体条目,例如,一条新闻,一个程序发布包,一个屏幕截图等等。
这样,得到第一个 UML
step1.gif

 
再加上些细节:
4、用户(User):在不同的项目中担任不同的脚色(访客、开发者、负责人)和不同的权限。
5、分类(Category):项目的分类属性,例如(Java类、Delphi类等等)
得到第二个 UML:
step2.gif
 
细化条目(Item)。Item:是模块里的条目,由用户发布的,
- 可以带有附件。
- 可以具有回复,形成树状结构。
- 可以保存被修改的历史情况。
得到第三个 UML:
step3.gif

 
好噢!我来学习!
 
建议yysun用rose作把!我学的就是rose,您用java的那个我太不习惯了!
 
yysun
代码开始release了出来
建议大富翁练功场的连接可以先做上去
 
由此得到数据库结构:
http://www.richsearch.com/lgc/design-docs/lgc-mysql.sql
taozhiyu,
我现在用盗版不方便。是不是画出来的图不同?
刚刚买了本《Teach Yourself UML in 24 Hours》,基本上参照了哪本书里的规范。
 
不是不同。是软件的操作方式不同。不习惯。有时候想提点意见就需要说很多,好麻烦!而且
也不准确,还不如直接修改了之后互相看看!这样效果会很好。
 
图2:一个项目可以属于多个类别嘛?
 
Figure 2:
对于User,UserRole,UserPrivilege和Project的关系不是很理解。聚集的关系么?
可是UserRole和Project应该没有什么直接关系,应该是和User发生关系。

User,UserRole,UserPrivilege之间的关系如何?看不出来!
 
是的,一个项目可以属于多个类别。类别可以包含子类别。
类别可按照功能来分类,例如,web 类、图像类、QQ类 ......
也可以按照语言来分类,例如,Java 类、Delphi 类、C++ 类、ASP 类 ......
也可以按照协议来分类,例如,GPL 类、LGPL 类、Mozilla 类、apache 类 ......
项目的类别就是这些基本类别组合。
 
Figure 3:
对于Item,IteDetail,Attachment之间的关系不是很理解。
ItemDetail有必要单独分离出来嘛?我认为应该去掉ItemDetail.
Item直接和Attachment联系。Item直接和Reply联系
不知道YYSUN是如何考虑的?
 
我在rup2002里面没有找到has relationship的解释,而rose帮助里面说的不清楚。
yysun能否解释一下?
 
希望通过这个好好学习一下子!:〉
 
User 和 Project 的关系是多对多的关系,不互为 aggregation / composite
用户在不同的项目中担任不同的脚色(访客、开发者、负责人)
UserRole 是 User 和 Project 的 Association class
同理,User 和 Project 的 Module 的 关系是多对多的关系,
UserPrivilege 是 User 和 Module 的 Association class
 
ItemDetail 可以记录数据修改的历史情况,即版本更新情况。
比如,用户在论坛里发布贴子后做修改,我们可以记录下每次修改。
引申到源程序,就可以实现版本控制和 diff 功能了。
另外,这里的 UML 图被用来替代传统的 ER diagram 做概念设计,所以连 ERWin 都省了。
 
ER diagram 与 UML class diagram 的转换,可以看这篇文章。
http://www.dulcian.com/papers/ERD%20to%20UML%20Using%20ODD.htm
has 应该是 association 不是 relationship.
那些 has 和箭头,我改了一下。谢谢提醒。
 
看起来还不错。不知是否还有更多的需求需要表示
 
系统级的需求大致就这些了,具体到各个模块,还会有些细节的需求。所以称为概念设计。
目前概念设计基本完成,转入数据模型设计, 需要考虑这些细节。因此 sql script 已经到 0.65 版
http://www.richsearch.com/lgc/design-docs/lgc-mysql.sql
数据库完成后做的事情将会非常有意思:
我们会用一个工具把数据表转换成 JavaBean, Factory 和 Adapter。
思路在这里: http://www.richsearch.com/dfwlib/xsl4srcdoc.zip
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
868
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部