软件工程-课程设计(在线答疑系统)_第1页
软件工程-课程设计(在线答疑系统)_第2页
软件工程-课程设计(在线答疑系统)_第3页
软件工程-课程设计(在线答疑系统)_第4页
软件工程-课程设计(在线答疑系统)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、word可编辑在线答疑系统 工程名称: 在线答疑系统 班 级: 学 号: 姓 名: 小组成员: 2021年6月12日名目1系统分析 需求分析 功能性需求分析 非功能性需求分析 系统流程图. 系统数据流图可行性分析.2系统总体设计 工程规划 系统总体结构 系统功能模块同学模块功能定义 老师模块功能定义 管理员功能模块定义3数据库设计 数据库分析 工程E-R图 数据库表的设计4系统具体设计与实现 界面设计 系统分层的实现 表现层的设计 把握层的设计 数据连接与操作的实现 数据源的配置 数据库操作的实现 各个功能模块的设计与实现 用户登录和注册 同学用户模块 老师用户模块 管理员模块5 系统测试 测

2、试目的 系统关键局部测试分析 注册用户名唯一性验证 分页的实现6结论 系统功能总结 系统的特色之处体会与总结7小组分工第一章 系统分析需求分析在开发任何一个系统之前,进行必需的系统分析是格外有必要的,主要是依据对客户的需求和本系统的一些特点和模块的分析等来确定如何有效地进行实际的开发。需求分析是软件设计的一个重要组成局部。为了确定系统的目标,应在本阶段对系统的应用状况进行全面的调查1.1.1 功能性需求分析本系统包含同学、老师和后台管理员这3类用户,其各用户的具体功能如下。l 同学用户功能 注册和登录,同学不仅可以很便利地进行用户注册,也能够登录在线答疑系统。 资料的修改,注册后同学可以修改自

3、己的注册资料。 查看提问,同学发起问题后,可以查看该问题的回复状况。 申请课程,假犹如学还不能修某课程,可提交该课程的申请表。 查询课程,搜寻自己感爱好的课程,支持模糊检索。 查看参与的提问,同学不仅可以对自己参与课程下的问题进行争辩,而且还可以查看这些问题。l 老师用户功能 用户的登录,老师可自由地登录在线答疑系统。 资料的修改,老师可以修改自己的资料。 查看未答复的提问,老师登录后,可以查看待答复以下问题的列表。 查看已答复的提问,对于已经答复的问题,老师不仅可查看,而且还可以连续回复讲解。 添加同学,老师能够将同学添加到自己所教授的某门课程。 删除同学,老师能够删除自己所教课程下的同学。

4、l 管理员功能 课程管理,管理员可以对课程信息进行维护。 内容管理,管理员可以对提问内容和回复内容进行管理。 用户管理,管理员可以对同学用户和老师用户进行管理。 管理员管理,主要是超级管理员对一般管理员的管理。1.1.2 非功能性需求分析1系统平安性需求在软件使用方面,同学用户和老师用户通过系统主界面登录进入系统,但必需通过必要的身份验证。管理员那么通过特地的登录页面来进入系统,一旦管理员登录成功就可以对系统进行常规管理。用户登录的角色不同,从系统获得的操作权限也不同。2系统开发运行环境需求JDK:作为整个Java的核心包含了Java的根底类库、运行环境和Java工具,是 Java 语言的软件

5、开发工具包。 MyEclipse:是一个格外杰出的Java开发工具,对各种开源产品的支持格外好。它不仅功能格外强大,而且具备格外广泛的支持性能。 Tomcat效劳器:适用于中小型系统开发的web应用效劳器,开放源代码且免费。其性能稳定、技术先进,因此不但博得了Java 开发人员的宠爱,而且也得到了一些软件开发商确实定,是当今较流行的Web 应用效劳器。 MySQL数据库:是目前小型应用开发中比较流行的数据库,且从版本开头支持事务,保证了数据库的完整性和平安性。1.1.3 系统流程图用户进入系统主界面后,会显示全部课程列表,成功登录后才能查看课程的提问以及进行其它操作。假设是同学用户,那么可以查

