《J2EE系统架构和程序设计》课程设计实训项目——基于Struts +Hibernate架构的在线考试系统概要设计说明书_第1页
《J2EE系统架构和程序设计》课程设计实训项目——基于Struts +Hibernate架构的在线考试系统概要设计说明书_第2页
《J2EE系统架构和程序设计》课程设计实训项目——基于Struts +Hibernate架构的在线考试系统概要设计说明书_第3页
《J2EE系统架构和程序设计》课程设计实训项目——基于Struts +Hibernate架构的在线考试系统概要设计说明书_第4页
《J2EE系统架构和程序设计》课程设计实训项目——基于Struts +Hibernate架构的在线考试系统概要设计说明书_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料j2ee系统架构和程序设计课程设计实训项目基于struts +hibernate架构的在线考试系统概要设计说明书1.1.1 引言1、编写目的说明编写这份概要设计说明书的目的,指出预期的读者2、概要设计说明书目的本概要设计说明书说明了在线考试系统设计的整体结构。3、预期读者本系统开发人员及维护人员。4、定义(1)gb:中华人民共和国国家标准的英文缩写字母(2)构件:具有某种功能的可重用的软件模版单元,表示了系统中主要的计算元素和数据存储。(3)逻辑视图:描述支持系统的功能需求的视图。(4)开发视图:也称模块视图,主要侧重于软件模块的组织和管

2、理描述。5、参考资料(1)j2ee项目实训hibernate框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社 2008 年5月(2)j2ee项目实训spring框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著 清华大学出版社 2008 年5月(3)j2ee项目实训uml及设计模式(21世纪高等学校实用软件工程教育规划教材)杨少波编著 清华大学出版社 2008 年5月(4)j2ee项目实训struts框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著 清华大学出版社 2008 年10月(5)jsp与数据库连接 刘瑞挺,高等教育出版社(6)数据

3、库原理与方法 郑若忠 王鸿武,湖南科学技术出版社(7)软件需求 (美) karl e.wiegers 著,刘伟琴 刘洪涛 译1.1.2 系统架构设计1、需求规定本系统设计是将后台部分的入口放在主页面上,以方便系统管理人员的通用化管理。当系统管理员登陆系统首页面时,在系统的最上方会出现管理员登陆的入口,可以从此进入后台管理页面。同时在系统后台和前台的设计上,系统采用了共同的页面开发模式和组件调用模式,其中的文件头和文件尾等部分是相互通用的。在系统主页中,从页面头、版面列表、用户来访信息、文件尾等部分都进行了抽象提取,这样在需要用到某部分的页面时,只需要进行相关的包含或者利用模板技术来引用。对于网

4、站风格方面,应该尽量做到网站结构简单明了,结构条理清晰,页面精美、功能实用;而对于版面方面的要求,则应该设计构思力求精巧、布局要求简捷合理、网站整体设计风格统一。2、系统概述考虑到b/s软件体系结构的优点如下:(1)b/s体系结构主要是利用不断成熟的www浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件体系结构。(2)基于b/s体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。(3)b/s体系结构

5、还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。(4)同时轻量级容器的设计能够消除与传统 j2ee api 有关的不必要的复杂性和限制,从而有助于降低开发成本;业务逻辑实现采用pojo,所以不再必要部署到容器中,可以在容器外开发实现,缩短应用程序的部署时间;所测试的单元组件不必在容器中运行,因此可以选择模拟(mock)测试技术。所以,本系统采用b/s,并且采用j2ee平台中的轻量级框架技术。3、本系统采用b/s结构 在线考试系统采用b/s结构,原因如下:(1)b/s体系结构主要是利用不断成熟的www浏览器技术结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要

6、复杂的专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件体系结构。(2)基于b/s体系结构的软件,系统安装、修改和维护全在服务器端解决用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了零客户端的功能,很容易在运行时自动升级。(3)b/s体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。4、采用j2ee系统架构vs.net架构是微软vs.net是微软公司在其著名的 windows dna 基础上推出的技术产品实现,在线考试系统采用j2ee架构而不是vs.net架构,原因是j2ee具有更强大的信息共享和服务集成功能:(1)很多大牌厂

