从10月1号开始重构学校机房收费系统,没想到这次重构,推翻,再重构……用了两周时间。
这次整体架构采用三层,并融入了一些设计模式。
下面介绍这次重构的过程:
一、从UML用例图开始
对于机房收费系统的需求已经很熟悉了,用例和角色都已经提取出来了,在这里遇到一个问题,就是,究竟是根据角色划分用例,还是根据功能划分用例?
按角色来画:更容易下一步建模,基本上一个用例对应一个UI层的一个界面,而且一个用例对应一个业务逻辑。但在机房收费系统中,不利于对系统的宏观把控
按功能模块来画:使整个系统看起来更加直观,更容易宏观把握整个系统的功能需求。
但对于机房收费系统,显然不利于下一步建模,抽象类的时候很容易漏掉方法。
两者各有优缺点,在不同的系统中会有不同的体现。在机房收费系统中,我更侧重按角色画用例图。本着只要能说明需求就可以的原则,把两个都画了,越完善越好嘛。
1、按角色划分:
系统管理员:
操作员:
一般用户:
2、按功能划分:
财务信息管理
上下机信息管理
系统信息管理
学生信息管理