6、看个人资料、自己的课程、提问、参与的问题和申请处理状况,还可以进行课程的申请,修改资料和登录密码。假设是老师用户,那么可以查看个人资料、自己的课程和申请列表,并能对同学进行管理添加或删除同学,修改资料和登录密码,系统会提示老师未答复以下问题和未处理申请的个数。管理员经由后台登录界面进入系统,成功地登录以后,系统会依据管理员角色超级管理员和一般管理员的不同来显示相应的操作权限列表。管理员能够对课程、提问和回复、同学和老师用户以及管理员用户进行管理。本系统的流程图如下页图所示在线答疑系统 系统首页 后台登录界面 用户登录 否 否 用户登录 登录成功 登录成功 是 是 老师用户 同学用户 管理员 修

7、改资料 管理员用户的管理 同学和老师用户的管理 提问和回复管理 课程管理 查看老师的课程 添加和删除同学 答复以下问题和处理申请 查看申请处理状况 修改资料 搜寻课程和申请课程 查看自己的课程和提问 提出问题和参与争辩 图 系统流程图1.1.4 系统数据流图本系统数据流的设计主要包括在线答疑信息管理、课程管理和用户管理等的实现,其相应的数据流图分别如以下图所示。图 系统顶层数据流图管理员管理局部主要实现了课程管理、提问和回复管理以及同学和老师用户管理,其数据流图如下图。 图 第一层数据流图管理员管理老师管理局部主要实现了同学管理、答复以下问题、处理申请以及查看课程信息,其数据流图如下图。图 第

8、一层数据流图老师管理同学管理局部主要实现了搜寻课程和申请课程、提出问题和参与争辩、查看自己的课程和提问以及产看申请处理状况,其数据流图如下图。图 第一层数据流图同学管理可行性分析可行性分析(Feasibility Analysis),即可行性争辩,它是针对新系统的开发是不是具备必可能性和必要性并基于对系统的调查,对新系统的开发从技术、社会和经济等方面开展分析和争辩工作,以避开投资失误,从而保障新系统的开发成功。可行性争辩的目标是用最小的代价在尽量短的时间内确定问题是否可以得到解决。其实质上是要进行一次大大压缩简化了的系统分析和设计过程,即以较抽象的方式在较高层次上进行的系统分析和设计的过程。

9、技术可行性分析技术可行性不仅要考虑使用现有的技术可否完成系统的开发,而且还要考虑软件和硬件的配置可否能够满足开发的需要等。本系统的开发是一个较具代表性的Java Web工程,接受Java程序语言,如今计算机硬件的配置已经完全可以满足开发过程的需求。从软件方面来看,系统使用Java Web技术进行开发,前端界面使用的是DIV+CSS技术,所需的软件环境如下:JDK、MyEclipse、Web应用效劳器以及MySQL数据库。这些软件都已经有了功能全面、稳定的版本,故软件的开发平台成熟可行,它们不仅牢靠性高而且稳定,因此完全可以满足系统的需求。 经济可行性分析系统所需要的硬件环境,即计算机及其相关的

10、硬件,从市场上可以很简洁地购置到。所需软件环境(JDK+MyEclipse+Tomcat+MySQL)可以从网上免费下载,从而降低了开发本钱。本系统主要的开发与维护本钱也不会造成太大的经济压力。此系统正式投入使用后,学校的教学质量能够得到大幅度的提高,答疑工作也能更顺当的开展,并且师生之间的在线互动也可以更加便利地进行。同时对于学校同学来说,有问题可以马上登入系统进行提问,只要是该课程下的同学用户都可以参与争辩。对于老师来说,能够很便利地查看同学提出的问题并答复,了解同学对学问的把握程度,从而把握教学重点,这样学校的教学质量便得到了提高。 操作可行性分析本系统主要是为了便利老师与同学之间的答疑