7、商都对其全力支持j2ee所具有的开放性、跨平与台性、安全性让很多大牌厂商都对其全力支持。无论是硬件平台、操作系统、数据库、中间件、应用系统都有很多的选择,只需开发一次,就可以为不同需求的客户完成不同级别的方案。(2)能够使企业占领高端市场而许多高端用户对于windows平台的稳定性、可靠性与可扩展性都有所怀疑。(3)java现在也不“纯洁”了sun、oracle、ibm等大牌厂商虽然都宣称全力支持j2ee,但各家的方案各有不同。ibm号称提供全方位解决方案,使用db2作数据库,以websphere作为中间件开发平台,开发工具是visualage-全部是ibm自己的体系。而作为sun one开放

8、网络环境的核心,j2ee号称是开放体系,其中任何一部分都可以更换其他符合标准的产品。但在实际使用时,也还是有这样那样的兼容性问题。(4)“java的平台无关性”的优点不仅可以部署在windows环境中;客户当然也可选择健壮性能更好的操作系统如sun solaris、ibm os/390。5、采用轻量级架构由于在线考试系统业务功能简单,采用重量级ejb,肯定会产生“重”甚至“累赘”的负担,轻量级容器的设计目标是为了能够避免如下所有这些麻烦事情,基于以下的各个优点,我们决定在本项目中采用轻量级的框架技术:(1)降低开发过程中的复杂性轻量级java 由于能够消除与传统 j2ee api 有关的不必要

9、的复杂性和限制,从而有助于降低开发成本。(2)侵略性的api传统的代码依赖于ejb,而ejb对容器的依赖(代码不能在ejb 容器之外工作)。因为业务逻辑实现采用pojo,所以不再必要部署到容器中;ejb只提供固定的一组功能,不具备配置能力;ejb启动时间长;ejb部署过程取决于特定的产品,无法通用。(3)有利于单元测试因为所测试的单元组件不必在容器中运行,因此可以选择模拟(mock)测试技术。6、系统采用struts框架技术struts的优点主要体现在两个方面:表单验证和页面导航。表单验证解决了请求数据的验证问题,增强了系统健壮性。而页面导航使系统的业务流程脉络清晰,系统各部分之间的联系可以通

10、过配置文件反映出来,从而在一定程度上简化了系统以后的维护工作。下面分别从视图、控制、模型和struts的配置文件struts-configxml来介绍struts的体系结构。(1)视图主要由jsp建立,struts自身包含了一组可扩展的自定义标签库(tag1ib),可以简化创建用户界面的过程。(2)模型模型主要是表示一个系统的状态和业务逻辑。在struts中,模型以一个或多个java bean的形式存在。这些bean分为三类:action form,action,javabean或者eib。action form 通常称之为formbean,封装了来自于client的用户请求信息,如表单信息。

11、action通常称之为actionbean,获取从actionservlet传来的form_bean,取出fombean中的相关信息,并做出相关的处理,一般是调用javabean或eib等。(3)控制器控制器主要由actionservlet类和action类来实现,actionservlet类是struts框架中的核心组件,主要负责接收http请求信息。根据配置文件struts-configxml的配置信息,把请求转发合适的action对象。action类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程。(4)配置文件strutsconfig.xml当actionservlet接收

12、http请求信息时,如何决定把用户请求转发给哪个action对象呢?这就需要一些描述用户请求路径和action映射关系的配置信息。在struts中这些配置映射信息都存储在特定的xml 文件strutsconfigxml中,在该配置文件中,每一个action的映射信息都通过一个(action)元素来配置。这些配置信息在系统启动时会被读入内存,供struts在运行期间使用,在内存中,每一个(action)元素都对应一个actionmapping类的实例。(5)工作流程在struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向actionservlet,actionserv

