毕业论文管理系统项目概要设计说明书Word文档格式.docx
《毕业论文管理系统项目概要设计说明书Word文档格式.docx》由会员分享,可在线阅读,更多相关《毕业论文管理系统项目概要设计说明书Word文档格式.docx(80页珍藏版)》请在冰豆网上搜索。
主要是独立的数据更新,有少量并发处理
从上述特性我们可以判断毕业论文管理系统属于中大型项目,因此我们使用基于Struts-Spring-Hibernate框架的分层架构设计方案。
(2)架构分层
毕业论文管理系统项目架构设计中,我们使用分层模式。
具体地说,我们将毕业论文管理系统应用在职责上分成3层:
表示层(PresentationLayer)、持久层(PersistenceLayer)和业务层(BusinessLayser)。
每个层在功能上都应该是十分明确的,而不应该与苴他层混合。
每个层要相互独立,通过一个通信接口而相互联系。
(3)模式和框架使用:
在分层设计基础上,我们将使用设计模式和框架,这些是可以重用的资产。
1)MVC模式
MVC模式就是一种很常见的设计模式。
所谓的MVC模式,即模型一视图一控制器(model—view--controller)模式。
其结构图如下:
图4-1MVC架构图
1、Model端
在MVC中,模型是执行某些任务的代码,而这部分代码并没有任何逻辑决泄用户端的表示方法。
Model只有纯粹的功能性接口,也就是一系列的公共方法,通过这些公共方法,便可以取得模型端的所有功能。
2、View端
在MVC模式里,一个Model可以有几个View端,而实际上多个View端是使用MVC的原始动机。
使用MVC模式可以允许多于一个的View端存在,并可以在需要的时候动态注册所需要的View.
3、Controller端
MVC模式的视图端是与MVC的控制器结合使用的。
当用户端与相应的视图发生交互时,用户可以通过视窗更新模型的状态,而这种更新是通过控制器端进行的。
控制器端通过调用模型端的方法更改其状态值。
与此同时,控制器端会通知所有注册了的视图刷新用户界而。
那么,使用MVC模式有哪些优点呢?
MVC通过以下三种方式消除与用户接口和而向对象的设计有关的绝大部分困难:
1、控制器通过一个状态机跟踪和处理而向操作的用户事件。
这允许控制器在必要时创建和破坏来自模型的对象,并且将而向操作的拓扑结构与而向对象的设讣隔离开来。
这个隔离有助于防止而向对象的设计走向歧途。
2、MVC将用户接口与而向对象的模型分开。
这允许同样的模型不用修改就可使用许多不同的界而显示方式。
除此之外,如果模型更新由控制器完成,那么界而就可以跨应用再使用。
3、MVC允许应用的用户接口进行大的变化而不影响模型。
每个用户接口的变化将只需要对控制器进行修改,但是控制器包含很少的实际行为,它是很容易修改的。
而向对象的设计人员在将一个可视化接口添加到一个而向对象的设计中时必须非常小心,因为可视化接口的面向操作的拓扑结构可以大大增加设计的复杂性。
MVC设计允许一个开发者将一个好的而向对象的设计•与用户接口隔离开来,允许在同样的模型中容易地使用多个接口,并且允许在实现阶段对接口做大的修改而不需要对相应的模型进行修改
2)框架
根据项目特点,我们使用三种开源框架:
表示层用Struts;
业务层我们用Spring:
而持久层则用Hibernateo如图1-1所示。
<
DemonMogiBusi2屏ObgG:
图1-1Struts-Spring-Hibernate架构
1表示层
一般来讲,一个典型的Web应用的前端应该是表示层。
这里可以使用Struts框架。
下而是Struts所负责的:
管理用户的请求,做岀相应的响应
提供一个流程控制器,委派调用业务逻辑和其他上层处理
处理异常
为显示提供一个数据模型
用户界而的验证
以下内容,不该在Struts表示层的编码中经常出现,与表示层无关的。
与数据库直接通信
与应用程序相关联的业务逻借及校验
事务处理
在表示层引入这些代码,则会带来髙耦合和难以维护的后果。
2持久层
典型的Web应用的后端是持久层。
开发者总是低估构建他们自己的持久层框架的挑战性。
系统内部的持久层不但需要大虽:
调试时间,而且还经常因为缺少功能使之变得难以控制。
这是持久层的通病。
幸运的是,有几个对象/关系映射(Object/RelationMapping,ORM)开源框架很好地解决了这类问题,尤英是HibernateoHibernate为Java提供了持久化机制和査询服务,它还给已经熟悉SQL和JDBCAPI的Java开发者创造了一个学习桥梁,使他们学习起来很方便。
Hibernate的持久对象是基于POJO(PlainOldJavaObject)和Java集合(collections)的。
此外,使用Hibernate并不妨碍你正在使用的IDE(IntegratedDevelopmentEnviroment)o
下面是Hibernate所负责的:
如何查询对象的相关信息。
Hibernate是通过一个而向对象的查询语言(HQL)或者正则表达的API来完成査询的。
HQL非常类似于SQL,只是把SQL里的table和columns用Object和它的fields代替。
HQL语言容易理解且文档也做得很好・HQL是一种而向对象査询的自然语言,很容易就能学会它。
如何存储、更新、删除数据库记录。
如Hibernate这类的高级0RM框架支持大部分主流数据库,并且支持父表/子表(Parent/child)关系、事务处理、继承和多态。
3业务层
一个典型Web应用的中间部分是业务层或者服务层。
从编码的视角来看,这层是最容易被忽视的一层。
我们往往在用户界而层或持久层周I羽看到这些业务处理的代码,这其实是不正确的。
因为它会造成程序代码的髙耦合,这样一来,随着时间推移,这些代码将很难维护。
幸好,针对这一问题有好几种框架(Framework)存在。
最受欢迎的两个框架是Spring和PicoContainer»
这些也被称为轻量级容器(microcontainer),它们能让你很好地把对象搭配起来。
这两个框架都着手于“依赖注入"
(dependencyinjection)(还有我们知道的'
控制反转’InversionofControl二IoC)这样的简单槪念。
这里我们将关注于Spring的依赖注入和面向方而编程。
另外,Spring把程序中所涉及到的包含业务逻辑和数据存取对象(DataAccessObject)的Objects例如transactionmanagementhandler(事务管理
控制)、ObjectFactoris(对象工厂)、serviceobjects(服务组件)都通过XML来配
置联系起来。
下面是业务层所负责的:
处理应用程序的业务逻辑和业务校验
管理事务
提供与其他层相互作用的接口管理业务层级别的对象的依赖在表示层和持久层之间增加了一个灵活的机制,使得他们不直接联系在一起通过揭示从表示层到业务层之间的上下文(Context)来得到业务逻辑
(businessservices)
管理程序的执行(从业务层到持久层)
2.UML视图
(1)Use-caseDiagram:
如图所示。
(2)class-Diagram:
如图所示©
2.4结构
1.一般用户浏览的内容管理模块:
首页显示及英他页面
2.系统管理模块:
a)登录
b)信息统计
c)确认供选课题(课题审核)
d)査看导师工作日志
e)权限管理
f)模块设置
3.课题管理:
a)课题上传
b)课题更改
c)课题删除
d)课题统计
4.选题管理:
a)课题选择
b)选课记录更改
5.过程控制:
a)阶段管理
b)过程评审
2.5功能需求与程序的关系
各项功能需求的实现同各块程序的分配关系如下所示:
程序1(Action)
程序2(BusinessService)
程序3(DAO)
系统管理
权限管理模块
1管理员管理
AdminManageAction
IAdminManageService
IAdminManageDA0/
AdminManageDAO
2.导师管理
TeacherAction
ITeacherService
ITeacherDAO/
TeacherDAO
3学生管理
StudentAction
IStudentService
IStudentDAO/StudentDAO
4权限控制
PermissionControlAc
tion
IPermissionContr
olService
IPermissionControlDAO/
PermissionControlDAO
模块开放关闭管理
1模块开放管理
ModuleManageAction
IModuleManageService
IModuleManageD
AO/
ModuleManageDA0
査看导师工作日志
1査看导师工作日志
TeacherLogAction
ITeacherLogServi
ce
ITeacherLogDAO
TeacherLogDAO
课程信息统计
TopicAction
ITopicService
ITopicDAO/
TopicDAO
选课信息统计
TopicSelectAction
ITopicSelectService
ITopicSelectDA0/
TopicSelectDAO
课题管理模块
课题管理
ITopicServicelmp
1/ITopiicService
TopicDAO/ITopiicDAO
选题管理模块
选题管理
ITopicSelectServicelmpl/ITopicSelectService
ITopicSelectDA
O/TopicSelectDAO
过程控制
一般用户浏览
2.6人工处理过程
2・7尚未解决的问题
3接口设计
3・1用户接口
用户接口以基于浏览器的图形用户界而(GraphicUserInterface,GUI)的方式提供,具体见页而导航图(静态页而设计)。
3.2外部接口
本系统同与已有的工作室管理系统之间有数据交换。
3・3内部接口
一.系统管理权限管理模块
BusinessService接口
DAO接口
IAdminNIanageService
IAdminManageDAO
ITeacherManageService
ITeacherManageDAO
IStudentManageService
IStudentManageDAO
IPermissionControlService
IPermissionContro
1DAO
接口描述
1.IAdminManageService接口类提供以卜方法:
(l)publicStringaddAdmin(Groupadmin,Teacherteacher);
目标:
添加管理员
参数类型说明
adminclass权限组管理员对象
teacherclass老师对象
主要流程描述:
超级管理员提交添加请求,在Action中调用该方法,传入权限组类中管理员组及要添加的老师对象,添加管理员记录
(2)publicListshow(Map<
Stringactor,Stringactor_id>
);
目标:
超级管理员查看管理员信息
参数
类型
说明
actor
String
角色
actor_id
角色编号
用户提交请求,
在Action
中调用该方法,传入一个Map,到数据库查找(调用
IAdminManageDAO)获取相关选课记录。
(3)publicListshow_all0:
超级管理员查看所有管理员记录
teacherclassTeacher类的对象
用户提交诘求,在Action中调用该方法,调用IAdminManageDAO执行°
(4)publicvoidupdate(Teachetteacher):
更改记录
用户提交请求,在Action中调用该方法,传入Tecaher类的一个对象,调用IAdminManageDAO执行更新。
(5)publicvoiddelete(Teachetteacher):
删除记录
用户提交谙求,在Action中调用该方法,传入Teacher类的一个对象,调用IAdminManageDAO执行删除。
2.ITeacherManageService接口类提供以卜方法:
(1)publicStringaddTeacher
(Groupteach,Teacherteacher);
权限组管理员对象
老师对象
添加导师参数类型
teachclass
teacherclass
超级管理员提交添加请求,
在Action中调用该方法,传入权限组类中导师组及要
添加的老师对象.添加导师记录
超级管理员査看导师信息
参数7
用户提交请求,
ITeacherManageDAO)
说明角色角色编号
中调用该方法,传入一个Map,到数据库查找(调用获取相关选课记录。
(3)publicListshow_all():
超级管理员査看所有导师记录参数teacher
class
Teacher类的对象
用戸提交请求,在Action中调用该方法,调用TeacherManageDAO执行。
用户提交请求,在Action中调用该方法,传入Teacher类的一个对象,调用
ITeacherManageDAO执行更新。
用户提交请求,在Action中调用该方法,传入Teacher类的一个对象,调用ITeacherManageDAO执彳亍删除。
3.
IStudentManageService接口类提供以卜方法:
添加学生
主要流程描述:
在Action中调用该方法,传入权限组类中学生组及要
添加的学生对象,添加学生记录
超级管理员查看学生信息
actoractor_id
类型说明
String角色
String角色编号
用户提交请求,在Action中涮用该方法,传入一个Map,到数据库查找(调用IStudentManageDAO)获取相关选课记录。
超级管理员查看所有学生记录
student
classStudent类的对象
用户提交请求,
在Action中调用该方法,调用StudentManageDAO执行。
(4)publicvoidupdate(Studentstudent):
studentclassStudent类的对象
用户提交请求,在Action中调用该方法,传入Student类的一个对象,调用IStudentManageDAO执行更新。
(5)publicvoiddelete(Studentstudent):
用户提交请求,在Action中调用该方法,传入Student类的一个对象,调用IStudentManageDAO执彳亍删除。
4、IPermissionControlService接口类提供以下方法:
(1)publicStringaddPermission(Permissionpermission);
permissionclass权限对象
超级管理员提交添加请求,在Action中调用该方法,传入权限类对象,添加权限记录
Stringpermission,Stringpermission_id>
超级管理员查看导师信息
permissionString权限
permission_idString权限编号
用户提交请求,在Action中调用该方法,传入一个Map,到数据库査找(调用IPermissionControlDAO)获取相关选课记录。
(3)publicListshow_all():
超级管理员查看所有权限记录
permissionclassPermission类的对象
用户提交请求,在Action中调用该方法,调用PermissionControlDAO执行。
用户提交请求,在Action中调用该方法,传入Permission类的一个对象,调用IPermissionControlDAO执行更新。
(5)publicvoiddelete(Permissionpermission):
permissionclassPermission类白勺对象
用户提交请求,在Action中调用该方法,传入Permission类的一个对象,调用IPermissionContro1DAO执行删除。
(6)publicStringaddGroup(Groupgroup);
添加权限组
groupclass权限组对象
(7)publicListshow(Map<
Stringgroup,Stringgroup_id>
用户提交请求,在Action中调用该方法,传入一个Map,到数据库查找(调用IGroup
ControlDAO)获取相关选课记录。
(8)publicListshow_all():
超级管理员查看所有权限记录参数类型说明
groupclassGroup类的对象
用户提交请求,在Action中调用该方法,调用GroupControlDAO执行。
(9)publicvoidupdate(Groupgroup):
用户提交请求,在Action中调用该方法,传入Group类的一个对象,调用
IPermissionContro1DAO执行更新。
(10)publicvoiddelete(Groupgroup):
删除记录参数类型
用户提交请求,在Action中调用该方法,传入Group类的一个对象,调用IPermissionContro1DA0执行删除。
(ll)publicStringaddPermissionColumn
(PermissionColumnpermissioncolumn);
permissioncolumn
权限分栏对象
超级管理员提交添加请求,在Action中调用该方法,传入权限分栏类对象,添加
权限分栏记录
(12)publicListshow(Map<
Stringpermissioncolumn,