11、工作的开展,提高同学的学习效率。同学将所学习课程的疑问通过系统呈现给老师,待老师解答后,可查看到问题回复。第二章 系统总体设计总体设计,也可以称为概要设计或者初步设计,其根本目的便是答复“概括地说,应当如何实现系统这个问题。经过这个阶段,将划分出构成系统的物理元素数据库、程序、文件、文档和人工过程等,然而全部的物理元素照旧处于黑盒子级,这些黑盒子里的具体内容将在之后进行具体的设计。总体设计阶段的另外一项重要任务是确定系统中的每一个程序由哪些模块构成以及这些模块相互之间的关系,即设计软件的结构。 工程规划总体规划:在线答疑系统是一个格外典型的Java Web工程,它由系统前台呈现模块和后台数据管

12、理模块等两大模块构成。前台呈现模块主要供给身份登录验证,提出问题与回复、参与争辩,查看课程和提问,申请课程和处理申请、修改资料以及添加/删除同学等功能模块。后台管理模块:该模块主要进行数据库的管理和维护,包含对同学和老师用户的管理、课程的管理、提问和回复的管理、管理员用户的管理等。 系统总体结构系统总体结构是系统总体设计的核心局部,通过系统结构图可以很清楚地看出整个系统的结构。依据各个结构模块分别进行分析,从而为将来的设计和实现打下良好的根底。依据前面对系统所做出的分析,本系统总体上包括3类用户,即同学用户、老师用户和后台管理员用户。系统总体结构如下图。图 系统结构图 系统功能模块在线答疑系统

13、依据用户的类别共分成三个模块:同学模块、老师模块和管理员模块。同学模块功能定义表 同学模块功能列表功能名称定义同学注册用于注册同学信息同学登录用于同学登录系统的身份验证修改资料用于同学修改个人资料搜寻课程用于同学搜寻全部可提问的课程申请课程用于同学申请感爱好的课程提问问题用于同学提出对课程内消灭的疑问参与争辩用户同学之间针对问题进行沟通争辩我的提问用于同学查看自己所提出问题的回复状况我的课程用于同学查看自己已经申请的课程我的申请用于同学查看自己的申请处理状况退出同学退出系统登录 老师模块功能定义表 老师模块功能列表功能名称定义老师注册用于注册老师信息老师登录用于老师登录系统的身份验证修改资料用

14、于老师修改个人资料答复以下问题用于老师答复同学所提出的问题申请处理用于老师处理同学的课程申请添加同学用于老师为自己的课程添加同学删除同学用于老师删除自己课程下的同学查看课程用于老师查看自己的课程退出老师退出系统登录 管理员功能模块定义定义表 管理员模块功能列表功能名称定义管理员登录用于管理员登录系统的身份验证课程管理用于对课程信息进行添加、修改和删除提问管理用于问题信息的维护,对过时答疑信息的删除回复管理用于回复信息的维护,对不良回复信息的删除同学管理用于对同学用户的信息进行修改和删除老师管理用于老师用户信息的修改和删除管理员管理用于管理用户信息的修改、添加和删除退出管理员退出系统登录第三章

15、数据库设计数据库技术是管理信息资源的最正确方式。数据库设计是针对一个特定的应用环境构造出最优的数据库模式来创立数据库及其应用系统,从而实现对数据的有效存储,以满足用户对信息和处理的要求。数据库结构的设计将直接影响到应用系统的效率和实现的效果。因此,合理的数据库设计不但能够提升数据存储的效率,而且可以有效确实保数据的完整性和全都性。确定了系统需要开发的功能之后,接下来应当进行数据库的设计工作,分析该系统的各个实体之间的关系,做好数据库的设计对后期的开发有着格外重要的作用。 数据库分析由于本系统的规模不是很大,因此选用MySQL数据库,该数据库为开源免费产品,可以直接通过网上下载得到,从而大大节省

