详细设计文档.docx

上传人:b****8 文档编号:11420937 上传时间:2023-02-28 格式:DOCX 页数:30 大小:32.25KB
下载 相关 举报
详细设计文档.docx_第1页
第1页 / 共30页
详细设计文档.docx_第2页
第2页 / 共30页
详细设计文档.docx_第3页
第3页 / 共30页
详细设计文档.docx_第4页
第4页 / 共30页
详细设计文档.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

详细设计文档.docx

《详细设计文档.docx》由会员分享,可在线阅读,更多相关《详细设计文档.docx(30页珍藏版)》请在冰豆网上搜索。

详细设计文档.docx

详细设计文档

项目编号

20110925

文档编号

3

密级

内部

 

学生课程及成绩管理系统详细设计

 

V1.0

 

项目经理:

张宝磊

项目负责人:

段旺

 

评审日期:

2011年11月10日

 

目录

1.导言1

1.1目的1

1.2范围1

1.3缩写说明1

1.4术语定义1

1.5引用标准1

1.6参考文档2

2系统设计概述2

3.详细设计概述2

4.管理员模块的详细设计3

4.1视图层3

4.2控制层3

4.3模型层8

5.教师信息管理模块的详细设计11

5.1视图层11

5.2控制层11

5.3模型层11

6.学生信息管理模块的详细设计11

6.1视图层12

6.2控制层12

6.3模型层12

7.配置文件12

7.1Web.xml配置文件12

7.2strcut-config.Xml配置文件15

1.导言

1.1目的

该文档的目的是描述《学生课程及成绩管理系统》项目的详细设计,其主要内容包括:

●系统功能简介

●系统详细设计简述

●各个模块的三层划分

●最小模块组件的伪代码

本文档的预期的读者是:

●开发人员

●项目管理人员

●测试人员

1.2范围

该文档定义了系统的各个模块和模块接口,但未确定单元的具体实现,这部分内容将在实现中确定。

1.3缩写说明

HR

HumanResource(人力资源管理)的缩写

JSP

JavaServerPage(Java服务器页面)的缩写,一个脚本化的语言。

MVC

Model-View-Control(模式-视图-控制)的缩写,表示一个三层的结构体系。

1.4术语定义

Hibernate:

一个开放源代码的对象关系映射框架

Struct2:

一种较常用的mvc框架体系结构。

1.5引用标准

[1]《软件概要设计报告格式标准》V1.1,北京长江软件有限公司软件工程过程化组织

 

1.6参考文档

[1]《软件工程案例教程》,韩万江,机械工业出版社

[2]《JavaEE企业级架构开发技术与案例教程》,杨树林,机械工业出版社

2系统设计概述

根据《学生课程及成绩管理系统》的概要设计,本系统是由学生信息管理、教师信息管理、管理员管理组成。

根据页面流的设计,用户登录时选择相应的用户选项登陆,他们的关系如图C-1,以下将分小节对各个部分分别进行详细设计。

3.详细设计概述

由于本系统采用了基于structs2和Hibernate体系结构的设计,即采用MVC的三层设计模式,采用面向对象的Java语言以及JSP的脚本语言。

所以,基本采用面向对象的设计方法。

在整个的开发过程中,尽可能采用复用的原则,例如采用标签库,统一数据库的基本操作,统一结果显示等。

本文档的详细设计主要是按照Struct的MVC的三个层次分别编制视图层、控制层和模型层模块的伪代码。

为下一步的编码提供基础。

伪代码(Pseudocode)是一种算法描述语言。

使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言实现。

因此,伪代码必须结构清晰,代码简单,可读性好,并且类似自然语言。

4.管理员模块的详细设计

用管理员理模块主要实现用户的增删改查功能,可以增加或删除用户,编辑用户名,用户密码,修改用户权限等,用户管理的Struct视图层、控制层和模型层三个层次的模块如表C-1所示。

表C-1用户管理的三层模块

视图

控制器

模型

JSP组件

客户标签

login

admin

studentlist

addstudent

getEditstudent

teacherlist

addteacher

