3.3 总体设计思想概述
本系统是基于B/S架构下的多层结构应用系统。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了用户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。推荐的分层式结构一般分为三层,从下至上分别为:数据访问(持久)层、业务逻辑层(或称为领域层)、表示层,如图3-2:
图3-2 系统架构
总的来说,采用分层结构的设计思想,可以让每个层由一组相关的类或组件构成,共同完成特定的功能。层与层之间存在自上而下的依赖关系,上层组件会依赖下层组件的API,而下层组件则不依赖于上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。并且每个层对对上层公开API,但具体的实现细节对外透明。当某一层发生变化,只要API不变,不会影响其他层的实现。
在本系统中,使用开源的mysql数据库,持久层用到spring所集成的Hibernate技术,业务逻辑层用普通javabean实现,表述层运用基于struts的MVC设计模式(struts
用来做C层,spring实现V层与C层的解耦以及C层与M层的解耦)。
3.4 数据库设计 3.4.1 E-R图
下面是该系统数据库表的E-R图,如图3-4
图3-4 E-R图
3.4.2数据表的设计
下面列出了设计过程中所用到的数据库表及其结构: 1.Cou_tb表用来保存课程的信息,如表3-1:
1.Cou_tb 列名 类型 长度 ID bigint 8 Name varchar 60 JoinTime datetime 8 表3-1 Cou_tb
2.Man_tb表用来保存管理员信息,如表3-2: 2.Man_tb 列名 类型 长度 ID bigint 8
描述 课程ID 课程名称 加入时间 描述 管理员ID
varchar 30 varchar 30 表3-2 Man_tb
3.Title_tb表用来保存考试题目,如表3-3:
3.Title_tb 列名 类型 长度 id bigint 8 subject varchar 50 type char 8 joinTime datetime 8 lessonId int 4 taoTiId bigint 8 optionA varchar 50 optionB varchar 50 optionC varchar 50 optionD varchar 50 answer varchar 10 note varchar 50 表3-3 Title_tb
4. Stu_tb表用来保存用户个人资料,如表3-5:
4.Stu_tb 列名 类型 长度 ID varchar 16 name varchar 20 pwd varchar 20 class varchar 50 表3-4 Stu_tb
5.Class_tb表用来保存学生考试成绩,如表3-5: Class_tb 列名 类型 长度 Class_id int 4 Class-name varchar 16 表3-5 Class_tb
name PWD 管理员名字 管理员密码 描述 试题ID 科目名 试题类型 加入时间 课程Id 套题id 选项A 选项B 选项C 选项D 答案 备注 描述 学生ID 学生姓名 登陆密码 班级 描述 班级编号 班级名 3.5 系统的类设计
3.5.1 DAO类设计
图3-4 dao类设计
如图3-4,通过这个工厂获取对应的 DAO,然后使用DAO 进行数据库操作。
3.5.2 connDB类设计(部分)
图3-5 connDB类设计
这些实体类将通过servlet映射到数据库中
3.5.3 过滤器类设计
图3-6 过滤器类设计1
如图3-6,这是编码过滤器类,通过他可保证页面不出现乱码问题。
图3-7 过滤器类设计2
如图3-7,这是登陆安全过滤器类,通过它来达到控制访问权限的功能。
3.5.4 监听器类设计
如图3-8,“CartSessionListener”启动时把考试信息初始化到内存中,提高系统性能。“ProductContextListener”启动时把商品信息初始化到内存中,提高系统性能。
图3-8 监听器类设计
3.6系统的用例图 3.6.1 总体用例分析
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库基于JAVA的在线考试系统毕业论文(含源文件)(5)在线全文阅读。
相关推荐: