企业培训管理系统需求分析及设计说明书.docx
《企业培训管理系统需求分析及设计说明书.docx》由会员分享,可在线阅读,更多相关《企业培训管理系统需求分析及设计说明书.docx(13页珍藏版)》请在冰豆网上搜索。
企业培训管理系统需求分析及设计说明书
企业培训管理系统需求分析及设计说明书
一、需求分析
1.功能分析
企业培训管理系统功能共分为两个部分,一个部分是前台(员工的部
分),包括:
个人信息、查看课程、参加课程、修改所参加的课程、删除所参加的课程,退出。
另外一个部分是后台(管理员的部分),
包括:
全部课程信息、添加课程、查看课程信息、修改课程信息、删除课程、退出。
(1)系统结构框图
系统结构图
各模块功能如卜:
前台:
员工登陆后可以进行课程查询,以及参加课程、修改课程和退出课程后台:
只有管理员才可以登录。
可以查看课程报名情况,以及添加新课程、修改课程信息和删除课程
(2)用例模型
模型的含义:
用例图(UseCaseDiagram)是由软件需求分析到最终实现的
第一步,它描述人们如何使用一个系统。
用例视图显示谁是相关的用户、用户希
望系统提供什么样的服务,以及用户需要为系统提供的服务,以便使系统的用户更容易理解这些元素的用途,也便于软件开发人员最终实现这些元素。
用例图在各种开发活动中被广泛的应用,但是它最常用来描述系统及子系统。
当用例视图在外部用户出现以前出现时,它捕获到系统、子系统或类的行为。
它将系统功能划分成对参与者(即系统的理想用户)有用的需求。
而交互部分被称
作用例。
用例使用系统与一个或者多个参与者之间的一系列消息来描述系统中的交
互
用例图可一个包含注释和约束,还可一个包含包,用于将模型中的元素组合
成更大的模块。
有时,可以将用例的实例引入到图中。
用例图模型如下所示,参与者用人形图标来标识,用例用椭圆来表示,连线表示它们之间的关系
(3)角色职责表
本项目共有两个模块:
管理员模块和员工模块
管理员只能操作管理员模块:
添加课程
删除课程
修改课程
查询所有课程
查询课程
员工只能操作员工模块:
添加所选的课程
删除所选的课程修改所选的课程查询所有课程
查询课程
2.业务流程分析
业务流程图
业务流程描述:
管理员和员工首先登录,然后在登录阶段验证核实身份信息,验证成功后则
进入(在验证阶段同时进行验证身份。
管理员则进入到管理员界面。
员工则进入
操作、管理员则在管理员界面进行相关操作。
3.数据流程分析
数据流程图
数据流程图
数据流程描述:
员工首先进行登录,从登录数据库中读取数据进行比较,成功则进入到显示
个人信息网页,从人员信息数据库里读出。
之后进行操作据
库里读出。
参加课程、修改所报的课程和删除所报的课程后,查询的课程从课程数将事务反馈给人员关系数据库。
管理员首先进行登录,从登录数据库中读取数据进行比较,成功则进入到显示
显示所有课程情况的页面,从课程数据库里读出。
之后进行操作。
查找课程,是从课
程数据库里边读出。
添加课程、修改课程和删除课程后,将事务反馈给课程数据库。
4.ER分析
实体及关系分析,画实体关系图。
一共有两个实体,一个是员工,一个是课程。
一名员工可以参加多个课程,而一个课程也可以又多名员工。
所以他们的关系是多对多的关系。
Employee
Relationship1
>0~~0<
Course
e_idInteger
e_nameVariablecharacters(50)
c_idIntegervM>
c_nameVariablecharacters(50)
e_id
c_id
实体关系图
二、设计说明书
1.架构设计
(1)MVC模式
文字描述及框图
MVC架构图
根据图中所示的软件架构,设计了程序的调用关系:
首先,视图层进行
请求,由控制层的model来接收视图层的信息,在controller里进行逻辑控制。
再在控制层调用服务层的接口,创建服务层的对象,将model传入服务层进行业务处理,之后在服务层调用数据访问层的接口,创建数据访问层的对象,将model传入进行事务处理,反馈给数据库。
将结果返回给服务层进行业务处理,再将处理后的结果返回
给控制层,由控制层将结果回传给视图层。
(2)系统模块
企业培训管
理系统
登录
IDE:
MyEclipse7.5。
数据库:
Oracle
2.详细设计
(1)数据库表结构及表间关系设计;
表结构:
表名:
Employee
序号
字段#
中文含义
数据类型
索引
空
备注
1
e_id
员工号
int
PK
X
自动增量
2
e_name
员工姓名
varchar
X
3
e_age
员工年龄
Int
4
engender
员工性别
Varchar
女:
F;男:
m
5
e_level
级别
int
0为管理
员,1为员
工
表名:
Course
序号
字段名
中文含义
数据类型
索引
空
备注
1
e_id
员工号
int
PK
X
自动增量
2
e_name
员工姓名
varchar
X
3
e_age
员工年龄
Int
4
engender
员工性别
Varchar
女:
F;男:
m
5
e_level
级别
int
0为管理
员,1为员
工
表名:
Relation
序号
字段名
中文含义
数据类型
索引
空
备注
1
r_id
Relation号
int
PK
X
自动增量
2
ee_id
员工号
int
X
对应
Employee
表里的
e_id
3
cc_id
课程号
Int
对应
Course衣甲.
的c_id
表间关系:
Employee
e_idInteger
ameVariablecharacters(50)
e_ageInteger
m.genderVariablecharacters
(2)
e_departmentInteger
e_levelInteger
e_id〈pi>
Relation
〈pi>Integer
(2)页面设计
用户名'
密码:
ee_idcou_idr_id
Integer
Integer
员工管理系统
查询课程
傷改所报课程
删除所报课程
员工号*P000001姓名:
张三所选课程'
Struts.2.0
Web20
部门;研发部
性别,男
年龄=26
20097月20口
2009年10月20
日
已完结
正在进行
退出
管理员管理系统
溉新课程
Stmts2.0
2009年夕月20日
2(m人
已完结
修改课程信
Web20
2Q09年}0月20日
2320人
正在进行
息
Oraclellg
2(X)9年□月20日
1820A
退岀
删除课程
退出
用户界面采用HTML内嵌Java语言编写,客户端的数据验证采用
JavaScrip语言编写。
页面层在隐藏域中设置数据操作类型,如method值(1添加,2:
修改,3:
删除),然后传递到控制层,调用业务逻辑处理方法。
(3)类及接口设计
ICourseBL
接口和类设计如图所示。
lEnployeeBL
ILosinBL
+validate()
:
Boolean
*getOnelnforMtion()
*setCoxirseAII0setOn
*eCourze()getCourse
*0addOneCourse()
OneCoxirse()deleteOneCoxirse()
LosinBL
•«lnpleEtent//validate()
:
Boolean
:
java,lang.Object
:
Iterator
:
Iterator
:
Java.Ian*.Object
:
boolean
:
boolean
:
boolean
EnployeeBL
ILoe-nDao
*setEzjployee0:
java.lang.Object
LosinDao
*vvlspleaent>>getEnployee():
java.Iang.Object
•vvlsjpleoenx>>getOnelnformation0
:
java.Iang.Object
•«lupleaent/^getCourseAII0
:
Iterator
•vvlapleaent>/getOneCourse()
:
Iterator
•vvlspleoenx»getCoxnr5e()
:
java.Iang.Object
rvvlzjpleEtent>>addOneCourse0
:
boolean
•vvlaplectent>>aodif7OneCour"()
:
boolean
•vvlspleoenr»deleteOneCoxirze()
:
boclean
IEoplo/eeDao
-getOnelnrornation()
*ge^CourseAll()
-getOneCourse{)
*eetCourze()
•*addOneCaurse{)
-nidifyOneCourse()-
deleteOneC^urse0
:
java,lang.Object
:
Iterator
:
Iterator
:
java.Ian:
-Object
:
boolean
:
boolean
:
boolean
EjrployeeDao
■■Inxilesent>>eetOnelnformats<getOneCourse()
■■•lnplexent^cetC^urse0
■zlttplexent>addOneConrse()
•*^ltzplement>/«odi£yOneCourte<on()-:
java.Ian
5.Object:
Iterator
:
java.Iang.Object
:
boolean
:
boolean
:
boolean
・getCourseAII()
:
Iterator
■addCourse()
:
boolean
■getCourze()
:
java.Ians.Object
•»odi钞Course:
•
:
boolean
■deleteCoxxrse:
•
:
boolean
CourseBL
♦wlrxplement»EetCourseAII
♦wlctpletnent»addCourse()■wlrxplement»getCourse()
♦wlrxplenient^/Do^ifyCoxirse
♦wlrxpleoient»deleteCoxirse
iterator
:
boolean
:
java.Iang.Object
():
boolean
():
boolean
ICourseD&o
■eetCourseAII()addCourse()
■getCourze()
■aodifyCourze<)♦deleteCourse()
:
Iterator
:
boolean
:
java.Ians.Object
:
boolean
:
boolean
C^urseDao
*:
Iterator
*«lttplenent>/addConr5e0:
boolean
+<java.Iang.Object
*/ixodifyCour5e0:
boolean
*<*lnx>lenent>》deleteCourte():
boolean