16、了开发本钱。MySQL数据库是现今小型应用开发中比较流行的数据库,且从其版本开头支持事务,能够确保数据的完整性和平安性。 工程E-R图在线答疑系统作为同学和老师之间针对于同学所提出的问题进行沟通和沟通的桥梁,所包含的实体有提问信息、答复信息、课程、用户、申请信息和关系。下面将依次介绍各个实体所对应的E-R图。l 用户的E-R图主要包括用户的编号、用户名、密码和电子邮件等信息,具体如下图。图 用户E-R图l 课程实体包含课程名、课程编号和课程描述,具体如以下图所示。图 课程E-R图l 提问信息实体主要包括提问的编号、提问用户的ID、提问标题等信息,具体如下图。图 提问信息E-R图l 回复信息实体

17、主要包括所回复问题的编号、回复标题和内容等信息,其E-R图如下图。图 回复信息E-R图l 申请信息实体主要包含申请人编号、所申请课程编号、是否处理以及申请理由等的一些标志信息,其E-R图如下图。图 申请信息E-R图l 同学和课程之间存在学习的关系,该关系记录了同学的ID和课程的ID信息,具体如下图。图 关系信息E-R图l 实体之间存在着肯定的关系,如一个老师能教授多门课程,并且一门课程也能被多个同学学习,具体关系如下图。 数据库表的设计系统数据库设计的好坏不仅对今后网站连接数据库的速度有着格外重要的影响,而且也对查询更新的简单度有着格外重要的影响。本节介绍对本系统的数据库表进行的设计,是在完成

18、系统功能分析的根底上依据系统的需求目标而进行的设计。依据前面所介绍的实体所拥有的属性以及实体之间的关系描述,下面将介绍数据库中这些实体对应的表的设计,分别是课程表、提问表、回复表、用户表、申请表和关系表,具体设计如下所示。1用户表:主要包含用户名、用户ID、登录密码、电子邮件和其它相关信息,表中各字段的具体信息如下表所示。表 用户信息表DY_User字段名称数据类型字段大小是否主/外键字段说明备注UIDintN/A主键用户编号非空UNamevarchar20否用户名唯一且非空UPwdvarchar20否登录密码非空UGenderchar2否用户性别无UEmailvarchar40否电子邮件无U

19、RoleintN/A否用户角色默认值UHeadvarchar50否图像URL默认值URegDatedateN/A否注册日期无ULastLogindatetimeN/A否最终登录时间无ULastEmitdatetimeN/A否最终发表时间无UPermitintN/A否用户权限默认值2课程信息表:包含课程名、课程ID以及课程描述信息,表中各字段的具体信息如下表所表 课程信息表DY_Topic_Group字段名称数据类型字段大小是否主/外键字段说明备注TGIDintN/A主键课程编号非空TGNamevarchar50否课程名非空TDetailvarchar200否课程描述非空3提问信息表:该表主要包

20、括提问标题、内容和所属课程等提问信息,表中各字段的具体信息如下表所示。表 提问信息表DY_Topic字段名称数据类型字段大小是否主/外键字段说明备注TIDintN/A主键提问编号非空UIDintN/A外键提问人ID无TGIDintN/A外键所属课程ID无TTitlevarchar200否提问标题非空TContenttextN/A否提问内容非空TDatedatetimeN/A否提问时间非空TReadCountintN/A否阅读次数默认值4回复信息表:该表主要包含所回复问题ID、回复标题、回复ID以及回复内容等信息,各字段的具体信息如下表所示。表 回复信息表DY_Revert字段名称数据类型字段大

21、小是否主/外键字段说明备注RIDintN/A主键回复编号非空TIDintN/A外键所回复提问ID无UIDintN/A外键回复人ID无RTitlevarchar200否回复标题无RContenttextN/A否回复内容非空RDatedatetimeN/A否回复时间非空5申请信息表:该表主要包含申请编号、申请人编号和所申请课程编号等,表中各字段的具体信息如下表所示。表 申请信息表DY_Apply字段名称数据类型字段大小是否主/外键字段说明备注AIDintN/A主键申请编号非空UIDintN/A外键申请人ID无TGIDintN/A外键所申请课程ID无AReasonvarchar200否申请理由非空A

