毕业论文管理系统项目概要设计说明书.docx
- 文档编号:10069896
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:80
- 大小:285.84KB
毕业论文管理系统项目概要设计说明书.docx
《毕业论文管理系统项目概要设计说明书.docx》由会员分享,可在线阅读,更多相关《毕业论文管理系统项目概要设计说明书.docx(80页珍藏版)》请在冰豆网上搜索。
毕业论文管理系统项目概要设计说明书
毕业论文管理系统
概要设计说明书
1引言
1。
1编写目的
此文档对毕业论文管理系统概要设计进行说明。
预期的读者有(甲方)的需求提供者、项目负责人、相关技术人员等,江西师范大学软件学院软件工作室Java项目小组(乙方)的项目组成员,包括项目经理、客户经理、分析设计开发测试等人员。
1.2背景
毕业论文管理系统是基于互联网的应用软件。
鉴于以往学生毕业论文采用人工管理方式,工作量大且效率地下,而且毕业生毕业时大多离校,给导师指导学生毕业设计,学生提交论文等工作带来诸多不便。
希望开发一个系统来对课题,以及毕业论文选题进行规范化管理,从而方便导师对学生的论文写作进行指导和控制,方便学院管理毕业生论文。
利用计算机来管理毕业论文设计管理活动实现制度化,规范化,管理化。
1.3定义
无
1.4参考资料
毕业论文管理系统需求规格说明书
毕业论文管理系统详细设计说明书
2总体设计
2。
1需求规定
毕业论文管理系统按模块可以分成四部分,一是管理员系统管理模块,二是选题管理,三是导师的课题管理,四是毕业设计过程控制管理,而它们各自又有具体的小模块组成。
具体需求见毕业论文管理系统需求规格说明书.
2.2运行环境
Ø操作系统:
Win2003/XP,Linux
ØWEB服务器:
Tomcat5。
5以上
Ø数据库服务器:
MySQL5。
0以上,能够处理数据并发访问,访问回馈时间短。
2。
3基本设计概念
1.系统整体方案
(1)毕业论文管理系统主要特性
我们从以下五个方面确定目标系统特性如下:
●用户界面的复杂度:
数据的静态显示/可定制视图(customizableview)
●用户界面的部署约束:
基于独立的桌面电脑或专用工作站的浏览器
●用户的数量和类型:
组织内的日常使用者,总共几百人
●系统接口类型:
通过HTTP协议提供服务,未来可以使用SOAP的SOA技术
●性能:
主要是独立的数据更新,有少量并发处理
从上述特性我们可以判断毕业论文管理系统属于中大型项目,因此我们使用基于Struts—Spring-Hibernate框架的分层架构设计方案。
(2)架构分层
毕业论文管理系统项目架构设计中,我们使用分层模式.具体地说,我们将毕业论文管理系统应用在职责上分成3层:
表示层(PresentationLayer)、持久层(PersistenceLayer)和业务层(BusinessLayser)。
每个层在功能上都应该是十分明确的,而不应该与其他层混合。
每个层要相互独立,通过一个通信接口而相互联系。
(3)模式和框架使用:
在分层设计基础上,我们将使用设计模式和框架,这些是可以重用的资产。
1)MVC模式
MVC模式就是一种很常见的设计模式.所谓的MVC模式,即模型—视图—控制器(model-view—-controller)模式。
其结构图如下:
View
Model
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;而持久层则用Hibernate。
如图1—1所示。
表示层
业务层
持久层
图1—1Struts-Spring-Hibernate架构
1表示层
一般来讲,一个典型的Web应用的前端应该是表示层。
这里可以使用Struts框架。
下面是Struts所负责的:
•管理用户的请求,做出相应的响应
•提供一个流程控制器,委派调用业务逻辑和其他上层处理
•处理异常
•为显示提供一个数据模型
•用户界面的验证
以下内容,不该在Struts表示层的编码中经常出现,与表示层无关的。
•与数据库直接通信
•与应用程序相关联的业务逻辑及校验
•事务处理
在表示层引入这些代码,则会带来高耦合和难以维护的后果.
2持久层
典型的Web应用的后端是持久层。
开发者总是低估构建他们自己的持久层框架的挑战性。
系统内部的持久层不但需要大量调试时间,而且还经常因为缺少功能使之变得难以控制。
这是持久层的通病.幸运的是,有几个对象/关系映射(Object/RelationMapping,ORM)开源框架很好地解决了这类问题,尤其是Hibernate。
Hibernate为Java提供了持久化机制和查询服务,它还给已经熟悉SQL和JDBCAPI的Java开发者创造了一个学习桥梁,使他们学习起来很方便。
Hibernate的持久对象是基于POJO(PlainOldJavaObject)和Java集合(collections)的。
此外,使用Hibernate并不妨碍你正在使用的IDE(IntegratedDevelopmentEnviroment).
下面是Hibernate所负责的:
•如何查询对象的相关信息。
Hibernate是通过一个面向对象的查询语言(HQL)或者正则表达的API来完成查询的。
HQL非常类似于SQL,只是把SQL里的table和columns用Object和它的fields代替。
HQL语言容易理解且文档也做得很好。
HQL是一种面向对象查询的自然语言,很容易就能学会它.
•如何存储、更新、删除数据库记录。
•如Hibernate这类的高级ORM框架支持大部分主流数据库,并且支持父表/子表(Parent/child)关系、事务处理、继承和多态。
3业务层
一个典型Web应用的中间部分是业务层或者服务层。
从编码的视角来看,这层是最容易被忽视的一层.我们往往在用户界面层或持久层周围看到这些业务处理的代码,这其实是不正确的。
因为它会造成程序代码的高耦合,这样一来,随着时间推移,这些代码将很难维护。
幸好,针对这一问题有好几种框架(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
IAdminManageDAO/
AdminManageDAO
2。
导师管理
TeacherAction
ITeacherService
ITeacherDAO/
TeacherDAO
3学生管理
StudentAction
IStudentService
IStudentDAO/
StudentDAO
4权限控制
PermissionControlAction
IPermissionControlService
IPermissionControlDAO/
PermissionControlDAO
模块开放关闭管理
1模块开放管理
ModuleManageAction
IModuleManageService
IModuleManageDAO/
ModuleManageDAO
查看导师工作日志
1查看导师工作日志
TeacherLogAction
ITeacherLogService
ITeacherLogDAO/
TeacherLogDAO
课程信息统计
TopicAction
ITopicService
ITopicDAO/
TopicDAO
选课信息统计
TopicSelectAction
ITopicSelectService
ITopicSelectDAO/
TopicSelectDAO
课题管理模块
……
……
……
课题管理
TopicAction
ITopicServiceImpl/ITopiicService
TopicDAO/ITopiicDAO
……
……
……
……
选题管理模块
选题管理
TopicSelectAction
ITopicSelectServiceImpl/ITopicSelectService
ITopicSelectDAO/TopicSelectDAO
过程控制
一般用户浏览
……
……
……
2。
6人工处理过程
无
2。
7尚未解决的问题
无
3接口设计
3.1用户接口
用户接口以基于浏览器的图形用户界面(GraphicUserInterface,GUI)的方式提供,具体见页面导航图(静态页面设计)。
3。
2外部接口
本系统同与已有的工作室管理系统之间有数据交换.
3.3内部接口
一.系统管理
权限管理模块
BusinessService接口
DAO接口
1管理员管理
IAdminManageService
IAdminManageDAO
2。
导师管理
ITeacherManageService
ITeacherManageDAO
3学生管理
IStudentManageService
IStudentManageDAO
4权限控制
IPermissionControlService
IPermissionControlDAO
接口描述
1.IAdminManageService接口类提供以下方法:
(1)publicStringaddAdmin(Groupadmin,Teacherteacher);
目标:
添加管理员
参数类型说明
adminclass权限组管理员对象
teacherclass老师对象
主要流程描述:
超级管理员提交添加请求,在Action中调用该方法,传入权限组类中管理员组及要添加的老师对象,添加管理员记录
(2)publicListshow(Map 目标: 超级管理员查看管理员信息 参数类型说明 actorString角色 actor_idString角色编号 主要流程描述: 用户提交请求,在Action中调用该方法,传入一个Map,到数据库查找(调用IAdminManageDAO)获取相关选课记录。 (3)publicListshow_all(); 目标: 超级管理员查看所有管理员记录 参数类型说明 teacherclassTeacher类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,调用IAdminManageDAO执行. (4)publicvoidupdate(Teachetteacher); 目标: 更改记录 参数类型说明 teacherclassTeacher类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,传入Tecaher类的一个对象,调用IAdminManageDAO执行更新。 (5)publicvoiddelete(Teachetteacher); 目标: 删除记录 参数类型说明 teacherclassTeacher类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,传入Teacher类的一个对象,调用IAdminManageDAO执行删除。 2.ITeacherManageService接口类提供以下方法: (1)publicStringaddTeacher(Groupteach,Teacherteacher); 目标: 添加导师 参数类型说明 teachclass权限组管理员对象 teacherclass老师对象 主要流程描述: 超级管理员提交添加请求,在Action中调用该方法,传入权限组类中导师组及要添加的老师对象,添加导师记录 (2)publicListshow(Map〈Stringactor,Stringactor_id>); 目标: 超级管理员查看导师信息 参数类型说明 actorString角色 actor_idString角色编号 主要流程描述: 用户提交请求,在Action中调用该方法,传入一个Map,到数据库查找(调用ITeacherManageDAO)获取相关选课记录. (3)publicListshow_all(); 目标: 超级管理员查看所有导师记录 参数类型说明 teacherclassTeacher类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,调用TeacherManageDAO执行. (4)publicvoidupdate(Teachetteacher); 目标: 更改记录 参数类型说明 teacherclassTeacher类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,传入Teacher类的一个对象,调用ITeacherManageDAO执行更新. (5)publicvoiddelete(Teachetteacher); 目标: 删除记录 参数类型说明 teacherclassTeacher类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,传入Teacher类的一个对象,调用ITeacherManageDAO执行删除。 3.IStudentManageService接口类提供以下方法: (1)publicStringaddStudent(Groupstudy,Teacherstudent); 目标: 添加学生 参数类型说明 studyclass权限组管理员对象 studentclass老师对象 主要流程描述: 超级管理员提交添加请求,在Action中调用该方法,传入权限组类中学生组及要添加的学生对象,添加学生记录 (2)publicListshow(Map 目标: 超级管理员查看学生信息 参数类型说明 actorString角色 actor_idString角色编号 主要流程描述: 用户提交请求,在Action中调用该方法,传入一个Map,到数据库查找(调用IStudentManageDAO)获取相关选课记录. (3)publicListshow_all(); 目标: 超级管理员查看所有学生记录 参数类型说明 studentclassStudent类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,调用StudentManageDAO执行。 (4)publicvoidupdate(Studentstudent); 目标: 更改记录 参数类型说明 studentclassStudent类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,传入Student类的一个对象,调用IStudentManageDAO执行更新. (5)publicvoiddelete(Studentstudent); 目标: 删除记录 参数类型说明 studentclassStudent类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,传入Student类的一个对象,调用IStudentManageDAO执行删除。 4、IPermissionControlService接口类提供以下方法: (1)publicStringaddPermission(Permissionpermission); 目标: 添加学生 参数类型说明 permissionclass权限对象 主要流程描述: 超级管理员提交添加请求,在Action中调用该方法,传入权限类对象,添加权限记录 (2)publicListshow(Map〈Stringpermission,Stringpermission_id〉); 目标: 超级管理员查看导师信息 参数类型说明 permissionString权限 permission_idString权限编号 主要流程描述: 用户提交请求,在Action中调用该方法,传入一个Map,到数据库查找(调用IPermissionControlDAO)获取相关选课记录。 (3)publicListshow_all(); 目标: 超级管理员查看所有权限记录 参数类型说明 permissionclassPermission类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,调用PermissionControlDAO执行。 (4)publicvoidupdate(Permissionpermission); 目标: 更改记录 参数类型说明 permissionclassPermission类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,传入Permission类的一个对象,调用IPermissionControlDAO执行更新。 (5)publicvoiddelete(Permissionpermission); 目标: 删除记录 参数类型说明 permissionclassPermission类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,传入Permission类的一个对象,调用IPermissionControlDAO执行删除。 (6)publicStringaddGroup(Groupgroup); 目标: 添加权限组 参数类型说明 groupclass权限组对象 主要流程描述: 超级管理员提交添加请求,在Action中调用该方法,传入权限类对象,添加权限记录 (7)publicListshow(Map〈Stringgroup,Stringgroup_id〉); 目标: 超级管理员查看导师信息 参数类型说明 groupString权限组 group_idString权限组编号 主要流程描述: 用户提交请求,在Action中调用该方法,传入一个Map,到数据库查找(调用IGroupControlDAO)获取相关选课记录. (8)publicListshow_all(); 目标: 超级管理员查看所有权限记录 参数类型说明 groupclassGroup类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,调用GroupControlDAO执行。 (9)publicvoidupdate(Groupgroup); 目标: 更改记录 参数类型说明 groupclassGroup类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,传入Group类的一个对象,调用IPermissionControlDAO执行更新。 (10)publicvoiddelete(Groupgroup); 目标: 删除记录 参数类型说明 groupclassGroup类的对象 主要流程描述: 用户提交请求,在Action中调用该方法,传入Group类的一个对象,调用IPermissionControlDAO执行删除。 (11)publicStringaddPermissionColumn(PermissionColumnpermissioncol
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 管理 系统 项目 概要 设计 说明书