首页 SMART系统-系统功能管理模块设计与开发—免费计算机毕业设计论文

SMART系统-系统功能管理模块设计与开发—免费计算机毕业设计论文

举报
开通vip

SMART系统-系统功能管理模块设计与开发—免费计算机毕业设计论文SMART系统-系统功能管理模块设计与开发—免费计算机毕业设计论文 毕业设计(论文) SMART系统— 系统功能管理模块设计与开发 论文作者姓名: 申请学位专业: 申请学位类别: 指导教师姓名,职称,: 论文提交日期: SMART系统— 系统功能管理模块设计与开发 摘 要 SMART系统是一个在语言上采用跨平台的JAVA技术、在框架架构上采用流行的MVC架构、在业务架构中采用Spring的IOC思想和ORM技术的一个新型智能在线考试信息管理系统,该系统主要实现了学生在线考试与评估以及教师对学...

SMART系统-系统功能管理模块设计与开发—免费计算机毕业设计论文
SMART系统-系统功能管理模块设计与开发—免费计算机毕业设计 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 毕业设计(论文) SMART系统— 系统功能管理模块设计与开发 论文作者姓名: 申请学位专业: 申请学位类别: 指导教师姓名,职称,: 论文提交日期: SMART系统— 系统功能管理模块设计与开发 摘 要 SMART系统是一个在语言上采用跨平台的JAVA技术、在框架架构上采用流行的MVC架构、在业务架构中采用Spring的IOC思想和ORM技术的一个新型智能在线考试信息管理系统,该系统主要实现了学生在线考试与评估以及教师对学生在线考试信息的管理和维护。本文设计的系统管理功能模块采用了多用户多角色管理机制,确保不同的用户登录系统后能够操作属于自己权限范围内的功能。系统功能管理模块主要由用户管理子模块、角色管理子模块、角色设置管理子模块、权限管理子模块、系统菜单管理子模块、日志管理子模块和用户登录验证子模块构成。通过对系统功能的各种设置,实现对系统各级用户的角色设置和角色分配,限制和记录各级用户在系统中的对信息的功能操作,体现了系统权限设置的灵活性、数据操作的安全性。 关键词: 用户;角色;权限;多用户多角色管理 SMART System— The Design and Development of Function Management Module Abstract SMART System is a new intelligent information management system of on-line examine. It uses the JAVA technology in language, uses the MVC in framework, and uses the IOC antilogy of Spring and ORM technology in its operation framework. The system mainly implements the on-line examination and evaluation of students, and the teachers management and maintenance of students examination information on-line as well. The system uses multiplex users and roles management mechanism. After the users log on, they can use the functions they owned. The management function module of system includes users management, role management, role setup management, right management, system menu management, log management and the validation of the users’ logon management. Through these configuration of system functions, the system carries out the role intercalation and distribution of the all users, restricts and records the information of all users how they used in the system. These can make the system right configuration flexible, and the data operations security. Key words: the users; the role; right; multiplex users and roles management 目 录 论文总页数:36页 1 引 言 ............................................................................................................................................. 3 1.1 背景 ........................................................................................................................................ 3 1.2 目的 ........................................................................................................................................ 3 1.3 意义 ........................................................................................................................................ 3 1.4 系统开发的主要技术 ............................................................................................................ 3 1.5 系统开发环境 ........................................................................................................................ 4 2 系统功能需求和总体设计 ........................................................................................................... 4 2.1 B/S构架 ................................................................................................................................ 4 2.2 系统流程框架设计 ............................................................................................................... 5 2.3 系统功能需求分析与设计 .................................................................................................... 9 2.3.1 登录验证 ......................................................................................................................... 9 2.3.2 用户管理 ....................................................................................................................... 10 2.3.3 角色管理 ....................................................................................................................... 11 2.3.4 角色设置管理 ............................................................................................................... 11 2.3.5 权限设置管理 ............................................................................................................... 12 2.3.6 日志管理 ....................................................................................................................... 12 2.3.7 菜单权限控制 ............................................................................................................... 13 3 数据库设计与构架 ..................................................................................................................... 13 3.1 数据库设计 .......................................................................................................................... 13 3.2 数据库表设计 ...................................................................................................................... 14 3.2.1 用户表 ........................................................................................................................... 14 3.2.2 用户控制表 ................................................................................................................... 16 3.2.3 角色表 ........................................................................................................................... 16 3.2.4 用户角色表 ................................................................................................................... 17 3.2.5 任务表 ........................................................................................................................... 17 3.2.6 角色任务表 ................................................................................................................... 18 3.2.7 日志表 ........................................................................................................................... 18 3.2.8 模块表 ........................................................................................................................... 18 3.2.9 公共CODE表 .............................................................................................................. 19 3.2.10 试卷日志记录表 ......................................................................................................... 19 3.3 数据库数据字典 .................................................................................................................. 20 4 系统模块实现 ............................................................................................................................. 20 4.1 登录验证 .............................................................................................................................. 20 4.1.1 登录流程图 ................................................................................................................... 20 4.1.2 代码实现 ....................................................................................................................... 21 4.2 用户管理 .............................................................................................................................. 22 4.2.1 用户界面 ....................................................................................................................... 22 4.2.2 代码实现 ....................................................................................................................... 23 4.3 角色管理 .............................................................................................................................. 24 4.3.1 用户界面 ....................................................................................................................... 24 4.3.2 代码实现 ....................................................................................................................... 25 4.4 角色设置管理 ...................................................................................................................... 25 4.4.1 用户界面和流程图 ....................................................................................................... 25 4.4.2 代码实现 ....................................................................................................................... 26 4.5 权限设置管理 ...................................................................................................................... 26 4.5.1 用户界面和流程图 ....................................................................................................... 26 4.5.2 代码实现 ....................................................................................................................... 27 4.6 日志管理 .............................................................................................................................. 28 4.6.1 用户界面 ....................................................................................................................... 28 4.6.2 代码实现 ....................................................................................................................... 28 4.7 菜单权限控制 ...................................................................................................................... 29 4.7.1 用户界面和流程图 ....................................................................................................... 29 4.7.2 代码实现 ....................................................................................................................... 29 5 结果测试、性能分析 ................................................................................................................. 30 5.1 单元测试 .............................................................................................................................. 30 5.2 系统功能测试 ...................................................................................................................... 31 5.2.1 系统菜单权限功能测试 ............................................................................................... 31 5.2.2 系统功能权限测试 ....................................................................................................... 31 结 论 ......................................................................................................................................... 33 参考文献 ......................................................................................................................................... 34 致 谢 ......................................................................................................................................... 35 声 明 ......................................................................................................................................... 36 1 引 言 1.1 背景 随着高新技术的迅猛发展,信息技术广泛应用,将传统的教育产业信息化成为可能。但是目前学校与社会上的各种考试大都采用传统的考试方式,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。所以拥有一套实用、完善、高效的在线考试评估系统越来越显的重要,能够将通过权限控制,将不同教师和学生登录后能够看到不同的功能界面,这样能更好的方便学校对教学质量的管理,降低成本,提高效率。 1.2 目的 通过对用户权限的控制,让不同的用户登录系统后能够看到不同的功能,以提高用户对管理对象的方便性和高效性。 1.3 意义 系统功能管理模块是现在管理系统软件中很重要的一环,很多国内较出名的软件厂商都设计了较完善的也具有自己特色的系统功能管理模块(权限管理模块),但对于很多没那么规范的软件商,他们经常是接到系统,就设计一套系统功能管理模块,每套都不同,有的甚至不够重视,随便写上一段,哪里都拷过去用;有的也曾费尽心机,但结果总不能令自己满意。其实仔细想一下,每套软件的系统功能管理模块(权限管理模块)虽然各不相同,但其实所需实现的系统管理功能都是差不多的。权限管理是管理软件中可代码重用性最高的一个模块,也是重复开发率最高的一个模块。做一个最通用的系统功能管理模块(权限管理模块),支持尽可能多的数据库后台,尽最大可能方便软件开发人员的二次开发和最终用户使用,当然,还要保证权限管理技术的先进性,即注重灵活性的安全性。 1.4 系统开发的主要技术 此系统采用了流行的J2EE技术,具体包括了Spring、Hibernate、Struts、Jsp、Ajax、数据库连接池等技术。以下是对所开发系统所采用的技术的 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 ,为系统提供一定的技术支持。 , J2EE J2EE平台是用于在分布式企业环境中开发、部署和执行应用程序的体系结构。分布式应用程序需要系统级服务,如事务管理、安全性、客户端连接池数据库访问。 , Spring Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。 , Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 , Struts Struts就是在JSP Model2的基础实现了MVC设计模式的WEB Framework。基于Struts 构架的WEB应用程序基本上符合JSP Model2的设计标准,可以说是MVC设计模式的一种变化类型。 , Ajax AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。Ajax技术主要是由XHTML、CSS、DOM、JavaScript、XML、XMLHttpRequest结合的一种技术,与传统的Web开发不同,Ajax并不是以一种基于静态页面的方式来看待Web应用的。 1.5 系统开发环境 本系统开发的IDE工具是eclipse以及相关的插件(如:tomcat插件),开发服务器采用的是tomcat,在数据存储器方面采用的是Microsoft SQL Server 2000,采用的开发语言是JAVA,在数据库设计方面使用的是ERStudio工具,在版本控制方面使用CVS控制。 , eclipse Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。它只是一个框架和一组服务,用于通过插件组件构建开发环境,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。Eclipse 的目标不仅当作 Java IDE 来使用,只要给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。 , tomcat Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。 2 系统功能需求和总体设计 2.1 B/S构架 随着Internet的发展,采用Browser/Server模式的系统主要利用Internet技术和产品来构筑内部的Internet网络,即所谓的Intranet网络,B/S模式已经成为了企业信息系统建设的首选。B/S模式使用方便,客户端统一采用浏览器,不限制客户平台,可以方便的和其他业务系统连接。其三层3-tier结构(图2-1 B/S三层结构),大大减缓了客户端载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。它能有效地保护数据平台和管理访问权限,服务器数据也很安全。 SMART在线考试系统是为处在不同地点的不同用户提供网上数据操作服务的。使用B/S模式是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据库;它能有效地保护数据平台和管理用户的访问权限,服务器数据也更安全。特别是在采用JAVA这样的跨平台语言开发后,B/S构架管理软件更方便、快捷、高效。 图2-1 B/S三层结构 2.2 系统流程框架设计 《SMART系统—系统功能管理设计与开发》主要是对系统中的功能模块进行权限控制和管理。本系统主要设计到三个对象,用户、角色、任务(系统中的功能模块)。其中用户主要有两种类型——教师用户、学生用户。我们将系统中的任务分配给各个角色对象,然后将用户加入这些角色对象里面,从而来控制用户在系统的权限。该系统主要由登录验证、用户管理、角色管理、角色设置管理、权限设置管理、日志管理、菜单权限控制7个模块构成。系统的总体设计框架如图2-2: 图2-2系统总体设计框架流程图 , 登录验证模块: 登录验证主要是包括对用户信息的合法信息验证和对合法用户的权限加载,这个模块作为系统其它模块功能的前提。流程设计图如: 图2-3 登录验证模块流程图 , 加载功能模块: 加载功能模块也就是菜单权限管理模块,只有一个合法用户第一登录成功后或者是用户刷新session的时候,系统才会加载该部分。系统加载这部分要根据登录用户的权限范围来加载用户相应的系统功能。其功能模块流程图如图2-4: 图2-4 加载功能模块流程图 , 用户管理模块: 该模块管理的对象主要是用户对象,当前系统中包含两种用户对象——教师用户和学生用户。该模块要实现的功能包括新增用户、更新用户、删除用户、用户密码修改、用户激活、用户搜索、学生用户升学调整。用户管理模块功能框架图如图: 图2-5 用户管理模块功能图 , 角色管理和用户角色管理模块: 其中角色管理模块主要负责对角色的管理和维护,包含对角色增加、角色更新、角色删除、角色搜索功能,他为用户角色管理提供管理对象之一(如图2-7);用户角色管理对象主要是对用户和角色用户之间建立一种联系关系,并通过这种关系以及权限设置模块中的角色和任务之间的关系一起来实现用户在系统的权限管理,用户角色管理模块包括搜索和用户角色设置两个功能(如图2-6)。 图2-6 角色管理功能模块流程图 图2-7用户角色设计模块功能图 , 权限设置模块: 权限管理模块主要管理的对象有任务对象以及角色对象,他将系统的任务功能与角色对象建立一种关系,在结合用户角色管理模块的角色和用户对象建立的用户角色关系一起完成对系统的用户功能权限管理设置。如图2-8: 图2-8 权限设置模块流程图 , 日志管理模块: 日志管理模块由两部分日志对象组成,系统日志管理(主要是指系统中表对象操作日志管理)和试卷日志管理(学生用户和教师用户对试卷的操作日志记录管理)。如图2-9日志管理模块功能图: 图2-9日志管理模块功能图 2.3 系统功能需求分析与设计 通过以上系统流程设计,各模块实现了以下的功能: 2.3.1 登录验证 , 功能需求 用户通过输入正确的信息,通过登录验证后,用户应从数据库中获取他在系统中所具有的操作权限,以致在用户登录后能够看到其在所具有权限范围内的功能模块。 , 模块划分 用户登录:用户登录系统,为用户获取权限操作,并更新用户信息。 Session维护:维护用户登录系统的会话时间。 用户注销:用户登出系统,清空用户在Session中的信息,结束用户会话,并更新用户信息。 , 应用场景 用户进入到登录页面,需要输入相应的用户信息,登录系统后,用户才能够执行相应功能的操作;当系统修改该用户的登录信息后,则需要再次输入正确的认证信息或者从新刷新Session后才能访问到相信系统功能,同时,当用户注销系统时,也从Session中清空相应的会话信息。 , 技术 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 在本系统中是通过filter的方式来实现其登录验证功能的,其结构图如下: 图2-10 Filter过滤流程图 2.3.2 用户管理 , 功能需求 系统用户主要包括两种,教师用户和学生用户。教师用户又分为四种不同的用户,如:省级教师用户、市级教师用户、区县级教师用户、学校级教师用户,并且他们在系统的权限都不相同,系统应提供对这些用户的区别以及权限控制。如果登录用户具有足够的权限的话,可以对这些用户进行控制管理。用户管理需实现对这些用户的参数匹配搜索和管理,对用户的管理主要要求实现对这些用户的添加、更新、删除和对新加用户的激活等相关功能。 , 模块划分 搜索功能:系统管理员可以通过参数匹配来搜索当前系统的用户,将输入的某些参数作为模糊查询的方式来搜索,并将所查询出来的结果以一种统计的列表方式展现出来。 新增功能:系统管理员可以直接向数据库增加一个新的用户。 更新功能:如果用户具有相应的权限,则对自己或其他用户的资料进行更新。 删除功能:如果用户具有相应的权限,则对自己或其他用户的资料进行删除。 用户角色设置功能:用户可以在编辑其信息时,可以对用户的角色相关联,因为这些角色与系统的功能相关联的,所有当用户对其所属角色进行关联时,该用户的权限也在发生改变。 强制用户注销:系统管理员可以对当前系统已经登录的用户进行强制性的注销。 , 应用场景 登录用户如果有以上功能的权限,则该用户可以根据匹配条件搜索,并可以对搜索出的用户进行更新、删除已经对某些用户的所属角色进行更新。同时也可以向系统添加新的用户,如果所更新的用户已经登录进了系统,我们还可以将其强制注销。 , 技术方案 由于系统用户主要分为两大类,并且这些用户中教师和学生的用户量比例比较大,教师用户和学生用户的权限设定丰富程度相差也比较大,所以在实现用户管理的时候,将用户管理分成两个模块来对其进行相应的管理,这样在权限控制和用户管理上比较容易实现和控制。 2.3.3 角色管理 , 功能需求 系统为用户提供不同功能权限的角色对象,用户拥有的功能是由用户拥有的角色对象来确定,一个用户可以拥有多个角色对象,用户的功能是由这多个角色对象的并集。系统存在多种用户,而这些用户拥有对系统不同的功能权限就是由他所属的角色对象不同确定的。该功能主要为系统管理员提供来管理用户在系统中所具有的权限功能,来为这些用户分配他们的权限范围,保证系统的安全。 , 模块划分 角色搜索:用户可以通过该功能搜索本系统所具有的角色,该功能提供了模糊匹配搜索的搜索功能。 角色管理:通过搜索功能可以搜索出本系统的所有角色,如果权限足够还可以更改这些角色,可以执行以下操作,添加角色、删除角色、编辑角色。 , 应用场景 系统管理登录系统后,可以通过以上提供的功能来删除、编辑、添加角色。 , 技术方案 角色的管理主要采用比较传统方式来实现。 2.3.4 角色设置管理 , 功能需求 该功能主要为系统管理员提供来管理用户在系统中所具有的权限功能,来为这些用 户分配他们的权限范围,保证系统的安全。 , 模块划分 搜索功能:该功能主要是搜索当前系统中所具有的角色或用户,主要为角色设置管理提供管理的对象。 角色设置管理:管理员通过搜索功能可以搜索出需要进行管理设置的对象,然后对在这些对象上面进行角色对象的添加、删除来为他们设置不同的权限范围。 , 应用场景 系统管理员登录系统后,便可以对用户的权限进行管理设置,为这些用户分配他们所属于的角色对象。 , 技术方案 角色设置就是对某一个用户进行角色分配,由于用户和角色的对应关系是一对多,而角色和用户的关系也可以是一对多的关系,所以在用户角色设置的时候采用Ajax来对用户和角色设置的数据信息进行提交。设计界面如表2-1: 表2-1 用户角色设置设计界面 UIN 用户名 角色1 角色2 角色3 UIN1 用户1 Y Y -- UIN2 用户2 -- Y Y 其中用户和角色对应的交叉值“Y”和“--”,其中“Y”表示对应的用户具有该角色,而“--”却表示相反,没有该角色的意思。而要改变这个值,只需要在原有值的基础上点击便可,而在改变值的过程中通过Ajax来与后台进行交付。 2.3.5 权限设置管理 , 功能需求 系统的每一个功能我们都把叫做是一个任务(task)并为它分配一个唯一code(taskcode),系统的不同角色包含了不同的任务,我们为每一个角色设置其包含的任务,这样用户的权限范围就由用户所属的角色确定了,而角色由角色所属的任务确定。我们这样通过设置角色和任务的关联已经用户和角色的管理来实现权限的管理。 , 模块划分 搜索功能:该功能提供了模糊匹配搜索功能,搜索的对象主要包括两个,角色和任务。 权限设置:通过以上的搜索功能的搜索结果来对其进行设置管理操作,通过对任务的角色对象的添加删除来实现其权限设置。 , 应用场景 管理员登录系统之后,便可以用该功能来对任务和角色之间的管理进行设置,通过对任务所属角色的添加删除来实现对权限的控制。 , 技术方案 权限设置就是对某一个角色进行任务(系统中的每一个功能就叫做一个任务)分配,由于任务和角色的对应关系是一对多,而角色和任务的关系也可以是一对多的关系,所以在权限设置的时候采用表格的方式来进行,并Ajax来对任务和角色设置的数据信息进行提交的时候进行处理。设计界面如表2-2: 表2-2 权限设置设计界面 角色名称 角色1 角色2 角色3 角色4 任务1 -- Y Y -- 任务2 Y -- Y Y 其中用户和角色对应的交叉值“Y”和“--”,其中“Y”表示对应的角色包含该任务,而“--”却表示相反,不包含该任务的意思。而要改变这个值,只需要在原有值的基础上点击便可,而在改变值的过程中通过Ajax来与后台进行交付。 2.3.6 日志管理 , 功能需求 日志管理由两部分日志对象组成,系统日志(主要是指系统中表对象操作日志管理)和试卷日志管理(学生用户和教师用户对试卷的操作日志记录管理)。系统日志是记录了用户对系统表的几乎所有操作,可以通过日志来查看过去用户对该系统进行了什么样的操作,也可以通过日志来恢复一些历史数据;试卷日志管理主要用来查看用户过去对试卷的一些操作。 , 模块划分 搜索功能:可以通过匹配参数对用户过去对系统的一些操作进行查询搜索,提供了对 某些输入参数的模糊匹配搜索。 日志管理:用户可以根据对搜索出的历史记录进行查看,以及对那些历史操作记录进行删除。 , 应用场景 用户登录系统之后,如果具有日志管理的权限,那么用户可以搜索任何用户过去对系统的一些操作并通过这系历史数据,可以找回一些丢失的东西。也可以对这些历史性的操作记录进行删除,也可以统计查看用户过去对试卷的操作情况。 , 技术方案 这两种日志的产生并不相同,所以对他们的管理方式分成两个模块来完成,系统日志是系统对数据库表的操作所产生生成的,这种日志数据比较复杂并且大多数据没有什么意义;而另外一种是试卷日志,这中日志是为用户操作试卷特意做,可以用这种数据来对用户对试卷的操作进行统计分析,这中数据比较重要。所以本系统对日志的管理分成了两个相对独立的模块进行实现的。 2.3.7 菜单权限控制 , 功能需求 要求不同的用户登录系统后,应该根据他们在系统中所具有的权限来进行相应的功能操作,并且要求用户如果在系统中不应该看到不在自己权限范围内的功能模块。 , 模块划分 菜单管理:通过用户登录系统的权限来生成在该权限范围内的菜单结构。 , 应用场景 用户在登录系统后,看到的系统功能模块表示他都有权对其进行操作,而他无权管理的功能部分则根本看不到。 , 技术方案 主要通过J2EE中的自定义标签来实现该功能,因为这样实现不仅安全性高,而且扩展性和使用性也较好。 3 数据库设计与构架 3.1 数据库设计 数据库是借助于计算机保存和管理大量复杂的数据和信息的软件工具,数据库技术主要研究如何科学地组织和存储数据,如何高效地获取、更新和加工处理数据,并保证数据的安全性、可靠性和持久性。它的最大优点在于使用了非过程化的数据操作语言,具有很好的形式基础和高度的数据独立性。本系统选用关系型数据库SQL SERVER 2000。具有使用方便、可伸缩性好、与相关软件集成程度高等优点。通常在Microsoft windows 2000 server服务器版上使用。数据库E-R设计图结构如下: 图3-1 系统数据库结构图 3.2 数据库表设计 3.2.1 用户表 , 教师用户表 教师用户表主要存储的信息是教师用户以及学校领导之类用户的信息: 表3-1 教师用户表(SMART_TEACHER)数据结构 字段名称 数据类型 是否是主键 是否是外键 是否可NULL 备注 teacher_id DECIMAIL(18,0) YES NO NO 自增ID teacher_no VARCHAR(50) NO NO NO 教师NO type VARCHAR(20) NO NO NO 类型 uin VARCHAR(20) NO NO NO UIN teacher_name VARCHAR(50) NO NO NO 教师姓名 province_no VARCHAR(50) NO NO YES 省 city_no VARCHAR(50) NO NO YES 市 ounty_no VARCHAR(50) NO NO YES 区/县 ref_school_no VARCHAR(50) NO NO YES 学校 grade_no VARCHAR(50) NO NO YES 年级 class_no VARCHAR(50) NO NO YES 班级 teacher_subject VARCHAR(50) NO NO YES 所教课程 tel VARCHAR(20) NO NO YES 联系电话 e_mail VARCHAR(50) NO NO YES E-MAIL地址 address VARCHAR(100) NO NO YES 地址信息 record_number INTEGER NO NO NO 版本控制 remark VARCHAR(100) NO NO YES 备注 , 学生用户表 学生用户表主要存储的信息是学生用户信息。 表3-2 学生用户表(SMART_STUDENT)数据结构 字段名称 数据类型 是否是主键 是否是外键 是否可NULL 备注 student_id DECIMAIL(18,0) YES NO NO 自增ID student_no VARCHAR(50) NO NO NO 学生NO uin VARCHAR(20) NO NO NO UIN student_name VARCHAR(50) NO NO NO 学生姓名 province_no VARCHAR(50) NO NO YES 省 city_no VARCHAR(50) NO NO YES 市 county_no VARCHAR(50) NO NO YES 区/县 ref_school_no VARCHAR(50) NO NO YES 学校 ref_grade_no VARCHAR(50) NO NO YES 年级 ref_class_no VARCHAR(50) NO NO YES 班级 注册时的用register_id BIGINT NO NO YES 户ID tel VARCHAR(20) NO NO YES 联系电话 e_mail VARCHAR(50) NO NO YES E_Mail地址 address VARCHAR(100) NO NO YES 地址信息 register_date DATETIME NO NO YES 注册时间 record_number INTEGER NO NO NO 版本控制 remark VARCHAR(100) NO NO YES 备注 3.2.2 用户控制表 该表主要用来索引教师用户和学生用户的用户ID. 表3-3 用户控制表(PCM_USER)数据结构 字段名称 数据类型 是否是主键 是否是外键 是否可NULL 备注 auto_id DECIMAIL(18,0) YES NO NO 自增ID user_id DECIMAIL(18,0) NO NO NO 用户ID type VARCHAR(20) NO NO NO 用户类型 pass VARCHAR(50) NO NO NO 密码 activated_time DATETIME NO NO YES 激活时间 locked_indicator INTEGER NO NO NO 是否被锁 是否登录是登录 is_login VARCHAR(2) NO NO YES 状态 deactivated_date DATETIME NO NO YES 解除用户日期 created_by DECIMAIL(18,0) NO NO YES 被哪个用户创建 last_login_in_ti最后一次登录时DATETIME NO NO YES me 间 最后一次更新时last_update_time DATETIME NO NO YES 间 最后一次更新用last_updated_by DECIMAL(18,0) NO NO YES 户ID last_login_out_ti最后一次注销时DATETIME NO NO YES me 间 pwd_changed_dDATETIME NO NO YES 密码更改时间 ate pwd_resetd_date DATETIME NO NO YES 密码重置时间 record_number INTEGER NO NO NO 版本控制 3.2.3 角色表 表3-4 角色表(PCM_USER)数据结构 是否是主字段名称 数据类型 是否是外键 是否可NULL 备注 键 role_id DECIMAL(18,0) YES NO NO 角色ID role_name VARCHAR(50) NO NO NO 角色名称 role_abbreviatioVARCHAR(20) NO NO NO 角色名称简写 n role_description VARCHAR(100) NO NO YES 角色描述 created_by DECIMAL(18,0) NO NO YES 角色创建者 created_time DATETITME NO NO YES 创建角色的时间 最后一个更新的last_update_by DECIMAL(18,0) NO NO YES 用户ID last_update_time DATETIME NO NO YES 最后更新的时间 record_number INTEGER NO NO NO 版本控制 3.2.4 用户角色表 该表主要用户存储用户和角色之间的关系。 表3-5 用户角色表(PCM_USER_ROLE)数据结构 字段名称 数据类型 是否是主键 是否是外键 是否可NULL 备注 role_id DECIMAL(18,0) YES YES NO 角色ID user_id DECIMAL(18,0) YES YES NO 用户ID created_by DECIMAL(18,0) NO NO YES 被哪个用户创建 created_time DATETIME NO NO YES 创建时间 最后一次更新用户last_update_by DECIMAL(18,0) NO NO YES ID last_update_timDATETIME NO NO YES 最后一次更新时间 e record_numbde INTEGER NO NO NO 版本控制 r 3.2.5 任务表 表3-6 任务表(PCM_TASK)数据结构 字段名称 数据类型 是否是主键 是否是外键 是否可NULL 备注 task_id DECIMAIL(18,0) YES NO NO 任务ID task_code VARCHAR(20) NO NO YES 任务CODE task_name VARCHAR(50) NO NO YES 任务名称 created_time DATETIME NO NO YES 创建时间 created_by DECIMAIL(18,0) NO NO YES 被哪个用户创建 last_update_by DECIMAIL(18,0) NO NO YES 最后更新用户 last_update_tiDATETIME NO NO YES 最后更新时间 me record_number INTEGER NO NO NO 版本控制 3.2.6 角色任务表 该表主要用来存储角色和任务之间的关系。 表3-7 角色任务表(PCM_ROLE_TASK)数据结构 是否是主 字段名称 数据类型 是否是外键 是否可NULL 备注 键 role_id DECIMAIL(18,0) YES YES NO 角色ID task_id DECIMAIL(18,0) YES YES NO 任务ID created_time DATETIME NO NO YES 创建时间 created_by DECIMAIL(18,0) NO NO YES 被哪个用户创建 last_update_by DECIMAIL(18,0) NO NO YES 最后更新用户 last_update_ti DATETIME NO NO YES 最后更新时间 me record_number INTEGER NO NO NO 版本控制 3.2.7 日志表 该表主要存储系统对数据库表的操作历史情况。 表3-8 日志表(AUDIT_LOG)数据结构 字段名称 数据类型 是否是主键 是否是外键 是否可NULL 备注 audit_id DECIMAL(18,0) YES NO NO 日志ID user_id DECIMAL(18,0) NO NO YES 用户ID 任务task_code VARCHAR(50) NO NO YES CODE task_remarks VARCHAR(255) NO NO YES 任务描述 table_action VARCHAR(20) NO NO YES 表动作 table_name VARCHAR(50) NO NO YES 表名称 created_date DATETIME NO NO YES 创建时间 new_data VARCHAR(100) NO NO YES 新数据 record_number INTEGER NO NO NO 版本控制 3.2.8 模块表 , 模块表 主要存储系统的功能模块,以及功能模块之间的父子管理。 表3-9 模块表(MODULE)数据结构 字段名称 数据类型 是否是主键 是否是外键 是否可NULL 备注 auto_id DECIMAL(18,0) YES NO NO 自增ID module_id DECIMAL(18,0) NO NO NO 模块ID 模块module_code VARCHAR(50) NO NO NO CODE module_name VARCHAR(50) NO NO NO 模块名称 parsent_id DECIMAL(18,0) NO NO NO 父ID is_validate INTEGER NO NO NO 是否有效 description VARCHAR(100) NO NO YES 描述 , 子模块表 该表用来存储系统中的每一个功能的CODE代码以及他们父子模块之间的关系。 表3-10 子模块表(SUB_MODULE)数据结构 字段名称 数据类型 是否是主键 是否是外键 是否可NULL 备注 auto_id DECIMAL(18,0) YES NO NO 自增ID module_id DECIMAL(18,0) NO NO NO 模块ID module_code VARCHAR(50) NO NO NO 模块CODE module_name VARCHAR(50) NO NO NO 模块名称 type VARCHAR(50) NO NO YES 模块类型 value VARCHAR(50) NO NO YES 模块类型值 description VARCHAR(100) NO NO YES 描述 3.2.9 公共CODE表 用来存储一些模块内的共用属性CODE和值的对应关系。 表3-11 CODE表(CODE)数据结构 字段名称 数据类型 是否是主键 是否是外键 是否可NULL 备注 code_id DECIMAL(18,0) YES NO NO CODE ID code_no VARCHAR(50) NO NO YES CODE_NO code_type VARCHAR(50) NO NO YES CODE类型 code_name VARCHAR(50) NO NO YES CODE名称 code_value VARCHAR(10) NO NO YES CODE值 code_module VARCHAR(50) NO NO YES 所属模块 remark VARCHAR(50) NO NO YES 备注 version INTEGER NO NO NO 版本控制 3.2.10 试卷日志记录表 主要存储用户对试卷的历史操作记录。 表3-12 试卷日志记录表(EXAM_PAPER_LOG)数据结构 字段名称 数据类型 是否是主键 是否是外键 是否可NULL 备注 auto_id DECIMAL(18,0) YES NO NO 自增ID paper_id VARCHAR(50) NO NO NO 试卷ID user_type VARCHAR(50) NO NO NO 用户类型 user_id DECIMAL(18,0) NO NO NO 用户ID user_uin VARCHAR(20) NO NO NO 用户UIN user_name VARCHAR(50) NO NO NO 用户名称 login_ip VARCHAR(50) NO NO NO 登录IP event_no VARCHAR(50) NO NO NO 事件 event_time DATETIME NO NO NO 事件发生时间 3.3 数据库数据字典 表3-13 数据字典 字段名称 表名 业务说明 备注 is_validat MODULE 模块状态 0:模块无效 1:模块有效 默认 is_login PCM_USER 用户在系统的状态 N:未登录状态 Y:登录状态 teacher:教师用户 student:学生用户 type PCM_USER 用户类型 4 系统模块实现 4.1 登录验证 4.1.1 登录流程图 用户登录验证主要由用户登录、用户注销、session 维护三部分构成,其详细设置流程 -1: 图如图4 图4-1 登录验证详细设计流程图 4.1.2 代码实现 用户通过登录页面向系统发送登录用户信息,服务器端通过filter机制,首先 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 到用户发送过来的登录请求,然后执行用户登录验证,如果通过用户登录验证,将加载用户权限,代码如下: LoginInfo userData = auth.authenticate(uin, pass, type); if (auth.allowLogin(userData)) {//是否准许登录 if (hreq.getSession(false) != null) { hreq.getSession().invalidate(); } auth.performLogin(userData); Authorization permission = new Authorization(); permission = auth.loadAuthorization(userData);//加载权限 hreq.getSession().setAttribute(Constants.USER_KEY, permission); filterConfig.getServletContext().getRequestDispatcher("/index.jsp").for ward(request, response); return; } 其中对用户的查询loadAuthorization方法中主要调用了另一个后台方法,该方法主 要根据传入的用户名称、用户类型来加载当前系统中是否存在这种用户,代码如下: StringBuffer buffer = new StringBuffer(); Map params = new HashMap(); params.put("uin", uin); params.put("type", type); if (type != null && type.equals(UserType.TEACHER)) {//教师用户 buffer.append("select user.userId,teacher.uin,user.type,user.pass,user.activatedTime,us er.deactivatedDate," + "user.lastLoginOutTime,user.lastLoginInTime,user.lastUpdatedBy,us er.lastUpdateTime,user.lockedIndicator," + "user.pwdChangedDate,user.pwdResetedDate from PcmUser as user, SmartTeacher as teacher "); buffer.append("where user.userId=teacher.recId and teacher.uin = :uin and user.type = :type"); } auth.loadAuthorization(userData)是根据用户登录验证后的信息来为该用户加载系 统权限,然后台查询代码 (Authorization)em.getObject("from Authorization where userId=:userId and type=:type", params)可以得到用户的角色信息,然后通过用户角色关系以 及角色任务关系将用户的权限存储在一个HashMap中,代码如下: Set set = null; PcmRole role = null; Map map = new HashMap(); set = auth.getRoles();//获取用户角色列表 if (set != null) { Iterator iter = set.iterator(); while (iter.hasNext()) {//根据用户角色取得角色任务列表 role = (PcmRole) iter.next(); if (role != null && role.getRoleTasks() != null) { Set roleTasksSet = role.getRoleTasks(); if (roleTasksSet != null) { for (Iterator j = roleTasksSet.iterator(); j.hasNext();) { PcmRoleTask roleTask = (PcmRoleTask) j.next(); PcmTask task = roleTask.getTask(); //获取任务CODE if (task != null &&!map.containsKey(task.getTaskCode())) { map.put(task.getTaskCode(), task); ...... auth.setTasks(map); 4.2 用户管理 4.2.1 用户界面 用户搜索界面设计图如下: 图4-2 教师用户搜索界面设计图 用户编辑界面设计图: 图4-3 教师用户编辑界面设计图 4.2.2 代码实现 用户搜索功能都是通过编写存储过程实现的,在新增用户需要检查两个唯一,第一个用户的NO,第二个是用户的UIN,用户只有这两个唯一了才可以确定用户唯一性,他们的检测代码分别是: 1. 用户的NO唯一性检查 在struts 的action中通过代码: Map map = new HashMap(); map.put("teacherNo", teacherForm.getNo()); map.put("type", UserType.TEACHER); List list = (List) this.call(new Carrier(map, BusinessConstants.PCM_USER_BUSINESS, "SearchTeacherByNo")); 查找数据库中是否存在当前添加的用户NO。其business中通过((PcmUserDAO) this.getDao()).seacherByNo(map)来调用Impl接口中的一个seacherByNo方法来实现数据查找的,其全部代码如下: HashMap params = new HashMap(); String type = (String) map.get("type"); if (type != null && type.equals(UserType.TEACHER)) { params.put("teacherNo", map.get("teacherNo")); return this.query("from SmartTeacher where teacherNo=:teacherNo", params); } 2. 用户的UIN唯一性检查 UIN唯一性检查和NO唯一性检查结构上是一样的。在struts的action中通过调用business中的processSearchByUin方法,并通过这个方法来调用Impl中的searchByUin来进行UIN查找,代码实现如下: HashMap params = new HashMap(); String type = (String) map.get("type"); params.put("uin", map.get("uin")); if (type != null && type.equals(UserType.TEACHER)) { return this.query("from SmartTeacher where uin=:uin", params); } 然后再将返回回来的结果进行如下分析: if (list != null) { SmartTeacher obj = null; Iterator iter = list.iterator(); while (iter.hasNext()) {//是否具有返回结果 obj = (SmartTeacher) iter.next(); if (obj != null) { return mapping.getInputForward(); } } } 同样在用户更新的时候也要做同样的处理。 4.3 角色管理 4.3.1 用户界面 角色管理设计图: 图4-4 角色管理设计图 角色编辑界面设计图: 图4-5 角色编辑设计界面 4.3.2 代码实现 角色的搜索功能主要是通过调用存储过程来实现,在程序中我们通过queryBySP("SearchRole", params)方式来调用数据库中的SP_SearchRole存储过程来实现的,角色的更新和删除时是通过Struts来获取要更新和删除的实体,并将这个实体存储在Carrier的载体变量中,将它传入到我们的business方法中进行删除,更新代码如: Map map = vo.getData(); PcmRole role = (PcmRole) map.get("entity"); if (role != null) {//更新实体 ((PcmRoleDAO) this.getDao()).update(role); return role.getRoleId(); } 4.4 角色设置管理 4.4.1 用户界面和流程图 要对用户进行角色设置之前必须查询出需要对哪些用户设置,角色设置就是对某一个用户或多个用户进行角色分配,由于用户和角色的对应关系是一对多,而角色和用户的关系也可以是一对多的关系,所以在用户角色设置的界面方式以table的方式来实现。其界面设置如图4-6用户角色设置图: 图4-6 用户角色设置界面图 其实现上述功能的流程图如图: 图4-7 用户角色设置功能详细流程图 4.4.2 代码实现 首先根据输入参数搜索要设置的相关用户,其代码实现为: String type = (String) ((data.get("type") != null && !data.get("type") .equals("")) ? data.get("type") : ""); List result = null; if (type.equals(UserType.TEACHER)) {//教师用户搜索 Object[] params = new Object[8]; params[1] = (data.get("uin") != null) ? data.get("uin") : ""; params[2] = (data.get("name") != null) ? data.get("name") : ""; PcmUserDAO dao = new PcmUserImpl(); result = dao.searchTeacherUser(params); } 其中dao.searchTeacherUser(params)和dao.searchStudent(params)分别是对相关教师用户和学生用户搜索的方法。他们都分别是调用SP_SearchTeacherUser和SP_SearchStudent这两个存储过程。还要对用户的相关用户角色和相关角色进行搜索,对用户的相关角色搜索和上面的搜索用户一样也是用存储过程的方式实现的,而对相关的用户角色的搜索实现,其查询代码是: hql.append("select pur from PcmUserRole pur, ").append(//教师用户角色搜索 "PcmRole as role, ").append("SmartTeacher as st, ").append( "PcmUser as user ").append( "where st.recId = user.userId and user.type = '" + UserType.TEACHER + "' ").append( " and pur.roleId = role.roleId").append( " and pur.userId = user.recId"); 用户角色设置的传输方式是通过Ajax的异步刷新来实现。 4.5 权限设置管理 4.5.1 用户界面和流程图 权限设置就是对某一个角色进行任务(系统中的每一个功能就叫做一个任务)分配,由于任务和角色的对应关系是一对多,而角色和任务的关系也可以是一对多的关系,所以在权限设置的时候采用表格的方式来进行,所以在用户角色设置的界面方式以table的方式来 实现。其界面设置如图4-9角色任务设置图: 图4-8 角色任务设置界面图 要实现角色任务的设置,首先要搜索角色、任务对象以及角色任务对象,然后再对角 色和任务这两个对象进行关系关联,如图4-9: 图4-9 角色任务功能详细流程图 4.5.2 代码实现 首先要通过输入的参数进行角色搜索、任务搜索以及角色任务搜索,将搜索的结果放 入一个叫RoleTaskSearch的对象中,并在将其如上图的界面展现出来,并在展现中提供Ajax 的角色权限设置方式,让用户在设置权限的时候操作简便。其结果展现代码如下: <% Map row = (Map) pageContext.getAttribute("element"); %> 用户通过点击页面上的“Y”和“--”来相互转换,每次转换都是通过Ajax来执行一 个后台方法。Ajax实现权限设置是通过一个Servlet和一个js回调函数来实现,其后台回调 函数实现代码如下: StringBuffer innerHTML = new StringBuffer(); innerHTML.append("").append(newValue) .append(""); String callback = "callback('" + divId + "', \"" + innerHTML.toString() + "\")"; 4.6 日志管理 4.6.1 用户界面 日志搜索界面设计: 图4-10 系统日志搜索结果设计图 系统日志查看设计图: 图4-11 系统日志查看设计图 4.6.2 代码实现 日志的搜索功能和角色管理的搜索功能相同,也是通过存储过程的方式来实现的。其 权限功能实现是在Struts的Action中完成的,该部分主要包括有日志管理、日志搜索、日志 查看、日志删除四种权限,比如对日志查看和日志删除的权限实现我们在Action里面是这 样实现的: this.showButton("CancelButton"); //检查权限 if (checkPermission("SMART_AUDIT_0403") || checkPermission("SMART_AUDIT_0404")) { if (checkPermission("SMART_AUDIT_0403")) this.showButton("DeleteButton"); } else { throw ExceptionUtil.getPermissionException(this.getCurrentUser(), "SMART_AUDIT_0403,SMART_AUDIT_0404"); } checkPermission()方法是检查用户是否具有其传入参数的权限功能,showButton()则是控制前台jsp页面的功能体现的。 4.7 菜单权限控制 4.7.1 用户界面和流程图 其菜单在页面上的展现方式设计图如图: 图4-12 菜单展现设计 菜单功能实现详细设计流程图如图: 图4-13 菜单功能详细设计流程图 4.7.2 代码实现 菜单的权限管理是通过J2EE中的自定义标签来实现,在前台的菜单展示通过来实现,将所有的菜单权限的控制放在标签中来实现。在标签中首先我们要获取用户权限CODE,主要通过代码: Authorization permission = (Authorization) (pageContext.getSession()) .getAttribute(Constants.USER_KEY); HttpServletRequest req = (HttpServletRequest) pageContext.getRequest(); this.setTasks(permission.getTasks()); 来实现,在取得了用户的权限CODE之后,我们就通过一个displayMenu()方法来检测哪些菜单是在用户的权限范围内的,并将生成在用户权限范围内的菜单结果返回。displayMenu 代码实现如下: String[] str = taskCode.split(","); for (int i = 0; i < str.length; i++) { String[] temp = str[i].split(";"); for (int j = 0; j < temp.length; j++) { if (!tasks.containsKey(temp[j])) { break; } if (j == temp.length - 1) return true; } } 5 结果测试、性能分析 5.1 单元测试 单元测试主要是通过一个开源项目JUNIT进行,不过平时也自己手动写了一些测试程序。系统中基于JUNIT测试的都是通过UnitTestCase类,而UnitTestCase类是继承Junit的TestCase的一个子类,该类实现代码如下: protected Object call(Carrier vo) {//代理 PublicProxy proxy = PublicProxy.getInstance(); Object obj = null; try { obj = proxy.process(vo); } catch (ApplicationException ex) { throw ex; } return obj; } 下面列出了对PcmUserBusiness类的三个方法的测试例子,代码如下: Map params = new HashMap();//教师用户搜索方法测试 params.put("teacherNo", ""); params.put("teacherUin", "teacher"); params.put("teacherName", ""); params.put("teacherSubject", ""); //代理调用 List result = (List) this.call(new Carrier(params, BusinessConstants.PCM_USER_BUSINESS, "SearchTeacher")); SearchTeacher entity = null; for (Iterator i = result.iterator(); i.hasNext();) { entity = (SearchTeacher) i.next(); super.assertEquals(entity.getTeacherUin(), "teacher1");//判断结果 //教师用户基于NO的搜索方法测试 public void testProcessSearchTeacherByNo() { Map params = new HashMap(); params.put("teacherNo","A20030332095"); List result = (List) this.call(new Carrier(params, BusinessConstants.PCM_USER_BUSINESS, "SearchTeacherByNo")); this.assertNotNull(result); //判断结果 } 5.2 系统功能测试 5.2.1 系统菜单权限功能测试 如果登录用户具有所有的菜单权限,那么他登录系统后看到的菜单列表如图5-1: 图5-1 菜单列表 由于当前登录用户只具有Admin角色(可以通过角色设置查看),我们通过权限管理可 -2: 以对Admin角色进行设置,我们取消Admin角色的日志管理和角色管理两个模块,如图5 图5-2 权限管理图 取消了日志管理和角色管理这两个模块的权限后,从新登录系统或按F5刷新session(用户也同样从新登录了一次)后,我们会看到如图5-3的菜单列表。 图5-3 菜单列表 从上面的测试结果可以看到,系统对菜单的权限控制功能成功。 5.2.2 系统功能权限测试 现在我们将对系统中的一些功能进行测试,这里只举两个测试例子,一个是对教师用户的更新权限进行测试,另一个是对用户的角色权限进行测试。 1. 教师用户权限测试 我们用教师用户UIN为:teacher的用户登录,该用户目前拥有整个系统的全部权限。然后我们还要选择一个教师用户UIN为:StuLife该用户也具有所有的系统权限。 第一步:查看当前这两个教师用户更新的权限情况,如图5-4、图5-5: 图5-4 teacher用户权限更改前的更新页面图 图5-5 StuLife用户权限更改前的更新页面图 我们通过权限设置页面将“教师用户编辑”这个权限去掉。这个权限主要控制教师用户是否可以更新其它用户的信息。如果我们将他去掉的话,那么我们的正确结果应该是teacher将不能够更新其它人的用户信息,但是他可以更新自己的用户信息。其更改后的结果图如下: 图5-6 StuLife 更改权限后的更新页面图 图 5-7 teacher 更改权限后的更新页面图 从以上的结果分析,说明教师用户的更新权限控制正常。 2. 用户角色权限测试 我们选择两个角色,Admin和STU,其中当前用户teacher只具有Admin角色,并且Admin角色不具有删除日志的权限(日志的删除权限已经经过测试通过),而STU则具有删除日志的权限。通过角色设置来给teacher用户加上STU角色。通过上面的方式为teacher用户添加了一个新的STU角色,由于这个角色包含了日志删除的权限,为此我们的预期结果应该是teacher也应该包含日志删除权限。其更改了teacher用户角色之后的结果如图5-8: 图5-8更改teacher用户角色后 从以上结果进行分析可以看出用户角色权限控制是正常的。 结 论 通过对系统管理功能的前期分析、设计,以及后期的开发,虽然没有完全按照预期的时间进度安排完成了相关的系统设计和程序开发,但最终还是完成了最初系统设计的全部功能,包括:实现对多种用户的管理和维护;实现系统角色的管理和维护;实现对系统功能的权限管理和维护;实现对用户角色任务的管理和维护;实现对日志的管理和维护;实现多种用户的登陆;实现对菜单权限的管理。 该系统以开发的目的是做一个通用的系统功能管理模块,支持尽可能多的数据库后台,尽最大可能方便软件开发人员的二次开发和最终用户使用,还要保证权限管理技术的先进性,注重灵活性和安全性。 在这个系统的开发中,让我感受最深的是,要想让这个系统功能管理模块很轻松的融入其它的应用系统中,最好的方式就是将系统功能管理模块独立出来。比如权限管理,我们 不能够在这个独立的系统功能模块里面直接的去实现对应用系统功能的权限管理控制,而应该为应用系统间接的实现权限管理控制和提供权限设置的接口,让他们自己动手来实现管理的对象目标,这样我们可以将开发的功能模块就很容易接入其它的应用系统中,而不需要做什么改动,提高系统的可扩展性。 本系统不但完成了设计上的系统功能开发,同时也将其应用到SMART系统中进行二次系统开发,但系统仍然在很多设计方面存在着不足之处,比如安全性等方面,有待后期进行改进。 参考文献 [1] Bruce Eckel[美]. Thinking in Java (3rd Edition)[M] .北京:电子工业出版社,2002。 [2] 计磊,李里,周伟.精通J2EE—Eclipse、Struts、Hibernate及Spring整合应用案例[M].北京:人民邮电出版社,2006。 [3] 阿卢.J2EE核心模式[M].北京:机械工业出版社,2004。 [4] 罗时飞.精通Spring[M].北京:电子工业出版社,2005。 [5] 陈昊鹏,饶若楠.Java编程思想:第3版[M].北京:机械工业出版社,2005。 [6] 夏昕,曹晓钢,唐勇.深入浅出Hibernate [M].北京:电子工业出版社,2005。 [7] 林琪.Jakarta Struts编程(第二版)[M].北京:中国电力出版社,2005。 致 谢 本论文的工作是2007年2月至2007年6月在成都信息工程学院网络工程系完成的。在这里我首先感谢的是我的指导老师叶立轩老师,感谢他在我需求分析和设计期间给我提供的良好建议和思路,感谢他在我论文撰写期间细心的检查和提供良好的建议;还要感谢代码检查组老师对我的信任和能力的认可,这给我完成后期的开发工作提供了很大的鼓励和信心;同时我还要感谢所有SMART系统开发小组的同学,他们在我开发期间给予了我极大的支持和帮助。 最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢~ 作者简介 姓 名:何义凯 性别: 男 出生年月:1985-04-12 民族: 汉 E-mail: zywmh1997@163.com 声 明 本论文的工作是 2007年 2 月至2007年 6 月在成都信息工程学院网络工程系完成的。文中除了特别加以标注地方外,不包含他人已经发表或撰写过的研究成果,也不包含为获得成都信息工程学院或其他教学机构的学位或证书而使用过的材料。除非另有说明,本文的工作是原始性工作。 关于学位论文使用权和研究成果知识产权的说明: 本人完全了解成都信息工程学院有关保管使用学位论文的规定,其中包括: (1)学校有权保管并向有关部门递交学位论文的原件与复印件。 (2)学校可以采用影印、缩印或其他复制方式保存学位论文。 (3)学校可以学术交流为目的复制、赠送和交换学位论文。 (4)学校可允许学位论文被查阅或借阅。 (5)学校可以公布学位论文的全部或部分内容(保密学位论文在解密后遵守此规定)。 除非另有科研 合同 劳动合同范本免费下载装修合同范本免费下载租赁合同免费下载房屋买卖合同下载劳务合同范本下载 和其他法律文书的制约,本论文的科研成果属于成都信息工程学院。 特此声明~ 作者签名: 2007年 月 日
本文档为【SMART系统-系统功能管理模块设计与开发—免费计算机毕业设计论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_337177
暂无简介~
格式:doc
大小:479KB
软件:Word
页数:0
分类:工学
上传时间:2017-09-28
浏览量:4