《基于JavaEE的毕业设计选题测试及管理系统的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于JavaEE的毕业设计选题测试及管理系统的设计与实现毕业论文.doc(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、毕 业 论 文 题 目 基于JavaEE的毕业设计选题测试及管理系统的设计与实现 英文题目 Design and Implementation of The Graduation Design Topics Selection Testing and Management System Based on JavaEE 院 系 专 业 计算机科学与技术 姓 名 班级学号 指导教师 二一二年五月摘 要基于JavaEE的毕业设计选题测试及管理系统通过在毕业设计选题之前的测试来判断学生能力,指导学生选择自己优势方向来选择题目,能够更好帮助毕业生正确选题。系统提供给学生有在线测试、查看评测结果、查看评测
2、报告、推荐导师和课题、提交论文、下载论文等功能。系统提供给老师管理课题、查看学生测试结果、提交课题研究建议、查看学生论文、上传批阅的论文等功能。系统提供给系统管理员有管理用户信息、管理题库等功能。系统采用的Struts架构是对MVC设计模式的一种实现,它继承了MVC设计模式的所有特性,组件的模块化、重用性、灵活性使得开发更加快捷,管理和维护更加方便。学生测试后可以更了解自己的专业水平,通过系统推荐的导师和课题,可以帮助学生更好的选择导师。导师可以通过系统更全面的了解学生的各方面能力同时选择学生。在学生与导师双向选定后对学生论文的进度跟进,论文批改工作方面也起到了一定的协助作用。关键词:Stru
3、ts,选题测试,论文管理AbstractBased on JavaEE the Graduation Design Topics Selection Testing and Management System can determine the ability of the students according to the testing result. The System can guide the students according to their own advantages to choose a topic, and help to evaluate them and sel
4、ect topic correctly. The system provides students with online testing, show evaluation results, show testing scores, recommend tutors and thesis, upload thesis, and download thesis and some other functions. The system provides teachers to submit topic, search student testing scores, provide the reco
5、mmendation of thesis, download students thesis, and upload students thesis. As system administrator can manage all the users information and manage all the questions information. Struts framework is a realization of MVC design pattern. It inherited all the characteristics of MVC design pattern. Its
6、modularity, reusability, flexibility make the process of development more efficient and convenient.After testing, students can better understand their professional level. Through the recommendation by the system, students can select their tutors better; tutors can have a more comprehensive understan
7、ding of all aspects of students ability. The system also has assistant function in following the track of papers writing and in correcting the papers. Key words: Struts, Topics testing, Paper management 目 录摘 要IAbstractII1 概 述1.1课题意义(1)1.2课题目标(1)1.3论文结构简介(2)2 技术介绍和分析 2.1 Struts简介(3)2.2 Mysql简介(3)2.3
8、Myeclipse简介(4)2.4 Rational Rose简介(5)3 系统需求分析3.1系统概述(7)3.2系统功能分析(7)3.3系统用例建模(9)4 系统设计4.1设计目标及原则(15)4.2系统总体架构设计(16)4.3系统数据库设计(17)4.4(Web)表示层设计(18)4.5业务逻辑层设计(20)4.6(DAO)数据访问层设计(21)5 系统实现5.1开发环境配置(24)5.2(Web)表示层实现(25)5.3业务逻辑层实现(27)5.4(DAO)数据访问层实现(29)6 系统测试6.1冒烟测试(33)6.2功能测试(34)致 谢(38)参考文献(39)391 概述1.1 课
9、题意义毕业设计是对大学生们在大学期间所学的所有知识的掌握程度进行考核。现在很多学生对大学学习的知识没有进行过系统的应用和总结,不了解自己总体的水平、优势和劣势。导师与学生之间的交流还停留在纸质论文交流的方式。由于不少学生正式选题时不了解有哪些导师的研究方向适合自己,造成选题盲目甚至做出来的毕业设计不符合要求等现象。出题的教师出题前也没有渠道来充分了解学生具体情况,设置的选题可能无法体现学生的技能水平。学生在制作毕业设计期间与老师要进行频繁的交流,特别是在毕业论文的修改、提交、审核、评阅、意见反馈,毕业设计制作进度的监督、系统质量的监督方面。本系统就是为了方便学生科学的了解自己的专业技能水平,根
10、据自己有优势的方面选择毕业设计,方便导师与学生之间的交流和学生顺利完成毕业设计而提出来的采用当前流行架构和技术完成的系统。1.2 课题目标通过本课题的研究和课题系统的实现,可以让学生以学生身份登录,通过学生的在线测试系统将提供测试结果,根据测试结果再提供给学生选题建议,如适合选择的课题和导师。撰写论文期间可以上传写好的论文和下载导师批改过的论文,导师可以以教师身份登录,给每个选题填写题目要求和对学生的期望要求,可以查看学生的评测结果,对所带的学生提交的论文可以下载下来进行审阅,并提交到系统供学生查看。管理员通过该系统对所以系统用户进行管理,对题库进行管理。最终系统能帮助学生选题和教师出题,以及
11、毕业论文高效设计和制作,搭建教师与学生的有效交流平台。1.3 论文结构简介系统是根据软件工程中软件开发过程来制作的,首先进行的是可行性研究,需求分析,总体结构设计,详细设计,编码实现,系统测试,最后是系统维护。根据这个过程来组织论文的结构如下:(1)概述:主要叙述课题研究对用户的意义,介绍最终系统应该完成的功能和达到的效果。(2)技术介绍和分析:对系统所用的技术和工具作比较和介绍,阐述使用各项技术和工具的优势。(3)需求分析:根据实际的应用和用户需求概述得到开发的系统的需求,通过对角色的分析得到系统使用对象的特点和功能需求。根据用户之间的关系为系统内部逻辑的设计和数据库的设计提供参考。(4)系
12、统设计:根据系统需求设计系统总体的架构和数据库。并解析JavaEE技术在各层之间的具体应用。(5)系统实现:根据系统设计,阐述系统功能实现过程、数据库创建过程、前后台工作过程。通过对学生选题测试功能中Struts架构的运作过程来更具体的阐述实现过程。(6)系统测试与维护:通过测试工具的使用,测试系统是否符合用户需求。通过测试完善系统,改进系统,改正系统中存在的隐含的缺陷。小结:通过本节的介绍,使得对系统的制作的意义和目的进一步细化。坚定了实现系统的决心,并对完成系统有了大概的总体把握。2 技术介绍和分析2.1 Struts简介Struts框架是一种流行的MVC框架,它是对MVC的实现1,将Se
13、rvlet和JSP标记作为实现的一部分。Struts最早是作为Apache基金会Jakarta项目组的组成部分Open Source项目,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。Struts采用MVC模式,能够很好的帮助Java开发者利用JavaEE开发Web应用。Struts的使用能够很好的帮助开发团队减少在运用MVC设计模型来开发Web应用的时间。它的优势主要集中在:(1)是一款开源软件,开发者可以深入了解其内部实现机制,各种开发要用的jar包可以通过网络下载到本地,非常便捷。(2)有自己的标记库即Ta
14、glib,一方面使得JSP页面尽可能少的嵌入Java脚本,不必考虑Java语法或其他JSP语法专注于页面的可视特征上。另一方面给应用开发者很强的后台支持。(3)页面导航功能,通过一个配置文件struts.xml来控制整个系统各部分之间的联系,对各个页面的请求进行分发。对后期的系统维护提供了很大的便利,对系统的脉络也更加清晰。Struts在实现MVC模型时,模型层是将模型分为系统的内部状态和事物逻辑两个部分,内部状态通常由一组ActionForm JavaBean表示,大型应用程序的事物逻辑封装在方法内部,小型应用程序则可能内嵌在Action类中。视图层由JSP建立,应用Struts的标签库。控
15、制层用的是继承自ActionSupport的Action类,实际操作中是在struts.xml配置文件中进行Action映射。2.2 Mysql简介Mysql是目前非常流行的SQL语言数据库,是开放源代码的非商用的关系型数据库。由于其开源性使得当前很多系统都使用Mysql数据库。虽然是免费的但是与同类商业用途的数据库比并不逊色。其主要特性有:(1)数据的物理存储和存取路径对用户是不透明的,这样也减少了用户的使用难度。对数据库不是十分了解的用户使用起来比较简单。(2)不仅在WINDOWS操作系统还可以在LINUX、UNIX、SUN OS等操作系统上使用。(3)Mysql提供了不同的数据类型供选择
16、,支持所有的SQL数值类型。根据数据结构可以选择不同格式和大小的数据类型,使得磁盘空间更加节省,数据库的性能的到提高。如:char提供的是定长的数据存储类型使得检索该类型的数据比较快,varchar类型的数据可以保存变长的字符串,通过设置其最大可存储的数据的长度可以在不知道数据长度的情况下存储任何小于该最大长度的字符串。(4)查询功能很强大,支持SELECT和WHERE语句的count()、avg()、min()、sum()函数和order by等命令,使得检索时可以进行一些运算,对检索出来的结果可以进行一些处理。(5)支持多个用户对数据库的同时访问。与另一个比较常用的Access数据库比较,
17、Access只能运行在Windows操作系统,适合数据量小的数据存储,但数据量太大时会造成服务器死机有时甚至服务器崩溃。本系统是面向信息学院所有学生和教师的,要存储学生信息和教师信息以及题库信息,不适合使用Access数据库。而开发的系统对数据的查询和速度要求比较大,所以使用Mysql数据库更加适合本系统。2.3 Myeclipse简介Myeclipse是企业级工作平台是对Eclipse IDE的扩展,它是功能非常丰富的JavaEE的集成开发环境,在Myeclipse下可以对系统进行编码、调试、测试和发布,另外支持html的所有标记。在使用Myeclipse时对代码能进行提示功能,并且对语法的
18、错误能提示和定位错误。对于一些代码如JavaBean中的Get和Set方法可以自动生成相应的代码,节省了工作量。Myeclipse就是Eclipse的插件,它结构上是模块化得,在不影响其他模块的情况下可以对任一模块单裤升级和扩展。系统开发时使用的是Myeclipse 8.0版本,从Myeclipse 5.0版本就增加了UML双向建模工具、可视化的Hibernate/ORM工具、Web services支持和Oracle数据库开发等。之后出现了Myeclipse6.XGA版本,它兼容了Eclipse 3.3,可在WINDOWS,LINUX等操作系统上运行,并且支持Java持久化结构开发,能够对项
19、目自动部署和启动服务,另外还集成了Myeclipse Tomcat 6服务器。随后又出现了Myeclipse 7.0和8.0版本,7.9版本已经不需要配置Tomcat,只需安装好Myeclipse7.0即可,而8.0版本新增了对Struts2的支持。2.4 Rational Rose简介Rational Rose是由美国的Rational公司开发的一种面向对象的可视化建模工具。利用Rational Rose可以建立用UML(统一建模语言)描述的软件系统模型,而且可以自动生成和维护C+、Java、Visual Basic和Oracle等语言和系统的代码。Rational Rose 包括了统一建模
20、语言(UML)、面向对象的软件工程(OOSE)及对象建模技术(OMT)2。Rational可以运行在WINDOWS操作系统下,其主要的特点有:(1)保证模型和代码高度一致,它实现了正向和逆向和双向工程。它可以更具模型生成代码,也可根据软件系统导出系统的模型。(2)支持多种语言,Rational Rose支持包括C+、Visual C+、Java等语言,为Rational Rose用户提供了便利。(3)为团队开发提供强有力的支持,它提供了蔡荣SCM(软件配置管理)的团队开发方式和没有SCM下的团队开发方式,用户可以根据具体项目规模和资源选择。(4)支持模型的Internet发布,Rose中有In
21、ternet Web Publisher能将模型发布为HTML版本,使得其他人员可以通过IE等浏览器浏览模型。(5)生成使用简单且定制灵活的文档,Rose中的文档生成工具SoDA可以提供模型文档模板,可以自动生成Word格式的文档。(6)支持关系型数据库的建模,Rose能为SQL Server、Oracle等支持标准DDL的数据库自动生成数据描述语言。小结: 在选择开发和设计使用的工具时并不是选择最好的而选择的是比较适合本系统的工具。Struts使得开发的项目层次分明,便于管理。Myeclipse的高度集成性使得与其它软件的合作性比较好。Rational Rose在建立系统模型过中起到了非常重
22、要的作用。3 系统需求分析系统需求分析是在需求获取结束之后进行的,主要是根据获取的需求提炼、分析和仔细审查收集到的需求,以确保项目参与者都明白其含义并分析每个需求与其他需求的关系,找出其中的错误、遗漏、重叠、不一致或其他不足的地方。通过分析得到系统可以实现的范围和实现能力,根据用户的需求对需求进行排序。系统需求分析的目的在与开发出高质量和具体的需求,为软件设计和实现提供依据。3.1 系统概述基于JavaEE的毕业设计选题测试及管理系统要求学生在设计选题前期参加平台提供的测试了解自己的专业知识掌握能力和动手能力,以便选题。同时也为教师了解学生具体情况提供参考,确保毕业论文(设计)选题工作的顺利开
23、展。此外系统也要解决毕业设计的相关管理业务功能,包括学生与教师在毕业设计制作期间的论文交流功能。为了保证系统能发挥其作用,系统管理员要把所有学生和教师信息和测试用题库按照数据库相应的表的要求存入数据库中,导师在学生测试之前应该提供所有可选的课题和课题建议和每个课题特别要求哪些课程信息到系统。系统的功能应该包括所有用户的合法登陆,系统根据学生所在专业设置的课程出题,从学生的测试结果来判断和推荐适合该学生做的课题和适合选择的老师。教师可以从系统中查看预先选择了自己的学生的测试成绩。在毕业设计制作期间,学生可以通过系统来与导师交流制作的论文等。该系统使用应该尽量简单,容易被理解。3.2 系统功能分析
24、系统功能分析可以帮助将整个系统的任务细化成较小的模块,将一个大问题进行分解。为了能够实现学生的专业知识掌握能力和动手能力的测试、教师通过学生的测试成绩来了解学生综合能力,系统管理员对系统的后台数据库进行管理,系统应该分别对这三个角色的功能进行实现。系统按角色的功能分为三大功能模块,如图3-1所示。学生操作教师操作管理员操作选题测试管理个人信息上传论文预选老师保存测试报告管理题库信息管理用户信息管理员登陆查看测试结果毕业设计选题测试及管理系统功能下载教师批改论文修改密码管理课题信息学生登陆管理课程信息查看学生测试成绩管理学生预选信息教师登陆管理个人信息管理学生论文管理课题信息分配课题图3-1 功
25、能模块图每个功能模块之间是相互独立的。3.3 系统用例建模系统的角色是指系统外部的实体,一般系统参与者为系统用户、与所建造系统交互的其他系统和一些可以运行的进程。由于本系统与其他系统和进程没有直接的联系,是一个独立的系统,所以系统主要参与的角色分为三个:学生、教师和系统管理员。对于不同角色使用该系统是要保证系统部分信息已经完善,部分用例有时间上的优先顺序。所有用户使用系统时必须先登录,学生和教师的部分必填的个人信息要导入到系统中,教师在学生测试之前要完成对课题的设置和课题建议工作。从系统概述可得到,学生参与者具有的功能如图3-2所示。图3-2 学生用例图student(学生)的用例有:logi
26、n:登陆系统logout:退出系统testing:测试 extract_questions:抽取试题answer_questions:回答测题submit_test_paper:提交考卷manage_personal_infor:管理个人信息view_personal_infor:查看个人信息change_password:修改密码view_test_result:查看测试结果view_test_report:查看测试报告save_test_report:保存测试报告manage_thesis:管理论文upload_thesis:上传论文download_thesis:下载已批改论文apply
27、_teacher:预选导师对于学生的功能可以看到选题测试功能包括:抽取试题、回答问题、提交答卷用例。选题测试用例说明:前置条件:进入主页面,登录系统。基本事件流:1. 输入用户名、密码和用户身份2. 点击“登录”,系统通过对用户信息验证和数据库中用户信息的对比检测用户的合法性,如果用户合法则进入学生后台管理首页3. 单击“我要测试”菜单下的“开始测试”,如果用户还未测试则进入测试页面4. 单击“抽取试题”按钮,做完测题后,单击“提交答卷”按钮,测试完毕备选事件流:1. 当用户输入的用户名或密码为空时,系统将不进行跳转,不出现用户操作页面2. 当用户已经测试,则不跳转到测试页面,而是跳转到提示已
28、经测试的页面后置条件:用户测试完成,得到测试结果和测试报告。教师实体具有的功能如图3-3所示。图3-3 教师用例图teacher(教师)的用例有:login:登陆系统logout:退出系统attribute_thesises:分配课题manage_student_thesis:管理学生论文fill_in_thesis_requirement:填写课题要求课程view_student_test_result:查看学生测试结果manage_apply_information:管理学生预选情况manage_thesis:管理课题add _thesis:添加课题delete_thesis:删除课题up
29、date_thesis:更新课题view_thesis:查看课题manage_personal_infor:管理个人信息change_password:修改密码view_personal_infor:查看个人信息教师的主要功能给出选题内容及建议,通过查看学生的测试结果和测试报告了解学生情况。查看学生测试结果用例说明:前置条件:用户登录成功,学生完成测试。基本事件流:1. 输入用户名、密码和用户身份2. 点击“登录”,系统通过对用户信息验证和数据库中用户信息的对比检测用户的合法性,如果用户合法则进入教师后台管理首页3. 教师点击“学生测试成绩”菜单下的“查看测试成绩”,系统查找到学生测试成绩,提
30、取学生测试信息返回显示备选事件流:学生未测试则提示学生尚未有测试结果。后置条件:显示学生测试成绩系统管理员实体具有的功能如图3-4所示。图3-4 管理员用例图administrator(管理员)的用例有:login:登陆系统logout:退出系统manage_users_infor:管理用户信息add_user_infor:添加用户信息delete_user_infor:删除用户信息update_user_infor:更新用户信息select_user_infor:查找用户信息manage_questions_infor:管理题库add_questions_infor:添加测题delete_q
31、uestions_infor:删除测题update_questions_infor:更新测题view_questions_infor:查找测题manage_thesis_infor:管理课题信息view_thesis_infor:查看课题信息update_password:修改密码管理员的主要功能之一是对学生信息进行管理。学生信息管理用例说明: 前置条件:管理员合法登陆,进入管理员后台管理首页基本事件流:1. 单击“学生信息管理”菜单下的“查看学生信息”菜单,系统从数据库选出所有学生信息在页面显示2. 单击一条学生信息记录后的“编辑”按钮,对信息进行修改单击“确定”3. 单击一条学生信息记录后
32、面的“删除”按钮,对信息进行删除备选事件流:当用户表中数据的外键被修改时,如果与外键所在基本表中数据不符合,则无法修改。当用户要管理的表格中数据为空时,系统不显示数据。后置条件:数据管理成功,数据库保存修改后的表信息,数据库删除记录。小结: 系统需求分析需要注意很多原则,避免出现的需求出现冲突。通过分析得到的需求还必须与用户所要的需求相一致。如果对用户的需求误解了将对以后的系统的设计和实现造成很大的误导,并且不好改动,所以这一步需谨慎。通过对系统进行需求分析,对系统的实现更加细化和明确。4 系统设计系统设计时站在对系统规划的角度来考虑系统该如何实现、如何将需求转换为软件设计的问题。系统设计分为
33、概要设计和详细设计。根据软件工程中软件设计的抽象与逐步求精原则5,先从系统的整个结构出发来设计系统总体架构设计,再设计系统需要实现的功能模块、系统界面、数据库表等。4.1 设计目标及原则随着科技的发展,越来越多的自动化的产品被应用于生活中,特别是年轻人对这些数字化产品特别热衷,这样使得现在的孩子们都不愿意去使用不易理解,使用复杂的产品。从用户的使用感受考虑,系统设计时应该尽量以使用简单、操作一目了然、界面友好、有交互性为主。基于主要用户为学生团体,所以界面风格上设计的要清新,美观。对于不同专业的学生要评测出真实的水平,测试系统题型应该与学生所学专业设置的课程挂钩,并且有难易程度的过度。软件总体
34、框架要以JavaEE思想来设计。对于数据库的设计,要充分考虑到数据的存储需求并充分利用不同数据类型的优势来选择存储数据类型。最终的系统能够实现所有需求获取阶段得到的需求,主要是学生在线测试和对测试进行分析的功能以及论文交流的功能,能够使老师通过系统了解学生的优势和劣势,对导师真正出毕业设计选题提供参考。系统设计还应该以易于实现、易于测试、易于维护为基本理念。系统设计的原则是指导设计过程的。为了能设计出符合需求的系统,设计时要遵守以下原则:(1)结构应该分层次,从而建立软件成分之间的控制6。(2)设计应当模块化,逻辑上将软件划分为完成特定功能或子功能的部件。(3)设计应该包含数据抽象和过程抽象(
35、4)模块与外部环境之间的接口尽量少(5)系统尽量简单,减少处理的时间和费用(6)系统数据的一致性,对于系统中的相同信息的显示和存储要一致(7)系统具备一定的出错处理功能,提高系统的可靠性。4.2 系统总体架构设计系统采用的是JavaEE技术,总共分为表示层、业务逻辑层、数据访问层三层来考虑。系统体系结构如下图4-1所示。Web浏览器Web表示层(JSP、Action)业务逻辑层(Service)DAO层(DAO)数据库Struts技术HTTP请求HTTP响应图4-1 体系结构图通过Web浏览器来作为MVC架构的视图层。Web表示层用于获取提交的数据、显示请求的业务功能返回的数据。业务逻辑层是处
36、于承上启下的位置,它完成了DAO层的调用又被Web表示层调用。DAO层调用Bean中对象实现持久化方法,对关系数据库进行操作。系统运作流程为Web浏览器发送HTTP请求给JSP页面,在JSP页面中请求某项业务,JSP将调用Service层对业务实现的功能函数,Service层在调用不同的DAO层中的方法,DAO层每个被调用的方法则实现了对数据库的操作,操作完成后将数据库的数据返回给DAO层中的方法,DAO层再返回数据给Service层,Service层将数据返回给JSP页面,JSP通过Struts2标签、HTML标记来显示数据,返回HTTP响应到Web浏览器。此时一次请求服务完成。4.3 系统
37、数据库设计根据对系统的分析得到如下的实体关系图如下图4-2所示:图4-2 系统E-R图从图中可以看到各个实体间的联系。关系型数据库要满足三类完整性约束,即实体完整性,参照完整性,用户自定义的完整性7。通过这三个约束将实体型转换得到关系模式即为数据库的逻辑结构设计:学生(学号,学生姓名,登陆密码,性别,专业号,邮箱号,测试标记)课程(课程号,课程名,专业号)教师(教师号,教师姓名,登陆密码,性别,允许指导学生数,学院号,邮箱号)管理员(管理员号,管理员姓名,登陆密码)专业(专业号,专业名,学院号)学院(学院号,学院名)学生测试课程(学号,课程号,课程名,得分,测试日期)问题(问题编号,问题内容,
38、选项A内容,选项B内容,选项C内容,选项D内容,答案选项,分数,课程号)论文指导(学号,论文号,论文主题,学生论文存放位置,更新标志,学生上传日期,教师号,教师论文存放位置,教师上传日期)课题(课题号,课题名,出题日期,课题介绍,课题研究建议,教师号)课题要求(课题号,课题名,课程号,课程名)预选老师(学号,教师号,预选标志,教师同意标志,拒绝原因)4.4 (Web)表示层设计表示层是服务器与用户之间的接口。根据所见即所得原理,表示层将业务逻辑层返回的数据以用户能理解的形式在页面中显示,用户通过表示层提供的接口输入数据,通过页面来传递数据到后台业务逻辑层进行处理。本系统的表示层主要通过不同的A
39、ction控制在JSP页面体现。其中又用到了Struts2的标签和Ajax技术。Struts2标签使得数据显示更加更加方便,代码量减少,同时数据传输方便。当业务逻辑层将数据传递给相应的Action后,通过struts.xml中的映射来跳转到相应的JSP页面,在页面中使用Struts2标签就可以将传递过来的参数显示在页面中。用户在使用系统时更希望界面简单,操作简便,有尽量少刷新操作和等待时间。Ajax技术实现了浏览器与服务器之间数据的异步传输,Ajax中是使用JavaScript来传递数据给业务逻辑层,业务逻辑层将处理后要返回的数据传回给请求数据的客户端JSP页面,页面再通过DOM(Docume
40、nt Object Model)显示新数据,在整个过程中用户可以不手动刷新页面。为了更好的实现导航的功能,系统表示层设计时,让不同角色的用户的操作都显示在导航栏,当页面跳转时,导航栏不会改变位置,而请求的页面则显示在一个固定的框架中。在页面显示数据时传递的是对象数组。根据需求分析得到学生登陆后的业务功能实现如下活动图4-3所示。图4-3 学生活动图当学生为登陆后可以进行测试或查看个人信息,如果还未进行测试则测试成绩、测试报告、预选老师业务都无数据显示,如果已经测试则可以查看到测试成绩、测试报告、预选老师、退出系统。学生选题活动图如图4-4所示。图4-4学生选题活动图学生首先进行测试,系统根据学
41、生擅长的课程推荐课题及老师,学生预选课题对应的老师。老师通过查看预选了课题的学生的测试成绩决定是否同意学生预选。老师同意学生预选则可以分配课题给学生,学生可以查看课题信息;拒绝则给出拒绝信息,学生可以查看老师拒绝信息。4.5 业务逻辑层设计业务逻辑层(Service层)主要是针对不同的业务需求来调用数据访问层(DAO层)的方法,从而实现不同业务需求功能。业务逻辑层提供了一系列可提供给用户的服务,是对用户问题提供解决的方法。业务逻辑层的实现是通过调用数据访问层的方法来实现的。业务逻辑层不需要知道如何操作具体数据,只要知道通过DAO层的什么方法得到什么参数,或者传递什么参数从而能达到功能的实现。对
42、于数据访问层而言,业务逻辑层主要充当的是调度者的角色,而对(Web)表示层而言,业务逻辑层充当的是被调度的角色。当学生申请导师时要传递学号和教师号到Service层来调用Service层的申请方法,Service层将参数传递至DAO层,DAO层再调用数据库操作方法,操作完成后以applyInfor对象的形式返回申请导师表中的一条记录,其中applyInfor中的学号stuNum和教师号teacherNum分别依赖于学生表student中的学号和教师表teacher中的教师号,具体如图4-5所示。图4-5 预选导师过程使用的类图Service层的applyInforSI对象中的setApplyF
43、lag()方法为预选导师时调用的方法,该方法调用了DAO层applyInforDI对象的setApplyFlag()方法。4.6 (DAO)数据访问层设计(DAO)数据访问层主要实现的功能是对数据库中的数据进行操作,简而言之就是一系列的对数据库中的记录进行增加、删除、修改、查找操作。DAO层调用了Bean实体类,使用SQL语句来操作数据库,为了体现类的封装性,实现时则是调用封装好的数据库操作对象中的方法来实现对数据库的操作。从数据库设计中得到相应的DAO层的设计如图4-6所示。图4-6 DAO层设计的类文件adminDI.java:对管理员表进行操作applyInforDI.java :对学生
44、预选导师表进行操作courseDI.java:对课程表进行操作instituteDI.java:对学院表进行操作majorDI.java:对专业表进行操作pageDI.java:对上下页跳转进行判断questionDI.java:对测题表进行操作stuCourseDI.java:对学生测试课程表进行操作studentDI.java:对学生表进行操作teacherDI.java:对教师表进行操作thesisInforDI.java:对课题表进行操作thesisRequirementDI.java:对课题要求表进行操作DAO层与数据库操作对象间的类图如图4-7所示。图4-7 测题DAO操作测题信息
45、表类图测题DAO(questionDI)通过数据库连接connect类中的连接数据库的方法来获取数据库连接,再将连接和SQL语句传递给数据库操作dbOperator类中的方法来实现对数据库中question表的操作。questionDI中对测题question对象进行了实例化作为DAO层的返回参数。小结: 系统设计在软件工程中占了很重要的角色,并且是占用整个开发周期中比较长时间的阶段。系统设计的好坏直接影响系统实现时的复杂度,如果设计时对需求分析不充分则业务功能模块就会缺少从而影响系统功能。通过对系统设计的分析知道该从哪个方面开始着手做,并且清楚了每个角色的操作。对数据库每个字段的设计意义也更
46、明确。理解了整个JavaEE在系统架构中的表现形式。5 系统实现系统实现是系统设计之后的工作,是将系统设计转换为可执行的程序代码的过程。只有在对数据库设计、系统结构充分分析之后进行系统开发工作才能符合需求。系统实现需要掌握系统开发工具的使用方法和程序设计语言,本系统主要应用程序设计语言有Java、Javascript,开发技术有Struts、Ajax。系统实现按功能模块的划分来分别实现,循序渐进。5.1 开发环境配置本系统的技术要求是基于JavaEE的Web应用系统。所以要从硬件和软件两个方面考虑来配置系统。从系统硬件需求角度出发,系统是在个人PC机上开发的,普通的PC机的配置即可用于开发本系统。从软件角度出发,系统需配置Web系统开发工具,所以选择了Myeclipse 8.0作为开发软件。由于用到的数据很多,为了便于管理和使用的快速、稳定,选择MySQL Server 5.1作为系统的数据库。因为MySQL数据库是要通过SQL命令来操作的不是很方便,为了对数据库的操作能更简便,系统还需安装Navicate Lite 8.2,这是一款具有可视化图形用户界面,操作安全简便的MySQL数据库服务器管理和开发工具。系统采用的是Tomcat作为Web应用服务器,Tomcat技术先进、性能也很稳定,是当前非常受欢迎的一款服务器。首先,从各个官方网站下载好