22、FlagintN/A否申请处理标志默认值AStatuschar10否申请处理状态默认值6用户-课程关系表:用于记录存在于用户和课程之间的关系,包含用户编号、课程编号和关系编号等信息,表中各字段的具体信息如下表所示。表 用户-课程关系表DY_TU字段名称数据类型字段大小是否主/外键字段说明备注TUIDintN/A主键关系ID非空UIDintN/A外键用户ID无TGIDintN/A外键课程ID无第四章 系统具体设计与实现通过这一阶段的工作进行了具体的设计,我们将会精确地描述所要开发的目标系统,其根本任务是要确定能够具体地实现所要求的系统的方法途径。 界面设计对于任何系统来讲,设计用户界面都是相当重

23、要的。因为一个交互良好的界面不仅可以使扫瞄者对系统的印象更深刻,而且可以为与客户进行沟通供给便利。 本系统的界面使用JSP页面来实现,并接受DIV+CSS技术对界面进行美化。在页面的实现过程中,主要遵循了以下两个原那么:1统一连贯。页面的整体风格要与自己所要表达的内容相符,本系统是在线答疑系统,接受草绿色为界面的颜色基调,能凸显同学的活力和学问学习生气勃勃的景象。2布局合理、和谐。整个页面要符合群众人群的审美观念。布局是一个页面显示的主体框架,一个设计良好的布局,能给用户很好的使用效果和深刻的扫瞄记忆。本系统的主界面如以下图所示。图 系统主界面 系统分层的实现依据MVC设计思想,本系统以Str

24、uts2框架为把握器,用来管理各页面传过来的恳求,从而发给相应的action处理;各JSP页面作为动态页面表示层来进行显示;DBUtil和各个Action等均作为Spring当中的受管Bean。 表现层的设计JSP技术能够将一般静态的HTML技术和动态的HTML技术相结合起来进行编码。它具有运行效率高、跨平台性等优点。依据系统的分层状况,表示层选用的是JSP动态页面技术。 把握层的设计<filter><filter-name>struts2</filter-name><filter-class><filter-name>struts2