13、let根据strutsconfig.xml中的配置信息,将用户请求封装成一个指定名称的formbean,并将此formbean传至指定名称的actionbean,由actionbean完成相应的业务操作。每一个*.do均有对应的form_bean名称和actionbean名称,这些在strutsconfig.xml中配置。struts的核心是actionservlet,actionservlet的核心是strutsconfig.xml系统配置文件。7、系统架构示图(1)在线考试系统的整体架构设计为struts + hibernate架构组成(2)对于表示层,经验表明,最好的方法是选择已存在的并

14、已得到证明了的web应用框架,而不是自己去设计和开发新的框架。我们拥有多个可选择的框架,如struts,webwork和jsf等,在本项目中,我们选择采用struts。(3)在持久层中由于需要利用关系型数据库实现数据的持续化,但在应用中可以存在多种方法可用来实现: 1) jdbc:这是最为灵活的方法,然而,低级的jdbc难以使用,而且质量差的jdbc代码很难运转良好 2) ejb entity beans:cmp的entity bean是一种分离数据访问代码和处理orm的昂贵的方法,它是以应用服务器为中心的方法,即entity bean不是将应用与某种数据库类型而是ejb容器约束在一起。 3)

15、 o/r mapping 框架:一个orm框架采用以对象为中心的方法实现数据持续化,一个以对象为中心的应用易于开发并具有高度的可移植性-在该领域中存在几个框架可用jdo、hibernate、toplink以及ibatis 和cocobase等。在本项目中我们选用hibernate。8、系统架构示图本系统struts mvc框架技术 ,上图展示了系统的分层以及每一层中所采用的技术和对应的框架,并且各层将存在于同一个web容器中。9、该形式的总体架构设计的主要特点(1)应用系统框架的“设计”和所体现出的“性能”是我们在选择框架时的两个基本考虑的问题;(2)该形式遵循sun j2ee中两个主要的原则

16、:“多层架构、松藕合”。由于采用分层的设计方式,各个模块功能相互独立封装,层与层之间关联少,保持松耦合连接,稳定性高,便于扩展和维护。(3)在每个层中都不同程度地应用了j2ee中常用的设计模式(4)使用基于pojo的轻量级架构,从而使得系统易于测试;便于移植;“开发-发布”周期短。(5)在实现o/r mapping 方面基本上与hibernate是一致的,对业务逻辑实现人员而言,面对的也是纯粹的java对象10、系统各层中的相关组件(1)表示层由struts jsp组件实现利用了struts 中的构造标签技术,在用户浏览界面利用表单构造网页的整体结构(2)控制层由struts中的actions

17、ervlet和 action组件实现并利用actionform封装jsp页面中的表单。将页面整体作为对象处理,在相应的action了中调用业务逻辑,完成业务功能。1) 前端控制层:actionservlet类,并且对它加以扩展。2) 业务中心控制层:各个业务action类(标准action类和 dispatchaction类)(3)业务处理层由javabean来实现1) 业务处理基类:将各个业务功能模块中共同的部分抽象出,从而完成一些共同的功能。2) 各个业务处理类:完成具体的应用功能的各个模块(4)数据访问层由hibernate框架来提供技术支持1) 数据库操作(dao)类:完成对数据库数据

18、的相关操作(增、删、解、查询等)。2) 数据持久(po)类:针对应用系统中的各个数据库表提供对应的pojo类11、各层中应用了相应的主流的j2ee框架技术(1)服务器端表示层struts框架完成如下工作1) 客户端表单进入的验证;2) 管理请求和响应;3) 提供控制器来完成页面流转和向业务逻辑层的委托;4) 返回到客户端页面显示。(2)业务逻辑层框架完成如下工作1) 为服务器段表示层提供松散的耦合;2) 协调各种业务逻辑对象之间的依赖关系;3) 为持久层和业务逻辑层之间提供松散耦合;4) 实现持久层的业务逻辑。(3)持久层hibernate框架完成如下工作1) 对数据库进行查询,得到持久化对象