getEditteacher

courselist

initAddcourse

getEditcourse

classeslist

initAddcasses

getEditcasses

StructHtml标签

StructBean标签

StructLogic标签

用户自定义CV标签库的标签

loginAction

StudentAction

TeacherAction

CourseAction

CasssesAction

BaseAction

RegCourseAction

DBUtil

Adminbean

4.1视图层

视图层主要实现表示层的功能,视图层包括JSP组件、Form组件以及JSP中标签库等。

4.1.1JSP组件

用户管理视图层共有14个JSP文件,每个Action伪代码的描述详见文件XXKC_CJGL.doc。

4.1.2客户标签库

客户端的标签库包括StructHtml标签、StructBean标签、StructLogic标签和自定义标签库,其中StructHtml标签、StructBean标签和StructLogic标签是Struct的标签库,而CV标签库是本系统自定义的标签。

4.2控制层

用户管理控制层共有7个Action文件,下面是CourseAction的伪代码描述。

表C-3:

CourseAction的伪代码

/**

*@System:

Studentachievementmanagementsystem

*@Version:

1.0

*@Copyright(C)2011byruanjiangongchenggroup,Inc.AllRightsReserved.

*@Class:

CourseAction

*@Summary:

课程管理相关的Action

*@Create:

2011.11.23

*@Update:

2011.11.25

*/

packagecom.stuman.web.struts.action;

importjava.io.UnsupportedEncodingException;

importjava.lang.reflect.InvocationTargetException;

importjava.util.List;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importorg.apache.struts.action.Action;

importorg.apache.struts.action.ActionForm;

importorg.apache.struts.action.ActionForward;

importorg.apache.struts.action.ActionMapping;

importorg.apache.struts.validator.DynaValidatorForm;

importcom.stuman.dao.CourseDAO;

importcom.stuman.domain.Course;

importcom.stuman.util.DAOFactory;

importcom.stuman.util.PageBean;