25、</filter-name><url-pattern>/*</url-pattern></filter-mapping>把握层的接受的是Struts2框架。因为能够使用Struts2的控件上传文件,并且其拦截器机制也能够对特定信息进行拦截。该系统中Struts2的工作原理表达如下:当用户从前台JSP页面选择操作后,通过Struts2把握器转发给相应的action进行处理,各action通过Spring的依靠注入的DBUtil来实现对数据库的各项操作,最终将得到的数据传到JSP页面进行显示。本系统在工程结构中WEB-INF文件夹下的文件中对Stru

26、ts2进行的配置如下: 数据连接与操作的实现 数据源的配置由于系统接受数据库连接池技术访问数据库,所以在连接数据库之前要对数据源进行配置,本系统在工程结构中WEB-INF文件夹下的文件中对其进行的配置如下:<resource-ref><description>DB Connection</description><res-ref-name>jdbc/zxdy</res-ref-name><res-type><res-auth>Container</res-auth></resource-ref

27、> 数据库操作的实现public class DBUtilprivate JdbcTemplate jt;/声明JdbcTemplate对象引用private List rl = null;/声明List对象引用private String sql = null;/声明SQL字符串引用private DataSource ds;/声明DataSource引用private DataSourceTransactionManager dtm;/声明数据源事务管理类引用 private DefaultTransactionDefinition dtd; /声明DefaultTransactio

28、nDefinition引用 public void setJt(JdbcTemplate jt)/jt成员的setter方法 = jt;/设置jt属性的值public void setDs(DataSource ds)=ds; /对数据库进行操作的各个方法本工程中的DBUtil类包含全部要用到的数据库方法,需要将DBUtil类的资源注入到工程中开发的Action,并将Action配置成为Spring框架中的受管Bean。DBUtil类的具体实现代码见附录1,其大致结构如下: 各个功能模块的设计与实现依据系统分析和系统的总体设计,根本确定了该系统所包含的模块,下面具体介绍各个模块的根本功能的设计

29、与实现。 用户登录和注册依据系统分析和功能的需求,用户在没有登录的情形下,除了对系统首页进行扫瞄外无法执行其它操作。只有在登陆成功的状况下,才能够发表疑问和回复并执行其它操作。同学和老师用户通过系统首页登录系统,而管理员那么通过后台登录界面进入系统。在利用Struts2框架进行开发的过程中,有时一个动作要与一个Action对应,可是这些Action中有些属性或方法是通用的,如果在每一个Action里面反复书写相同的属性或方法就会导致代码看起来不仅冗长并且枯燥。因此,首先要定义一个可以让之后的全部Action继承的一个包含通用属性和方法的基类Action,即BaseAction类。其具体实现类是

30、DYBaseAction,DYBaseAction类的主要源代码如下。public class DYBaseAction extends ActionSupport public String execute()throws Exception String result = SUCCESS; if("logout".equals(actionStr) String role = (String)getSession().get("role"); getSession().clear(); "role:="+role); if(&qu

31、ot;0".equals(role)|"1".equals(role) url = "" message = "退出成功,现在将跳转到主页" else url = "" message = "退出成功,现在将要跳转到登陆页" result = LOGIN; return result;1用户注册 用户通过系统首页进入注册页面, 因为注册的用户有很多,本模块使用了Ajax技术,在客户端还未提交注册表之前可以对信息进行验证,如果注册信息不符合要求那么禁止提交,这样不但使得网络流量在很大程度

32、上得到削减,而且也使得效劳器的负担得到极大的减轻。接受Ajax技术向效劳器发送异步恳求,在创立好Xml Request对象后要猎取用户注册时所填写的用户名,而后再把验证恳求发送到效劳器端。2用户登录l 同学和老师用户通过系统主页登录。l 管理员通过后台的登录页面进入系统。 同学用户模块同学用户成功登录系统后,主页面显示了全部的课程列表,同学可以搜寻课程并查看自己课程下的全部提问,但无法查看未申请课程的提问。同学用户主界面显示了全部课程,实现了分页功能,工程中的FenYeAction类是所要用到的全局部页类的基类,单击用户名,可以进入同学的个人把握页面。 老师用户模块老师用户成功登录系统后,主页

33、面显示了自己的课程列表,具体页面与同学用户主页面类似,单击用户名,可以进入老师的个人把握页面 管理员模块管理员分为一般管理员和超级管理员,一般管理与与超级管理员相比只是少了对管理员进行管理的权限。接下来以超级管理员为例来描述管理员模块的具体设计与实现。管理员成功登录系统后进入系统的在线管理中心第五章 系统测试 测试目的软件测试的不但要对软件是否完成了你所期望的那些事情进行确认,还要对软件是否使用了正确的方式来完成这个事情进行确认,其目的之一便是确认软件质量。软件测试不但要测试软件产品自身,同时也包含对软件开发过程的测试。本系统在开发过程中通过了各项测试,测试工作与编码工作同时进行,每完成一个功

34、能的我都做了相关的测试工作,并且一一通过。在测试过程中,会觉察系统的不少问题,但是通过翻阅资料、上网查询以及向同学请教,成功地解决了测试中觉察的问题。在系统开发的过程中不消灭错误是不正常也是不行能的,通过这个工程的开发,我深刻体会到测试的重要性。下面我将对开发过程中的关键局部进行阐述。 系统关键局部测试分析 注册用户名唯一性验证本系统使用Ajax技术向效劳器发送异步恳求来进行验证,当输入焦点离开用户名输入框时便自动触发注册用户名的唯一性验证恳求 分页的实现系统中的很多页面都要实现分页的效果,因此在工程中开发了一个全局部页类的基类Action来实现分页 利用拦截器实现权限把握public class MyInterceptor extends AbstractInterceptor Override public String intercept(ActionInvocation invocation) throws Exception Map session = ().getSession();/得到session String result = "LOGIN"/返回结果字符串 if(&qu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论