1、广东海洋大学体育管理系统架构设计编号:GDOU-GMS-HLD版本 1.0作者: 吴键鸿、张磊、钟炜堂、马德泉 日期: 2014.11.20Email: 996267036 组号:审批: 日期: 变更记录日期 版本 变更说明 作者2014.11.20 1.0 创建 吴键鸿张磊钟炜堂马德泉1. 引言1.1 文档目的本文档定义软件系统的架构以及全局性的设计元素、算法。本文档将作为详细设计、数据库设计的依据。1.2 读者软件设计工程师、软件编码工程师、软件测试工程师。2. 技术选择采用 J2EE,即客户端页面为 JSP,服务器端业务逻辑采用 Java 语言实现,实体类为 JavaBean,Web
2、服务器采用 tomcat6.0。3. 逻辑分层结构图 1 系统架构模型示意图表示层:采用 Java Web 开发技术。控制层:采用 Struts 的 Action 组件。业务层:封装业务逻辑(业务 JavaBean)。数据访问层:负责访问数据库,处理事务(数据访问 JavaBean)。数据库存储层:MySQL 数据库。表示层控制层业务层数据库数据访问层4. 设计元素的映射1、每个页面映射到一个 JSP 页面。2、每个控制类映射到两个类,一个是表现控制层的 Action;另一个是业务层的业务接口实现类。业务类的接口与上层的 Action 通信。 Action 位于表现层与控制层之间,业务层位于业
3、务逻辑层。3、总体分为两个部分管理员部分和用户部分。4、每个模块对应一个 Action 入口,即每个模块对应一个 Servlet。5、Servlet 根据具体的 action 动作调用对应的 Service 组件,完成对应的 action动作。6、Service 组件根据具体的方法调用对应的 Dao 组件对应的方法。7、每个 Dao 组件对应一个数据库表的操作。8、每个数据库表对应一个 Model 实体类,即 Javabean,数据库表字段与Model 实体类中的私有属性一一对应。根据以上映射原则,将鲁棒性分析中的分析类映射为架构中的各个类,如下表所注:灰色底部分为鲁棒性分析中的分析类表4.2
4、 人员管理模块模块名分析类名称 分析类类型 映射到架构上的设计类名称 设计类类型GMS-AM-1 边界类 GMS-AM-1.jsp JSP页面GMS-AM-2 边界类 GMS-AM-2.jsp JSP页面GMS-AM-3 边界类 GMS-AM-3.jsp JSP页面GMS-AM-4 边界类 GMS-AM-4.jsp JSP页面GMS-AM-5 边界类 GMS-AM-5.jsp JSP页面GMS-AM-6 边界类 GMS-AM-6.jsp JSP页面GMS-AM-7 边界类 GMS-AM-7.jsp JSP页面主页面 边界类 index.jsp JSP页面异常页面 边界类 exception.j
5、sp JSP页面addAdminAction.java ActionaddAdmin 控制类(添加管理员) AMService.java中的方法:addAdmin()业务接口:AMServicedelAdminAction.java ActiondelAdmin 控制类(删除管理员) AMService.java中的方法:delAdmin()业务接口:AMServicequeryAdminAction.java ActionqueryAdmin 控制类(查询管理员) AMService.java中的方法:queryAdmin()业务接口:AMServicealtAdminAction.java
6、 ActionaltAdmin 控制类(修改管理员) AMService.java中的方法:altAdmin()业务接口:AMServicealterPsdAction.java ActionalterPsd 控制类(修改密码) AMService.java中的方法:alterPsd()业务接口:AMServiceloginAction.java Actionlogin 控制类(用户登录) AMService.java中的方法:login()业务接口:AMServiceregisterAction.java Actionregister 控制类(学生用户注册) AMService.java中的
7、方法:register()业务接口:AMServiceAMServiceImp.java 业务接口的实现类AMDao.java DAO组件Administrator 实体类Admin.java PO值对象AMDao.java ActionStudent 实体类Student.javaAMDao.java ZzjgService人员管理模块Teacher 实体类Teacher.javaPositionVO.java VO值对象Connection.java 连接数据库4.3 场地使用管理模块模块名分析类名称 分析类类型 映射到架构上的设计类名称 设计类类型GMS-CDGL-1 边界类 GMS-C
8、DGL-1.jsp JSP页面GMS-CDGL-2 边界类 GMS-CDGL-2.jsp JSP页面GMS-CDGL-3 边界类 GMS-CDGL-3.jsp JSP页面GMS-CDGL-4 边界类 GMS-CDGL-4.jsp JSP页面GMS-CDGL-5 边界类 GMS-CDGL-5.jsp JSP页面GMS-CDGL-6 边界类 GMS-CDGL-6.jsp JSP页面GMS-CDGL-7 边界类 GMS-CDGL-7.jsp JSP页面GMS-CDGL-8 边界类 GMS-CDGL-7.jsp JSP页面主页面 边界类 index.jsp JSP页面异常页面 边界类 exceptio
9、n.jsp JSP页面addGroundAction.java ActionaddGround 控制类(添加场地) CDGLService.java中的方法:addGround()业务接口:CDGLServicedelGroundAction.java ActiondelGround 控制类(删除场地) CDGLService.java中的方法:delGround()业务接口:CDGLServicereserveAction.java Actionreserve 控制类(预约场地) CDGLService.java中的方法:reserve()业务接口:CDGLServicecancelActi
10、on.java Actioncancel 控制类(场地预约退订) CDGLService.java中的方法:cancel()业务接口:CDGLServicealtReserveAction.java ActionaltReserve 控制类(场地预约修改) CDGLService.java中的方法:altReserve()业务接口:CDGLServiceblackAction.java Actionblack 控制类(加入黑名单) CDGLService.java中的方法:black()业务接口:CDGLServicepersistAction.java Actionpersist 控制类(场
11、地预留) CDGLService.java中的方法:persist()业务接口:CDGLServicegUseAction.java Action场地管理模块gUse 控制类(场地使用) CDGLService 业务接口:.java中的方法:gUse() CDGLServicequeGroundAction.java ActionqueGround 控制类(查询场地) CDGLService.java中的方法:queGround()业务接口:CDGLServicesetAction.java Actionset 控制类(场地收费标准设置) CDGLService.java中的方法:set()业
12、务接口:CDGLServicewriteAction.java Actionwrite 控制类(编辑场馆公告) CDGLService.java中的方法:write()业务接口:CDGLServicequeNoticeAction.java ActionqueNotice 控制类(查看场馆公告) CDGLService.java中的方法:queNotice()业务接口:CDGLServiceCDGLServiceImp.java 业务接口的实现类CDGLDao.java DAO组件Notice 实体类Notice.java PO值对象CDGLDao.java DAO组件Ground 实体类Gr
13、ound.java PO值对象CDGLDao.java DAO组件GroundUse 实体类GroundUse.java PO值对象Notice.java VO值对象Ground.java VO值对象GroundUse.java VO值对象Connection.java 连接数据库其它类公共类;样式文件;JS文件;配置文件;等等4.4 赛事管理模块模块名分析类名称 分析类类型 映射到架构上的设计类名称 设计类类型GYM-SSGL-1 边界类 GMS-SSGL-1.jsp JSP页面GYM-SSGL-2 边界类 GMS-SSGL-2.jsp JSP页面GYM-SSGL-3 边界类 GMS-SSG
14、L-3.jsp JSP页面GYM-SSGL-4 边界类 GMS-SSGL-4.jsp JSP页面GYM-SSGL-5 边界类 GMS-SSGL-5.jsp JSP页面赛事管理模块 GYM-SSGL-6 边界类 GMS-SSGL-6.jsp JSP页面主页面 边界类 index.jsp JSP页面异常页面 边界类 exception.jsp JSP页面newTounamenAction.java ActionnewTounamentControl控制类(新建赛事) SSGLService.java中的方法:newTounamen() 业务接口:SSGLServicedeleteTounament
15、 ActiondeleteTounamentControl控制类(删除赛事) SSGLService.java中的方法:deleteTounament() 业务接口:SSGLServiceupdateTounamenAction.java ActionupdateTounamentControl控制类(更新赛事) SSGLService.java中的方法:updateTounamen() 业务接口:SSGLServicequeryTounamentAction.java ActionqueryTounamentControl控制类(查询赛事) SSGLService.java中的方法:quer
16、yTounament() 业务接口:SSGLServicearrangeGroundAction.java ActionarrangeGroundControl控制类(安排比赛场地) SSGLService.java中的方法:arrangeGround() 业务接口:SSGLServicearrangeRefAction.java ActionarrangeRefControl控制类(安排裁判) SSGLService.java中的方法:arrangeRef() 业务接口:SSGLServiceSSGLDao.java DAO组件Tounament 实体类Tounament.java PO值对
17、象SSGLDao.java DAO组件Ground 实体类Ground.java PO值对象SSGLDao.java DAO组件Ref 实体类Ref.java PO值对象SSGLServiceImp.java 业务接口的实现类Notice.java VO值对象Ground.java VO值对象GroundUse.java VO值对象Connection.java 连接数据库其它类公共类;样式文件;JS文件;配置文件;等等4.5 器材管理模块模块分析类名称 分析类类型 映射到架构上的设计类名称 设计类类型名GMS-ZZGL-1 边界类 GMS-ZZGL-1.jsp JSP页面GMS-ZZGL-2
18、 边界类 GMS-ZZGL-2.jsp JSP页面GMS-ZZGL-3 边界类 GMS-ZZGL-3.jsp JSP页面GMS-ZZGL-4 边界类 GMS-ZZGL-4.jsp JSP页面GMS-ZZGL-5 边界类 GMS-ZZGL-5.jsp JSP页面GMS-ZZGL-6 边界类 GMS-ZZGL-6.jsp JSP页面主页面 边界类 index.jsp JSP页面异常页面 边界类 exception.jsp JSP页面Action.java ActionnewequipmentControl控制类(新增器材) Service.java中的方法:()业务接口:ZZGLServiceAc
19、tion.java ActiondeleteequipmentControl控制类(删除器材) Service.java中的方法:()业务接口:ZZGLServiceAction.java ActionupdateequipmentControl控制类(更新器材) Service.java中的方法:()业务接口:ZZGLServiceAction.java ActionqueryequipmentControl控制类(查询器材信息) Service.java中的方法:()业务接口:ZZGLServiceAction.java ActionborrowequipmentControl控制类(租借
20、器材) Service.java中的方法:()业务接口:ZZGLServiceAction.java ActionreturnequipmentControl控制类(归还器材) Service.java中的方法:()业务接口:ZZGLServiceAction.java ActionqueryequipmentControl控制类(查询器材租借信息) Service.java中的方法:() 业务接口:ZZGLServiceZZGLServiceImp.java 业务接口的实现类ZZGLDao.java DAO组件equipment 实体类equipment.java PO值对象ZZGLDao.
21、java DAO组件Student 实体类Student.java PO值对象equipment.java VO值对象Student.java VO值对象Connection.java 连接数据库器材管理模块其它类公共类;样式文件;JS文件;配置文件;4.6 财务管理模块模块名 分析类名称 分析类类型 映射到架构上的设计类名称 设计类类型GYM-CWGL-1 边界类 GMS-ZZGL-1.jsp JSP页面GYM-CWGL-2 边界类 GMS-ZZGL-2.jsp JSP页面主页面 边界类 index.jsp JSP页面异常页面 边界类 Exception.jsp JSP页面addTableA
22、ction.java ActionaddTableControl 控制类(添加报表) Service.java中的方法:addTable()业务接口:ZZGLServiceoutPutAction.java ActionoutPutControl 控制类(删除报表) Service.java中的方法:outPut()业务接口:ZZGLServicequeryTableAction.java ActionqueryTableControl 控制类(查询报表) Service.java中的方法:queryTable()业务接口:ZZGLServiceCWGLDao.java DAO组件Table
23、实体类Table.java PO值对象CWGLServiceImp.java 业务接口的实现类Table.java VO值对象Connection.java 连接数据库金额报表管理模块其它类公共类;样式文件;JS文件;配置文件;5包结构设计规划包的结构可以按横向绘画或按纵向规划。横向:以层为考虑,每层键一个包,包内建不同组件的子包。纵向:以模块为考虑,每模块建一个包,包内建各层的子包。本系统是横向规划,每层建一些包:(1)页面包:存放模块的页面;可配合 css包、JS 包等,分别存放页面样式文件和 JavaScript代码文件。(2)Action 包:存放模块的所有 Action,每个模块一个
24、 Action。(3)业务逻辑包:存放模块的业务接口和业务实现类。(4)数据访问包:存放 DAO接口和 DAO实现类。(5)公共组件包:存放一些公共组件,如:utils。(6)模型包:存放实体模型javabean。5.1“人员管理”模块的包设计1、页面包名称:“jsp.AM”;2、css 包名称:“css.AM”;3、js 包名称;“js.AM”;4、Action 包名称:“action.AM”,其中有本模块的所有 Action类;5、VO 包名称:“VO. AM”,其中有类“AdminVO”和“UserVO”;6、业务逻辑包名称:“service.AM”,其中又有接口“AMService”和
25、实现类“AMServiceImp”7、数据访问包:“dao.AM” ,其中有 DAO类“AMDao”8、PO 包名称:“PO.AM”,其中有 PO类“Admin”;9、JDBC 包名称:“JDBC”,其中有链接数据库类“Connection”10、公共包名称:“util.AM”。5.1.2 总包图jsp.AM cs.AM js.AMaction.AM VO. yhglservice.AM util.AMdao.AM PO.AM JDBC界面层: jsp.AM cs.AM js.AM页面控制层: action.AMVO.AM-+adAdminActio+queryAdinActio+altAdm
26、inActio+alterPsdActio+loginActio+registerActio -+AdminVO+UserV数据访问层:5.2“场地管理”模块的包设计1、页面包名称:“jsp.CDGL”;2、css 包名称:“css.CDGL”;3、js 包名称;“js.CDGL”;4、Action 包名称:“action.CDGL”,其中有本模块的所有 Action类;5、VO 包名称:“VO.CDGL”,其中有类“GroundVO”,“GroundUseVO”和“NoticeVO”;6、业务逻辑包名称:“ service.CDGL”,其中又有接口“CDGLService”和实现类“CDGL
27、ServiceImp”7、数据访问包:“dao.CDGL” ,其中有 DAO类“cdglDao”8、PO 包名称:“PO.CDGL”,其中有 PO类“Ground”;9、JDBC 包名称:“JDBC”,其中有链接数据库类“Connection”10、公共包名称:“util.CDGL”。5.2.2 总包图jsp.CDGL cs.CDGL js.CDGLaction.CDGL VO. CDGLservice.CDGL util.CDGLdao.CDGL PO.CDGL JDBC界面层:jsp.CDGL cs.CDGL js.CDGL界面控制层: action.CDGLVO.CDGL-+ adGro
28、undAction+ delroundction+ reserveAction+ cancelction+ altReserveAction+ gUseAction+ queGroundAction+ setAction -+AdminVO+Ground+roundYse5.3“赛事管理”模块的包设计1、页面包名称:“jsp.ssgl”;2、css 包名称:“css.ssgl”;3、js 包名称;“js.ssgl”;4、Action 包名称:“ action.ssgl”,其中有本模块的所有 Action类;5、VO 包名称:“VO.ssgl”,其中有类“GroundVO”和“NoticeVO”
29、;6、业务逻辑包名称:“ service.ssgl”,其中又有接口“ssglService”和实现类“ssglServiceImp”7、数据访问包:“ dao. ssgl” ,其中有 DAO类“ssglDao”8、PO 包名称:“PO. ssgl”,其中有 PO类“Ground”;9、JDBC 包名称:“JDBC”,其中有链接数据库类“Connection”10、公共包名称:“util.ssgl”。5.3.1 总包图jsp.sgl cs.sgl js.sglaction.sgl VO. sglservice.sgl util.sgldao.sgl PO.sgl JDBC界面层: jsp.sgl cs.sgl js.sgl5.7 脚本语言在 JSP 中采用 JavaScript 脚本语言,验证表单数据的完整性,有效性。如“新建岗位”用例中的岗位信息是否完整,是否符合数据字典和规则。验证用户“修改密码”用例的两次新密码输入是否相等。其它一些需要在页面进行的处理逻辑。