数学与计算机科学学院毕业设计
2 系统关键技术介绍
2.1 SSH框架及优势
(1)典型的三层构架体现MVC(模型Model,视图View和控制)思想,可以让开发人员减轻重新建立解决复杂问题方案的负担和精力。便于敏捷开发出新的需求,降低开发时间成本。
(2)良好的可扩展性,ssh主流技术有强大的用户社区支持它,所以该框架扩展性非常强,针对特殊应用时具有良好的可插拔性,避免大部分因技术问题不能实现的功能。
(3)良好的可维护性,业务系统经常会有新需求,三层构架因为逻辑层和展现层的合理分离,可使需求修改的风险降低到最低。随着新技术的流行或系统的老化,系统可能需要重构,ssh构架重构成功率要比其他构架高很多。
(4)优秀的解耦性,很少有软件产品的需求从一开始就完全是固定的。客户对软件需求,是随着软件开发过程的深入,不断明晰起来的。因此,常常遇到软件开发到一定程度时,由于客户对软件需求发生了变化,使得软件的实现不得不随之改变。ssh三层构架,控制层依赖于业务逻辑层,但绝不与任何具体的业务逻辑组件耦合,只与接口耦合;同样,业务逻辑层依赖于DAO层,也不会与任何具体的DAO组件耦合,而是面向接口编程。采用这种方式的软件实现,即使软件的部分发生改变,其他部分也不会改变。
Struts、Spring、Hibernate是三个既相互独立又彼此关联的框架,它们可以无缝地整合起来构建灵活、易于扩展的多层Web应用程序,Struts用来实现表示层,Spring实现业务层,Hibemate实现持久层。
2.1.1 Struts2简介:
虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts1而言。Struts2 与Struts1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架WebWork基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts1的血统,而是继承WebWork的血统。或者说,WebWork衍生出了Struts2,而不是Struts1衍生了Struts2。因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了Struts1和WebWork两者的优势,因此是一个非常值得期待的框架。 Struts2优势:
(1)Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。 (2) Struts2强大的标签库提高开发效率。
(3)页面脉络清晰,通过查看配置文件把握整个系统的关系,方便开发人员岗位流动时的维护。 2.1.2 Spring简介:
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 Spring优势:
(1)Spring提供了一种管理对象的方法,可以把中间层对象有效地组织起来。一个完美的框架“黏合剂”。
(2) 有利于面向接口编程习惯的养成,使代码结构清晰。
3
数学与计算机科学学院毕业设计
(3) 采用了分层结构,可以增量引入到项目中。 (4) 目的之一是为了写出易于测试的代码。
(5)非侵入性,应用程序对Spring API的依赖可以减至最小限度。 (6) 一致的数据访问介面。 (7) 一个轻量级的架构解决方案。 2.1.3 Hibernate简介:
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 Hibernate优势:
(1) Hibernate是JDBC轻量级的封装,占用内存较少,性能比较高。与JDBC相比,如果开发JDBC的人员技术能力非常强,hibernate执行效率会比JDBC弱一些,但是大部分情况是程序员在使用JDBC时是不可能做到最高效率,hibernate可以帮大部分开发人员提高运行效率。
(2)可以引入第三方二级缓存,提高系统查询效率,减少系统里存在大量单例类(singleton),大量的单例类,会降低系统的可测试性和面向对象程度。
(3)优秀的ORM框架,理论上节省开发人员95%的开发工作量。 (4) Hibernate兼容JDBC。理论上可以应用在任何使用JDBC的场景。 2.2Internet终端
本系统采用的是B/S(Browser/Server)结构,它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。因此本系统访问方式是基于Internet终端的访问,用户只需要通过web浏览器就可以非常方便快捷地使用本系统服务器资源,系统让用户的操作变得简单与透明,系统的维护成本与工作量也得到减少。B/S构架使得本系统有易安装、易升级、成本低、可扩充等优势。 2.3Tomcat服务器
Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,sun和其它一些公司及个人共同开发而成。由于有了sun的参与和支持,最新的Servlet和JSP规范总能在Tomcat中得到体现。
Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和JSP文件或者包含这两种文件的目录,另外还会有一个WEB—INF目录,这个目录很重要。通常在WEB—INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和JSP或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB一INF下的lib目
4
数学与计算机科学学院毕业设计
录下。Tomcat应用程序的部署很简单,只需将使用者的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。在浏览器中访问这个应用的JSP时,通常第一次会很慢,因为Tomcat要将JSP转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,可以在远程通过Web部署和撤销应用。
Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理JSP和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。因为Tomcat的免费并且具有开放性,功能强大。因此,选择了Tomcat作为独立运行Web服务器和JSP引擎。 2.4Mysql数据库
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越。与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余。
5
数学与计算机科学学院毕业设计
3 系统需求分析
3.1用例需求 3.1.1用例图简介
用例图(Use Case Diagram)是一个UML中非常重要的概念,在使用UML的整个软件开发过程中,Use Case处于一个中心地位。用例是对一组动作序列的抽象描述,系统执行这些动作序列,产生相应的结果。这些结果要么反馈给参与者,要么作为其他用例的参数。用例被认为是第二代面向对象技术的标志。显示多个外部参与者以及他们与系统提供的用例之间的连接。用例是系统中的一个可以描述参与者与系统之间交互作用的功能单元。用例图仅描述系统参与者从外部观察到的系统功能,并不描述这些功能在系统内部的具体实现。本系统所采用的工具为Microsoft Visio 2003。 3.1.2 系统总体用例图
根据调查及对整个系统分析的结果,按照结构化的系统设计方案,此系统可以分为两种用户,即学生、教师、管理员。
其中学生端共有五个用例,分别如下:
(1)登录:学生根据自己的用户名和密码登录到系统中。
(2)资料管理:学生可以查看、修改自己的个人资料及密码等信息。
(3)在线考试:学生可以查看所需要进行的考试科目,若已经考过了则不会显示。 (4)成绩查询:学生可以查看已经考过试的相关科目的成绩的相关信息。 (5)退出系统:学生突出当前考试系统。
图3-1 学生端用例图
其中教师端共有六个用例,分别如下:
(1)登录:教师根据自己的用户名和密码登录到系统中。
(2)学生管理:教师可以增加、查看、修改、删除学生的个人资料及密码等信息。
6
数学与计算机科学学院毕业设计
(3)试题管理:教师可以增加考试科目, 删除、修改科目,增删该对应科目下的试题。 (4)成绩管理:教师可以查看所有学生的考试相关信息,及学生个人的成绩详细信息。 (5)登录管理:教师可以查看相关人员登录该系统的相关情况,查询、删除。 (6)退出系统:教师退出当前考试系统。
图3-1 教师端用例图
其中管理员共有七个用例,分别如下:
(1)登录:管理员根据自己的用户名和密码登录到系统中。
(2)学生管理:管理员可以增加、查看、修改、删除学生的个人资料及密码等信息。 (3)试题管理:管理员可以增加考试科目, 删除、修改科目,增删该对应科目下的试题。 (4)成绩管理:管理员可以查看所有学生的考试相关信息,及学生个人的成绩详细信息。 (5)登录管理:管理员可以查看相关人员登录该系统的相关情况,查询、删除。 (6)教师管理:管理员可以增加教师,修改,删除教师。 (7)退出系统:管理员退出当前考试系统。
7