软件工程课程设计在线答疑系统文档格式.docx
《软件工程课程设计在线答疑系统文档格式.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计在线答疑系统文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
4.4.1用户登录和注册…………………………………………………………………………………
4.4.2学生用户模块…………………………………………………………………………………
4.4.3教师用户模块…………………………………………………………………………………
4.4.4管理员模块…………………………………………………………………………………
5系统测试…………………………………………………………………………………
5.1测试目的…………………………………………………………………………………
5.2系统关键部分测试分析…………………………………………………………………………………
5.2.1注册用户名唯一性验证
5.2.2分页的实现…………………………………………………………………………………
6结论…………………………………………………………………………………
6.1系统功能总结…………………………………………………………………………………
6.2系统的特色之处…………………………………………………………………………………
6.3体会与总结…………………………………………………………………………………
7小组分工…………………………………………………………………………………
第一章系统分析
1.1需求分析
在开发任何一个系统之前,进行必需的系统分析是非常有必要的,主要是根据对客户的需求和本系统的一些特点和模块的分析等来确定如何有效地进行实际的开发。
需求分析是软件设计的一个重要组成部分。
为了确定系统的目标,应在本阶段对系统的应用情况进行全面的调查
1.1.1功能性需求分析
本系统包含学生、教师和后台管理员这3类用户,其各用户的具体功能如下。
●学生用户功能
•注册和登录,学生不仅可以很方便地进行用户注册,也能够登录在线答疑系统。
•资料的修改,注册后学生可以修改自己的注册资料。
•查看提问,学生发起问题后,可以查看该问题的回复情况。
•申请课程,如果学生还不能修某课程,可提交该课程的申请表。
•查询课程,搜索自己感兴趣的课程,支持模糊检索。
•查看参与的提问,学生不仅可以对自己参与课程下的问题进行讨论,而且还可以查看这些问题。
●教师用户功能
•用户的登录,老师可自由地登录在线答疑系统。
•资料的修改,老师可以修改自己的资料。
•查看未回答的提问,老师登录后,可以查看待回答问题的列表。
•查看已回答的提问,对于已经回答的问题,老师不仅可查看,而且还可以继续回复讲解。
•添加学生,老师能够将学生添加到自己所教授的某门课程。
•删除学生,老师能够删除自己所教课程下的学生。
●管理员功能
•课程管理,管理员可以对课程信息进行维护。
•内容管理,管理员可以对提问内容和回复内容进行管理。
•用户管理,管理员可以对学生用户和老师用户进行管理。
•管理员管理,主要是超级管理员对普通管理员的管理。
1.1.2非功能性需求分析
(1)系统安全性需求
在软件使用方面,学生用户和教师用户通过系统主界面登录进入系统,但必须通过必要的身份验证。
管理员则通过专门的登录页面来进入系统,一旦管理员登录成功就可以对系统进行常规管理。
用户登录的角色不同,从系统获得的操作权限也不同。
(2)系统开发运行环境需求
JDK:
作为整个Java的核心包含了Java的基础类库、运行环境和Java工具,是Java语言的软件开发工具包。
MyEclipse:
是一个非常杰出的Java开发工具,对各种开源产品的支持非常好。
它不仅功能非常强大,而且具备非常广泛的支持性能。
Tomcat服务器:
适用于中小型系统开发的web应用服务器,开放源代码且免费。
其性能稳定、技术先进,因此不但博得了Java开发人员的喜爱,而且也得到了一些软件开发商的肯定,是当今较流行的Web应用服务器。
MySQL数据库:
是目前小型应用开发中比较流行的数据库,且从MySQL5.0版本开始支持事务,保证了数据库的完整性和安全性。
1.1.3系统流程图
用户进入系统主界面后,会显示所有课程列表,成功登录后才能查看课程的提问以及进行其它操作。
如果是学生用户,则可以查看个人资料、自己的课程、提问、参与的问题和申请处理情况,还可以进行课程的申请,修改资料和登录密码。
如果是老师用户,则可以查看个人资料、自己的课程和申请列表,并能对学生进行管理(添加或删除学生),修改资料和登录密码,系统会提示老师未回答问题和未处理申请的个数。
管理员经由后台登录界面进入系统,成功地登录以后,系统会根据管理员角色(超级管理员和普通管理员)的不同来显示相应的操作权限列表。
管理员能够对课程、提问和回复、学生和老师用户以及管理员用户进行管理。
本系统的流程图如下页图1.1所示
修改资料
回答问题和处理申请
添加和删除学生
查看老师的课程
课程管理
提问和回复管理
学生和老师用户的管理
管理员用户的管理
搜索课程和申请课程
提出问题和参与讨论
查看自己的课程和提问
查看申请处理情况
系统首页后台登录界面
用户登录否否用户登录
登录成功?
是是
老师用户学生用户管理员
图1.1系统流程图
1.1.4系统数据流图
本系统数据流的设计主要包括在线答疑信息管理、课程管理和用户管理等的实现,其相应的数据流图分别如下图1.2所示。
图1.2系统顶层数据流图
管理员管理部分主要实现了课程管理、提问和回复管理以及学生和老师用户管理,其数据流图如图1.3所示。
图1.3第一层数据流图—管理员管理
教师管理部分主要实现了学生管理、回答问题、处理申请以及查看课程信息,其数据流图如图1.4所示。
图1.4第一层数据流图—教师管理
学生管理部分主要实现了搜索课程和申请课程、提出问题和参与讨论、查看自己的课程和提问以及产看申请处理情况,其数据流图如图1.5所示。
图1.5第一层数据流图—学生管理
1.2可行性分析
可行性分析(FeasibilityAnalysis),即可行性研究,它是针对新系统的开发是不是具备必可能性和必要性并基于对系统的调查,对新系统的开发从技术、社会和经济等方面开展分析和研究工作,以避免投资失误,从而保障新系统的开发成功。
可行性研究的目标是用最小的代价在尽量短的时间内确定问题是否可以得到解决。
其实质上是要进行一次大大压缩简化了的系统分析和设计过程,即以较抽象的方式在较高层次上进行的系统分析和设计的过程。
1.2.1技术可行性分析
技术可行性不仅要考虑使用现有的技术可否完成系统的开发,而且还要考虑软件和硬件的配置可否能够满足开发的需要等。
本系统的开发是一个较具代表性的JavaWeb项目,采用Java程序语言,如今计算机硬件的配置已经完全可以满足开发过程的需求。
从软件方面来看,系统使用JavaWeb技术进行开发,前端界面使用的是DIV+CSS技术,所需的软件环境如下:
JDK、MyEclipse、Web应用服务器以及MySQL数据库。
这些软件都已经有了功能全面、稳定的版本,故软件的开发平台成熟可行,它们不仅可靠性高而且稳定,因此完全可以满足系统的需求。
1.2.2经济可行性分析
系统所需要的硬件环境,即计算机及其相关的硬件,从市场上可以很容易地购买到。
所需软件环境(JDK+MyEclipse+Tomcat+MySQL)可以从网上免费下载,从而降低了开发成本。
本系统主要的开发与维护成本也不会造成太大的经济压力。
此系统正式投入使用后,学校的教学质量能够得到大幅度的提高,答疑工作也能更顺利的开展,并且师生之间的在线互动也可以更加方便地进行。
同时对于学校学生来说,有问题可以立即登入系统进行提问,只要是该课程下的学生用户都可以参与讨论。
对于教师来说,能够很方便地查看学生提出的问题并回答,了解学生对知识的掌握程度,从而把握教学重点,这样学校的教学质量便得到了提高。
1.2.3操作可行性分析
本系统主要是为了方便教师与学生之间的答疑工作的开展,提高学生的学习效率。
学生将所学习课程的疑问通过系统呈现给教师,待教师解答后,可查看到问题回复。
第二章系统总体设计
总体设计,也可以称为概要设计或者初步设计,其基本目的便是回答“概括地说,应当如何实现系统”这个问题。
经过这个阶段,将划分出构成系统的物理元素(数据库、程序、文件、文档和人工过程等),然而所有的物理元素依旧处于黑盒子级,这些黑盒子里的具体内容将在之后进行详细的设计。
总体设计阶段的另外一项重要任务是确定系统中的每一个程序由哪些模块构成以及这些模块相互之间的关系,即设计软件的结构。
2.1项目规划
总体规划:
在线答疑系统是一个非常典型的JavaWeb项目,它由系统前台展示模块和后台数据管理模块等两大模块构成。
前台展示模块主要提供身份登录验证,提出问题与回复、参与讨论,查看课程和提问,申请课程和处理申请、修改资料以及添加/删除学生等功能模块。
后台管理模块:
该模块主要进行数据库的管理和维护,包含对学生和教师用户的管理、课程的管理、提问和回复的管理、管理员用户的管理等。
2.2系统总体结构
系统总体结构是系统总体设计的核心部分,通过系统结构图可以很清楚地看出整个系统的结构。
根据各个结构模块分别进行分析,从而为将来的设计和实现打下良好的基础。
根据前面对系统所做出的分析,本系统总体上包括3类用户,即学生用户、老师用户和后台管理员用户。
系统总体结构如图2.1所示。
图2.1系统结构图
2.3系统功能模块
在线答疑系统依据用户的类别共分成三个模块:
学生模块、教师模块和管理员模块。
2.3.1学生模块功能定义
表2.1学生模块功能列表
功能名称
定义
学生注册
用于注册学生信息
学生登录
用于学生登录系统的身份验证
修改资料
用于学生修改个人资料
搜索课程
用于学生搜索所有可提问的课程
申请课程
用于学生申请感兴趣的课程
提问问题
用于学生提出对课程内出现的疑问
参与讨论
用户学生之间针对问题进行交流讨论
我的提问
用于学生查看自己所提出问题的回复情况
我的课程
用于学生查看自己已经申请的课程
我的申请
用于学生查看自己的申请处理情况
退出
学生退出系统登录
2.3.2教师模块功能定义
表2.2教师模块功能列表
教师注册
用于注册教师信息
教师登录
用于教师登录系统的身份验证
用于教师修改个人资料
回答问题
用于教师回答学生所提出的问题
申请处理
用于教师处理学生的课程申请
添加学生
用于教师为自己的课程添加学生
删除学生
用于教师删除自己课程下的学生
查看课程
用于教师查看自己的课程
教师退出系统登录
2.3.3管理员功能模块定义
表2.3管理员模块功能列表
管理员登录
用于管理员登录系统的身份验证
课程管理
用于对课程信息进行添加、修改和删除
提问管理
用于问题信息的维护,对过时答疑信息的删除
回复管理
用于回复信息的维护,对不良回复信息的删除
学生管理
用于对学生用户的信息进行修改和删除
教师管理
用于教师用户信息的修改和删除
管理员管理
用于管理用户信息的修改、添加和删除
管理员退出系统登录
第三章数据库设计
数据库技术是管理信息资源的最佳方式。
数据库设计是针对一个特定的应用环境构造出最优的数据库模式来创建数据库及其应用系统,从而实现对数据的有效存储,以满足用户对信息和处理的要求。
数据库结构的设计将直接影响到应用系统的效率和实现的效果。
因此,合理的数据库设计不但能够提升数据存储的效率,而且可以有效的确保数据的完整性和一致性。
确定了系统需要开发的功能之后,接下来应该进行数据库的设计工作,分析该系统的各个实体之间的关系,做好数据库的设计对后期的开发有着非常重要的作用。
3.1数据库分析
由于本系统的规模不是很大,因此选用MySQL数据库,该数据库为开源免费产品,可以直接通过网上下载得到,从而大大节约了开发成本。
MySQL数据库是现今小型应用开发中比较流行的数据库,且从其5.0版本开始支持事务,能够确保数据的完整性和安全性。
3.2项目E-R图
在线答疑系统作为学生和老师之间针对于学生所提出的问题进行沟通和交流的桥梁,所包含的实体有提问信息、回答信息、课程、用户、申请信息和关系。
下面将依次介绍各个实体所对应的E-R图。
●用户的E-R图主要包括用户的编号、用户名、密码和电子邮件等信息,具体如图3.1所示。
图3.1用户E-R图
●课程实体包含课程名、课程编号和课程描述,具体如下图3.2所示。
图3.2课程E-R图
●提问信息实体主要包括提问的编号、提问用户的ID、提问标题等信息,具体如图3.3所示。
图3.3提问信息E-R图
●回复信息实体主要包括所回复问题的编号、回复标题和内容等信息,其E-R图如图3.4所示。
图3.4回复信息E-R图
●申请信息实体主要包含申请人编号、所申请课程编号、是否处理以及申请理由等的一些标志信息,其E-R图如图3.5所示。
图3.5申请信息E-R图
●学生和课程之间存在学习的关系,该关系记录了学生的ID和课程的ID信息,具体如图3.6所示。
图3.6关系信息E-R图
●实体之间存在着一定的关系,如一个老师能教授多门课程,并且一门课程也能被多个学生学习,具体关系如图3.7所示。
3.3数据库表的设计
系统数据库设计的好坏不仅对今后网站连接数据库的速度有着非常重要的影响,而且也对查询更新的复杂度有着非常重要的影响。
本节介绍对本系统的数据库表进行的设计,是在完成系统功能分析的基础上根据系统的需求目标而进行的设计。
根据前面所介绍的实体所拥有的属性以及实体之间的关系描述,下面将介绍数据库中这些实体对应的表的设计,分别是课程表、提问表、回复表、用户表、申请表和关系表,具体设计如下所示。
(1)用户表:
主要包含用户名、用户ID、登录密码、电子邮件和其它相关信息,表中各字段的详细信息如下表3.1所示。
表3.1用户信息表DY_User
字段名称
数据类型
字段大小
是否主/外键
字段说明
备注
UID
int
N/A
主键
用户编号
非空
UName
varchar
20
否
用户名
唯一且非空
UPwd
登录密码
UGender
char
2
用户性别
无
UEmail
40
电子邮件
URole
用户角色
默认值
UHead
50
图像URL
URegDate
date
注册日期
ULastLogin
datetime
最后登录时间
ULastEmit
最后发表时间
UPermit
用户权限
(2)课程信息表:
包含课程名、课程ID以及课程描述信息,表中各字段的详细信息如下表3.2所
表3.2课程信息表DY_Topic_Group
TGID
课程编号
TGName
课程名
TDetail
200
课程描述
(3)提问信息表:
该表主要包括提问标题、内容和所属课程等提问信息,表中各字段的详细信息如下表3.3所示。
表3.3提问信息表DY_Topic
TID
提问编号
外键
提问人ID
所属课程ID
TTitle
提问标题
TContent
text
提问内容
TDate
提问时间
TReadCount
阅读次数
(4)回复信息表:
该表主要包含所回复问题ID、回复标题、回复ID以及回复内容等信息,各字段的详细信息如下表3.4所示。
表3.4回复信息表DY_Revert
RID
回复编号
所回复提问ID
回复人ID
RTitle
回复标题
RContent
回复内容
RDate
回复时间
(5)申请信息表:
该表主要包含申请编号、申请人编号和所申请课程编号等,表中各字段的详细信息如下表3.5所示。
表3.5申请信息表DY_Apply
AID
申请编号
申请人ID
所申请课程ID
AReason
申请理由
AFlag
申请处理标志
AStatus
10
申请处理状态
(6)用户-课程关系表:
用于记录存在于用户和课程之间的关系,包含用户编号、课程编号和关系编号等信息,表中各字段的详细信息如下表3.6所示。
表3.6用户-课程关系表DY_TU
TUID
关系ID
用户ID
课程ID
第四章系统详细设计与实现
通过这一阶段的工作进行了详细的设计,我们将会确切地描述所要开发的目标系统,其基本任务是要确定能够具体地实现所要求的系统的方法途径。
4.1界面设计
对于任何系统来讲,设计用户界面都是相当重要的。
因为一个交互良好的界面不仅可以使浏览者对系统的印象更深刻,而且可以为与客户进行沟通提供方便。
本系统的界面使用JSP页面来实现,并采用DIV+CSS技术对界面进行美化。
在页面的实现过程中,主要遵循了以下两个原则:
(1)统一连贯。
页面的整体风格要与自己所要表达的内容相符,本系统是在线答疑系统,采用草绿色为界面的颜色基调,能凸显学生的活力和知识学习生机勃勃的景象。
(2)布局合理、和谐。
整个页面要符合大众人群的审美观念。
布局是一个页面显示的主体框架,一个设计良好的布局,能给用户很好的使用效果和深刻的浏览记忆。
本系统的主界面如下图4.1所示。
图4.1系统主界面
4.2系统分层的实现
根据MVC设计思想,本系统以Struts2框架为控制器,用来管理各页面传过来的请求,从而发给相应的action处理;
各JSP页面作为动态页面表示层来进行显示;
DBUtil和各个Action等均作为Spring当中的受管Bean。
4.2.1表现层的设计
JSP技术能够将普通静态的HTML技术和动态的HTML技术相结合起来进行编码。
它具有运行效率高、跨平台性等优点。
根据系统的分层情况,表示层选用的是JSP动态页面技术。
4.2.2控制层的设计
<
filter>
<
filter-name>
struts2<
/filter-name>
filt