publicclassCourseActionextendsBaseAction{

privateCourseDAOcourseDao;

publicCourseAction(){

this.courseDao=DAOFactory.getInstance().createCourseDAO();

}

publicCourseDAOgetCourseDAO(){

if(this.courseDao==null){

returnDAOFactory.getInstance().createCourseDAO();

}else{

returnthis.courseDao;

}

}

publicActionForwarddoDefault(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse)

throwsException{

//returnnull;

returngetCourseList(mapping,form,request,response);

}

/**

*

*@parammapping

*@paramform

*@paramrequest

*@paramresponse

*@return

*/

publicActionForwardgetCourseList(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse){

//DynaValidatorFormdform=(DynaValidatorForm)form;

PageBeanpage=newPageBean();

intcurrentPage=request.getParameter("currentPage")==null?

1:

newInteger(request.getParameter("currentPage")).intValue();

page.setRecordsPerPage

(2);

page.setCurrentPage(currentPage);

page.setQueryString("fromCoursecourse");

PageBeanpage2=this.getCourseDAO().getCourseList(page);

log.info("newsize="+page2.getContent().size()+"totalsize"

+page2.getTotalRecords()+"totalpage"

+page2.getTotalPage());

//request.setAttribute("list",page.getContent());

request.setAttribute("splitPage",page2);

//returnnull;

returnmapping.findForward("getList.sucess");

}

/**

*

*@parammapping

*@paramform

*@paramrequest

*@paramresponse

*@return

*/

publicActionForwardinitAddCourse(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse){

Listlist=this.getCourseDAO().getCourse();

request.setAttribute("coustList",list);

returnmapping.findForward("initadd.sucess");

}

/**

*

*@parammapping

*@paramform

*@paramrequest

*@paramresponse

*@return

*/

publicActionForwardaddCourse(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse){

DynaValidatorFormdform=(DynaValidatorForm)form;

Coursestu=newCourse();

try{

this.getBeanUtilsBean().copyProperties(stu,dform);

this.getCourseDAO().saveCourse(stu);

log.info("stu=="+stu);

}catch(IllegalAccessExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}catch(InvocationTargetExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

returngetCourseList(mapping,form,request,response);

}

/**

*

*@parammapping

*@paramform

*@paramrequest

*@paramresponse

*@return

*/

publicActionForwarddeleteCourse(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse){

StringstuId=request.getParameter("id");

this.getCourseDAO().deleteCourseByID(stuId);

returngetCourseList(mapping,form,request,response);

}

/**

*

*@parammapping

*@paramform

*@paramrequest

*@paramresponse

*@return

*/

publicActionForwardgetEditCourse(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse){

StringcourseId=request.getParameter("id");

log.info("stuId==="+courseId);

Coursecourse=this.getCourseDAO().getCourseByID(courseId);

Listlist=this.getCourseDAO().getCourse();

log.info("course"+course);

try{

this.getBeanUtilsBean().copyProperties(form,course);

}catch(IllegalAccessExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}catch(InvocationTargetExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

request.setAttribute("coustList",list);

request.setAttribute("course",course);

returnmapping.findForward("getCourse.sucesss");

}

/**

*

*@parammapping

*@paramform

*@paramrequest

*@paramresponse

*@return

*/

publicActionForwardupdateCourse(ActionMappingmapping,ActionFormform,

HttpServletRequestrequest,HttpServletResponseresponse){

DynaValidatorFormdform=(DynaValidatorForm)form;

Coursestu=newCourse();

System.out.println("fdfdf");

try{

this.getBeanUtilsBean().copyProperties(stu,dform);

this.getCourseDAO().updateCourse(stu);

log.info("upatestu=="+stu);

}catch(IllegalAccessExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}catch(InvocationTargetExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

returngetCourseList(mapping,form,request,response);

}

}

其它Action伪代码详见文件XXKC_CJGL.doc,它有关于每个Action伪代码的详细描述。

4.3模型层

用户管理模型层共有2个组件,下面是AdminBean的伪代码描述。

/**

*@System:

Studentachievementmanagementsystem

*@Version:

1.0

*@Copyright(C)2011byruanjiangongchenggroup,Inc.AllRightsReserved.

*@Class:

Admin

*@Summary:

处理Admin信息的bean

*@Create:

2011.11.23

*@Update:

2011.11.23

*/

importjava.util.List;

importmons.logging.Log;

importmons.logging.LogFactory;

importorg.hibernate.HibernateException;

importorg.hibernate.Session;

importcom.stuman.dao.AdminDAO;

importcom.stuman.dao.hibernate.HibernateUtil;

importcom.stuman.domain.Admin;

publicclassAdminDAOImpimplementsAdminDAO{

privatestaticLoglog=LogFactory.getLog(AdminDAOImp.class);

publicListgetAdmin(){

//TODOAuto-generatedmethodstub

try{

Sessions=HibernateUtil.currentSession();

HibernateUtil.beginTransaction();

Listresults=s.createQuery("fromAdminstu").list();

HibernateUmitTransaction();

HibernateUtil.closeSession();

if(results!

=null&&results.size()>0){

returnresults;

}

}catch(HibernateExceptione){

log.fatal(e);

}

returnnull;

}

publicbooleandeleteAdminByID(Stringid){

//TODOAuto-generatedmethodstub

try{

Sessions=HibernateUtil.currentSession();

HibernateUtil.beginTransaction();

Adminadmin=(Admin)s.load(Admin.class,id);

System.out.println(admin.getId());

s.delete(admin);

HibernateUmitTransaction();

HibernateUtil.closeSession();

returntrue;

}catch(HibernateExceptione){

log.fatal(e);

}

returnfalse;

}

publicAdmingetAdminByID(Stringid){

//TODOAuto-generatedmethodadminb

try{

Sessions=HibernateUtil.currentSession();

HibernateUtil.beginTransaction();

Adminadmin=(Admin)s.load(Admin.class,id);

HibernateUmitTransaction();

HibernateUtil.closeSession();

returnadmin;

}catch(HibernateExceptione){

log.fatal(e);

}

returnnull;

}

publicbooleanupdateAdmin(AdminAd

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1