19、po;2) 对数据库进行添加、删除、修改的动作并以po来进行。3) 域模型层vo完成如下工作:为各层之间数据交互服务,同时也在持久层部分可以描述一个实体,并与po进行转换。12、系统基于mvc设计在线考试系统采用mvc架构,而mvc模式把一个应用分成了3层,这样程序设计的灵活性就大大增加了,利于图书馆系统的设计适应需求等变更。视图是与用户交互的界面;模型表示业务数据和业务规则;控制器接受用户的输入并条用模型和视图去完成用户的需求。例如,一个在线考试系统的业务流程或者业务规则的改变只须改动mvc的模型层,而界面表现方式的改变则只须改动mvc的视图层。将 mvc 结构应用于 j2ee 应用程序,可

20、以构建可复用的软件系统框架,使得整个框架结构基本不作修改或作很少的修改就可应用到其它相似的系统。同时,由于 j2ee 本身提供了面向组件的可复用能力,整个系统从框架结构到组件都可以被复用,使系统的开发、维护变得较为有效、快捷。同时,模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,那么所有其他依赖于这些数据的视图都应反映出这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,实现显示的更新。13、其主要实现的流图如下14、系统总体架构设计1.1.3 系统各个组件设计1、架构包图2、系统中的各个组件3、各个组件中的相关

21、的类和接口(1)数据访问层组件(2)业务处理层组件(3)控制层组件(4)表示层组件1.1.4 系统数据库表的逻辑结构设计1、userinfo数据库表结构定义字 段 名标 识 符类型及长度有无空值主键用户id标识idchar(32)无pk用户名namevarchar2(20)无用户密码passwordvarchar2(20)无用户全名fullnamevarchar2(20)无2、teacher数据库表结构定义字 段 名标 识 符类型及长度有无空值主键教师id标识idchar(32)无pk教师名namevarchar2(20)无教师密码passwordvarchar2(20)无教师全名fullna

22、mevarchar2(20)无3、student数据库表结构定义字 段 名标 识 符类型及长度有无空值主键学生id标识idchar(32)无pk学生名namevarchar2(20)无学生密码passwordvarchar2(20)无学生全名fullnamevarchar2(20)无班级idclass_idchar(32)无4、class数据库表结构定义字 段 名标 识 符类型及长度有无空值主键班级的id标识idchar(32)无pk班级名titlevarchar2(20)无5、teacher_class数据库表结构定义字 段 名标 识 符类型及长度有无空值主键教师的id标识teacher_i

23、dchar(32)无班级的id标识class_idchar(32)无6、paper数据库表结构定义字 段 名标 识 符类型及长度有无空值主键试卷的id标识idchar(32)无pk试卷的标题titlevarchar2(40)无考试时间exam_timenumber(14)无教师id标识teacher_idchar(32)无7、yesno_question数据库表结构定义字 段 名标 识 符类型及长度有无空值主键判断题的id标识idchar(32)无pk判断题的标题titlevarchar2(80)无答案answervarchar2(20)无分数scorenumber(3)无试卷id标识pape

24、r_idchar(32)无8、select_question数据库表结构定义字 段 名标 识 符类型及长度有无空值主键选择题的id标识idchar(32)无pk选择题的标题titlevarchar2(80)无答案answervarchar2(20)无分数scorenumber(3)无试卷id标识paper_idchar(32)无9、selected数据库表结构定义字 段 名标 识 符类型及长度有无空值主键选择的id标识idchar(32)无pk内容contentvarchar2(200)无选项itemvarchar2(40)无选择题id标识paper_idchar(32)无10、action数据库表结构定义字 段 名标 识 符类型及长度有无空值主键action的id标识idchar(32)无pkaction的标题titlevarchar2(80)无

温馨提示

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

评论

0/150

提交评论