资源描述
学号:13071156西安电子科技大学学士学位论文Struts2技术在知识管理系统中的应用Struts2 in Knowledge Management System 学院: 软件学院 专业: 软件工程 班级: 130712 姓名: 张 杨 导师: 杜军朝 摘 要摘 要知识管理是发达国家的企业为适应知识经济时代的要求而建立的新型管理模式,是通过对知识进行有效的识别、获取、开发、分解、使用、存储和共享,为知识构建转化和共享的途径,以运用集体的智慧提高企业的应变和创新能力,从而不断提高其核心竞争力,在激烈的市场竞争中占据优势地位。本文在分析了系统功能需求的基础上,设计并实现了一个高性能、易操作的知识管理系统。在具体实现的功能模块上,本系统实现了如下四大功能模块:(1) 知识模型录入;(2) 知识地图;(3) 知识评价;(4) 知识检索; 设计中采用了B/S模式保证系统的通用性,使用Struts+Hibernate+Spring框架保证系统的可扩展性和可维护性,使用Div+CSS进行布局和美工来实现页面的易操作性,使用过滤器和验证等技术保证系统的正确性和安全性;最后对系统进行了测试。实验结果表明,该知识管理系统的可行性和有效性达到了设计要求。关键词:知识管理 知识地图 知识模型 知识评价AbstractAbstractEnterprise knowledge management is developed to meet the requirements of the knowledge economy era, established a new management model, through effective knowledge identification, acquisition, development, decomposition, use, storage and sharing, knowledge transfer and sharing ways to build To use the collective wisdom and innovation to improve corporate response capabilities to continuously improve their core competitiveness, in the fierce market competition, the dominant position.Based on the analysis of the system based on functional requirements, design and implement a high-performance, easy-to knowledge management systems. In the concrete realization of the functional module, the system achieve the following four functional modules:(1) Knowledge model input;(2) Knowledge map;(3) Knowledge evaluation;(4) Knowledge retrieval; Used in the design of the B / S mode to ensure the systems versatility, the use of Struts + Hibernate + Spring framework to ensure the system scalability and maintainability, the use of Div + CSS for page layout and artwork to achieve the ease, the use of filtering Devices and authentication technologies to ensure the accuracy and security of the system; Finally, the system was tested. Experimental results show that the knowledge management system is feasible and effective to achieve the design requirements.Keywords: Knowledge Management Knowledge Map Knowledge model Knowledge Evaluation目 录i目 录第一章 绪论11.1课题背景11.2国内外现状研究21.2.1国内外现状及说明21.2.2国内现状的问题31.3知识管理的作用、内容和意义41.4论文的章节安排5第二章 相关技术12.1相关理论12.1.1 MVC12.1.2 SSH12.1.3 Struts212.1.4 Hibernate12.1.5 Spring12.1.6 B/S架构12.2开发平台介绍22.2.1 数据库 MySQL Server5.022.2.2 应用服务器 Tomcat6.022.2.3 集成开发环境 MyEclipse8.022.3SSH框架介绍22.3.1SSH框架简介22.3.2表示层Struts2的技术介绍32.3.3业务逻辑层Hibernate框架的应用42.3.4数据持久层Spring框架的应用52.4其它技术介绍62.4.1 CSS+DIV 布局管理框架的应用6第三章 需求分析和总体设计13.1系统需求分析13.1.1系统角色13.1.2角色需求分析13.2模块功能设计73.2.1模块功能分析73.3系统流程图103.3.1用户登录时序图103.3.2用户在系统中操作流程时序图113.3.3用户在系统中查询操作流程时序图123.4 系统架构设计分析133.4.1系统设计原则133.4.2系统总体架构143.5 系统组件设计架构153.6 数据库设计163.6.1 数据库E-R图173.6.2 数据库表设计183.7 本章小结19第四章 系统的设计和实现14.1 系统模块详细设计14.1.1知识管理子系统14.1.2知识检索子系统14.1.3知识录入子系统24.1.4知识评价子系统34.1.5知识地图子系统34.2 系统界面设计44.2.1总体布局设计(主页)44.2.2网站说明模块54.2.3注册模块64.2.4知识模型检索模块74.2.5知识模型管理模块74.2.6知识录入模块94.2.7知识地图模块104.3 系统功能的部分完善104.3. 1 jQuery验证插件104.3.2分页技术114.4本章小结12第五章 系统测试15.1 测试环境15.2 测试操作和结果15.2.1注册用户测试15.2.2登陆测试35.2.3知识模型检索测试45.2.4知识模型录入测试55.3 测试总结6第六章 结论与展望16.1 本文总结162问题和展望1致 谢1参考文献1致 谢51第一章 绪论1.1课题背景 美国的一位管理学教授彼得德鲁克教授在20世纪60年代首先提出了知识管理的概念【1】,他认为人们正在进入知识社会,社会中最基本的经济资源是知识,知识也将会在人们工作时体现出巨大作用,而以资本和自然资源以及劳动力为主要经济资源的时代将会慢慢褪色消失。之后,彼得德鲁克教授又相继发表了多篇论文来论述自己的观点,对于知识管理的内涵进行了进一步的阐述。他进一步指出“在未来的企业中都将会不约而同地选择将知识做为基础,知识的来源是企业中的各种各样的专家,而专家则是根据同事、客户和大量的上级信息进行自主决策和自我管理”。在此之后,90年代初波士顿大学信息系统管理学教授托马斯H达文波特也在知识管理的工程实践和系统方面做出贡献,提出了知识管理模型的两段论和知识管理模型。 近年来,在国内外的学术界和企业界中知识管理理论的研究已经得到了越来越多的关注,并随着各种信息化系统的普及,知识和信息在一个企业中的地位也越来越重要。而问题也就随之出现,如果能够有效地累积知识,有效地管理知识,有效地进行知识的共享,那么企业在竞争的洪流中也将会更加有利,所以这也成为了一个企业必须的研究课题。有效地知识管理实际上就是当面对不可预知的环境变化时,为满足企业要提高适应力、生产力和竞争能力的要求,从而产生的将企业中的信息技术和处理数据以及信息的能力同企业人员的创造力与创新能力结合起来的一个过程【2】。作为一个成功的企业,一定是将对公司内部的知识结构进行有效结构,能够使每个员工头脑内的知识以一种形式表式出来,并且能够为公司所用,作出相应的贡献。而建立一个能够让那个员工学习并成长的学习系统也成为公司中竞争的核心。 知识管理系统正是为了解决上述问题而诞生的,知识管理系统(KMS)作为实现知识管理的计算机系统,是一个具有知识管理能力和协同工作能力的软件系统,是一种融管理方法、知识处理、智能处理乃至决策和组织战略发展规划于一身的综合系统,是知识管理的实施平台。【3】它是一个专业的员工技能集成工具,使用它可以发现在整个组织或者企业中,哪些人在特定的领域中具备了较高的专业的技能,并探讨如何分享这些技能。知识管理系统也是支撑组织知识管理实施的IT系统。知识管理系统主要是关于问题、围绕文档、知识模型、知识地图等核心知识,实现知识的添加、修改、查找、维护、共享等管理环节,同时通过企业制定的相关激励管理机制,使企业成员之间相互促进,促使知识管理系统的各个环节的完善得到充分保障。而要在企业进行知识管理,主要的任务就是让企业认识到什么是知识管理,让企业明白知识管理的意义所在,然后评估企业的管理现状,让企业认识到知识管理的重要性和确定出怎么样实施知识管理的基本方向。主要任务是让企业认识到知识管理,首先是对企业中层及高层成员进行相关培训,举出相关发展趋势和实例说明,特别对于高层成员。培训的方法可以利用知识管理的成熟度模型等评价工具进行相关说明,评估出企业知识管理的问题并现状进行调研分析企业管理的主要问题;分析出知识管理将会为企业带来的长期和短期的影响,从而为是否进行知识管理时间提供支持,是否制定知识管理战略和具体实施方向等。其实整个知识管理的实施可以构成一套系统,前提就是必需成分认识企业需求,并进行详细规划,考虑多角度的实施效果,通过对知识模型的详细分析和企业知识管理现状的详细剖析,结合企业业务流程,从而进行管理规划。做好知识管理,利用先进的管理经验,可以使得企业的产品和服务等各个方面得以提高,最终做出自己的特色,提高企业的竞争力。1.2国内外现状研究 1.2.1国内外现状及说明在知识管理的领域中,国外的发展要好于中国,西方的企业在知识管理方面,技术手段领先于中国,而据美国的一则新闻中说,思科公司全部的销售和技术人员都是在线学习知识。而一则数据也说明了美国在知识管理方面的成就:2001年产业现状报告中指出,美国公司在只是利用方面的平均年增长突破了100%。在一则百科信息中,据Kai Mertins的2000年的一份调查数据表明,当时德国的1000强企业和欧洲的200强中,拥有知识管理系统的企业占到62.3%。国外的优秀企业不仅重视知识的外部获取,更注重从公司内部获取。比如著名的3M公司注重内部的知识环境,注意将发现的问题进行仔细思考,进而转化为对自己有利的知识。国外的很多公司除了注重知识的获取,还注重知识的存储,并为存储建立了相应数据库或知识管理系统来存储知识。著名的AIDS公司就是个很好的例子,主要业务是商业和信息技术咨询。它从96年开始建立了一个20GB以上的超大Oracle数据库,用以与联邦财务系统相关联的大型知识仓库。在国内,知识管理虽然还正处在发展阶段,但还是有一些企业已经建立了知识管理系统,比如华为公司,既重视挖掘内部员工的知识,也注意获取其它企业的信息。注重通过知识的内外结合的知识获取,迅速积累知识,从而提升自己管理水平,为走向国际市场铺垫。然而国内外的大多企业,缺乏对于知识管理的重视和先进的技术及有效地管理机制,导致许多企业并没有真正的有效利用知识和知识的维护,知识的积累还是大多存在于员工的头脑中,这也导致了企业的发展脱节。随着知识和技术的流失,企业浪费大量的知识型人才和劳动力成本。特别是国内的体现更加明显,人员的经常性流失只能靠企业不断招聘解决,进而造成企业竞争力不强。 1.2.2国内现状的问题 在国内,现在的企业知识管理过程中,通常存在如下问题:l 知识分散难获取企业的大量知识,分散保存在各个服务器、各个系统,个人电脑,甚至个人的头脑中。知识难以获取,导致工作效率低下,工作出现重复劳动。知识缺乏全局的、系统的视图,缺少关联,新员工上手难。 l 地域分布难协同 组织中的各个部门、办事处或子公司在地理上分散,导致沟通、知识共享和协同工作困难,流程运转不畅,工作效率低下。 l 知识易流失 一些重要的知识,还处于隐形知识形态,仅仅位于少数员工的头脑中,没有显性化沉淀下来。员工的流失,会直接导致企业知识的流失。 l 知识资产难保护 知识的共享和保密是一个冲突。如何让知识被正确的人获取,同时减少管理的复杂性,是企业知识管理的一个难题。 l 知识质量难评估 知识不是静态的,知识可能快速老化需要不断更新。企业往往缺乏对知识质量评估和有效性进行识别的机制,过时的知识需要更新,错误的知识需要剔除,同时能够挖掘出优质的知识。 l 员工排斥知识管理 额外的知识管理工作增加了员工的工作量,员工进行知识贡献的积极性不高。这和公司的文化、制度也有关系。知识管理,必须让知识工作者工作更容易才容易推行。 l 领导难管理 企业需要相关信息系统来简化知识管理工作;同时,通过知识管理的一些统计数据,对员工进行评估考核,激励员工贡献,构建鼓励知识贡献的文化氛围。1.3知识管理的作用、内容和意义 有效的管理企业的知识资产和成员智力,为企业创造价值,正逐步为各企业所重视。此论文研究的目的也是根据知识管理系统所涉及的方面,通过知识系统的构建,包括知识的获取、归类、整合应用、知识共享和模型建立、模型评价等各个方面,为企业提供一个完整的知识管理系统解决方案,并为知识累积和知识共享提供平台。此篇论文的研究内容是通过组建企业知识管理系统的过程,将软件工程的相关理论加以实践,并进行知识管理系统的内涵总结,对于需求分析、概要和详细设计、系统实现、测试等环节进行深入了解,对于系统构建中遇到的问题进行经验总结。论文的意义在于通过知识管理系统的实现,给企业内部管理和员工知识累积带来变化。知识管理系统建立后,一定程度上将为企业的知识积累、分享带来更多的变化,帮助企业减少人才流失与相关技术知识的流失等情况,而应用企业知识管理系统也将会帮助企业完成如下商业目标:1.鼓励共享和交流,培育创新精神,进而构建学习型组织;2.通过减少反应时间,提升客户服务质量;3.快速向市场提供产品和服务来提高收入;4.识别雇员的知识价值,给以相应报酬,从而提高雇员留职率;5.减少多余或不必要环节,让流程自动化,精简操作,降低成本。1.4论文的章节安排本篇论文共分为六个章节,以下是章节内容介绍:1. 绪论:阐述了本篇论文的课题背景及论文的国内外现状研究,最后阐述论文产生的作用、内容和意义;2. 技术方案:包括系统所用到的组件、技术等介绍;3. 需求分析和总体设计:主要是对于需求管理进行需求分析,要做什么框架结构,能完成什么功能及本人在系统中扮演的角色及系统的模块划分等;4. 系统设计与实现:主要包括知识管理系统的设计思路、架构设计、数据库设计、界面设计、功能结构设计、模块设计及相关实现;5. 系统测试:主要包括测试方法的说明、测试用例、测试步骤和结果以及结论;6. 总结与展望:对于本论文出现的问题和不足进行总结,提出相应的改进趋势和发展方向。第二章 相关技术2.1相关理论2.1.1 MVCMVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们的处理过程是:首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。2.1.2 SSH SSH框架是通过集成Struts2、Spring、Hibernate三种框架技术来对传统的J2EE Web开发模型加以改进,以形成一种新的、轻量型的J2EE架构【4】。2.1.3 Struts2 Struts2是在WebWork基础上发展起来的,是建立在称为XWork的Command模式框架之上的强大的基于Web的MVC框架【5】。2.1.4 Hibernate Hibernate是一种开源的、Java语言下的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,不仅负责从Java类到数据库表的映射,还提供了面向对象的数据查询检索机制,从而极大地缩短的手动处理SQL和JDBC上的开发时间【6】。2.1.5 Spring Spring是一个开源框架,它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。2.1.6 B/S架构 B/S(Browser/Server)结构即浏览器-服务器结构。与C/S结构不同,起客户端不需要安装专门的软件,只需要浏览器即可,浏览器通过Web服务器与数据库进行交互,可以方便的在不同平台下工作。B/S结构简化了客户端的工作,它是随着Internet技术兴起而产生的,对C/S技术的改进,但该结构下服务器端的工作较重,对服务器的性能要求更高。2.2开发平台介绍知识管理系统基于B/S架构构建,采用java语言开发,开发工具有MySQL5.0、Tomcat6.0、jdk1.6.0_10和Myeclipse8.0构成,下面分别对以上所用到的开发工具进行介绍:2.2.1 数据库 MySQL Server5.0作为一个支持并发连接、多用户、多线程的关系数据库系统。MySql提供C、C+、Java等多种语言的API接口【7】.而且它还支持多种平台,拥有灵活和安全的权限系统,对密码进行加密,可以处理大型数据【8】。2.2.2 应用服务器 Tomcat6.0 Tomcat是一种免费的开放源代码的Servlet容器。Tomcat作为一个Servlet容器,负责处理客户端的请求,把请求传送给Servlet并把结果返回给客户端。Tomcat服务器除了能够运行Servlet和JSP,还提供Web服务器的功能。而人力资源管理系统应该能适用大部分的环境且容易运作,所以采用了目前最流行的Tomcat来处理客户端和服务器端的交互。2.2.3 集成开发环境 MyEclipse8.0 MyEclipse是在Eclipse集成开发环境中提供Web应用程序开发的插件,在目前软件开发的领域中,MyEclipse是一个使用非常广泛的工具,在该项目开发中选择的版本是MyEclipse8.0【9】。2.3SSH框架介绍2.3.1SSH框架简介SSH框架是通过集成Struts2、Spring、Hibernate三种框架技术来对传统的J2EE Web开发模型加以改进,以形成一种新的、轻量型的J2EE架构。集成SSH框架下的系统框架如图2.1所示。图2.1 集成SSH框架下的系统框架图基本业务流程:在表示层中,首先通过JSP3页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts2根据配置文件(struts.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果【10】。2.3.2表示层Struts2的技术介绍Struts框架是当前Web开发中最为流行的设计和开发框架,借助于Struts框架,开发人员可以把主要精力集中在如何解决实际业务处理上,而不需要在页面和业务代码之间的处理上花费很多时间【11】。与此同时,Struts框架允许开发人员根据实际的需要进行扩展和定制,从而可以更好的适应用户的需求【12】。Struts2框架的核心是一个灵活的控制层,它基于以下标准技术,如:Java Servlet、JavaBean资源绑定、XML和各种Jakarta Commons包。Struts2开发框架遵循MVC(Model-View-Controller)设计模式,这样可以将整个工程分为3个相对独立而又能协同工作的组成部分(包括模型、视图、控制器),开发人员可以从负责的页面代码、业务代码和控制流程中具体分工【13】。Struts2的组件如图2.3所示,它显示了这些组件是如何工作的。 图2.2 Struts2组件本系统中的Struts2框架中的视图是JSP页面构成的,ActionServlet是主控制器,只能有一个,Action是分控制器,可以有多个【14】。首先读取配置文件struts-config.xml进行初始化,客户端发送请求传送给Web服务器,根据web.xml配置若是*.do请求则被ActionServlet接收,ActionServlet先将JSP中的参数填充到对应ActionForm的属性中,在ActionForm中还可以选择是否进行验证(validate),然后分发请求给Action,Action调用模型层中的业务方法实现业务逻辑处理,之后Action根据处理结果的不同返回不用的ActionForward对象给ActionServlet,ActionServlet根据配置将结果转发给对应的JSP页面(或其他的Action)进行响应,最后页面将最新结果呈现出来【15】。2.3.3业务逻辑层Hibernate框架的应用 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate是非常优秀、成熟的ORM开源框架【16】。它是连接Java应用程序和关系数据库的中间件。它提供了强大、高性能的Java对象和关系数据的持久化和查询功能。它对JDBC API进行了封装,负责Java对象的持久化,在分层的软件架构中为持久化层,封装了所有数据访问细节,摆脱传统的数据库的麻烦连接和操作,实现数据库操作的封装,使数据库操作简明化,使业务逻辑层可以专注于实现业务逻辑。同时Hibernate去掉了很多让人心烦的工作,让程序员可以集中等多的精力到业务问题上,减少大量的开发时间【17】。Hibernate在本系统中体系机构如图2.4:图2.3Hibernate 体系结构Hibernate是一种ORM(对象关系映射)映射工具,能够建立面向对象的域模型和关系数据模型之间的映射【18】。简单的说,ORM11即对象-关系映射就是Java应用中的对象到关系数据库中的表的自动的持久化。通过ORM,把对关系表的直接操作变成了对Java类的属性和方法的操作,更加体现了Java面向对象的思想,更加符合了人的思维方式,更加便于系统的开发、扩展与维护【19】。2.3.4数据持久层Spring框架的应用Spring框架的核心是控制翻转IoC(Inversion of Control)/依赖注入DI(Dependence Injection)机制。IoC是指由容器中控制组件之间的关系而非传统实现中由程序代码直接操控,这种将控制权由程序代码到外部容器的转移,称为“翻转”【20】。DI是对IoC更形象的解释,即由容器在运行期间动态地将依赖关系(如构造参数、构造对象或接口)注入到组件之中。Spring采用设值注入(使用Setter方法实现依赖)和构造子注入(在构造方法中实现依赖)的机制,通过配置文件管理组建的协作对象,创建可以构造组件的IoC容器【21】。这样,不需要编写工厂模式、单例模式或者其他构造的方法,就可以通过容器直接获取所需的业务组件。Spring框架的结构如图2.4所示。图2.4 Spring框架模块组成Spring框架由七个定义明确的模块组成,且每个模块或组件都可以单独存在,或者与其他一个或多个模块联合实现。Spring Core Container是一个用来管理业务组件的IoC容器,是Spring应用的核心;Spring DAO和Spring ORM不仅提供数据访问的抽象模块,还集成了对Hibernate、JDO和iBatis等流行的对象关系映射框架的支持模块,并且提供了缓冲连接池、事务处理等重要的服务功能,保证了系统的性能和数据的完整性;Spring Web模块提供了Web应用的一些抽象封装,可以将Struts、Webwork等Web框架与Spring整合成为适用于自己的解决方案【22】。2.4其它技术介绍2.4.1 CSS+DIV 布局管理框架的应用在Web页面设计中经常会遇到页面中包含很多重复的区域,比如页面头部、菜单导航栏和页面尾部。CSS是一个使用简单但有效的标记来实现模板和布局的框架。它可以用来替换Struts2.0中的模板标记库但功能更加强大【23】。技术上,DIV是一个JSP页面中的一个矩形区域。DIV也可以由其它DIV装配而成。DIV可以递归构建,并表现为一个树。如图2.6,树中每个节点是一个区域。图2.6 DIV以被表达为树样式表定义如何显示 HTML 元素,就像 HTML 3.2 的字体标签和颜色属性所起的作用那样。样式通常保存在外部的 .css 文件中。通过仅仅编辑一个简单的 CSS 文档,外部样式表使你有能力同时改变站点中所有页面的布局和外观【24】。 第三章 需求分析和总体设计3.1系统需求分析3.1.1系统角色根据企业知识管理系统涉及的知识经营战略,通过组建企业的知识管理系统,形成知识创造、知识共享的文化环境的实际需求,系统用户包括游客用户(未登录用户)、普通用户(注册用户)、管理员用户,所以系统角色有游客用户(未登录用户)、普通用户(注册用户)、管理员用户三种角色。不同角色的功能需求也不相同,下面是对上述不同角色的需求分析。3.1.2角色需求分析3.1.2.1管理员 以下分别说明游客用户(未登录用户)、普通用户(注册用户)、管理员用户三种角色的需求分析。图3.1表示管理员系统功能用例图。 图3.1 普通管理员系统功能用例图如图普通管理员功能分为登陆、对录入模型的审核、模型的发布。此角色的系统功能结构图为: 图3.2 管理员系统功能结构图具体功能分析如下:l 管理员登录:首先填写用户名和密码,再点击登录按钮,之后系统验证并给 出提示,验证成功后进入系统。l 审核录入模型:首先对于用户录入的模型进行查看,不符合审核要求的模型 可以进行删除,如果模型符合要求但不完整的可进行修改。l 发布模型:对审核通过的模型能够进行发布,将审核后的模型添加到数据库 中在知识模型页面中进行显示。3.1.2.2游客(未登录用户)图3.3表示游客功能用例图。图3.3 游客功能用例图如图普通游客的功能为注册登录功能,知识地图的查看功能,知识模型的查询功能以及浏览知识模型功能。功能结构图为:图3.4游客功能结构图具体功能分析如下:l 用户注册登录:首先填写注册信息,包括用户名和密码、地址、Email等, 填写完成后再点击注册按钮,之后系统验证并给出提示,验 证成功后进入登陆页面。之后填写用户名和密码,再点击登 录按钮,之后系统验证并给出提示,验证成功后进入系统。l 知识地图查看:包括主题查看和类别查看两个部分。在主题查看中,用户可 根据系统自定义编好的主题直接点击进行模型的查看,将属 于同一主题的模型显示出来。而在类别查看中,用户点击后 系统将会把属于同一类类别下的所有知识模型进行显示。l 模型查询:包括全文检索和特征检索两个类别。在全文检索中,用户需要输 入要检索的内容,完成输入后会将用户输入在数据库中进行检索, 并将检索到的所有内容进行显示。在特征检索中,会给用户列出 系统模型的相关特征,用户可以根据自己需求点击所要查找模型 的特征,完成后系统会根据用户要求的特征在数据库中进行查询 并将结果进行显示。l 模型查看:分为已定义模型查看和自定义模型查看。在已定义模型查看中, 用户根据系统定义好的模型类别进行选择,选择完成后系统会显 示所有与此类别相关的所有模型。在自定义查看中,用户需要输 入所查看模型的类别,输入完成后系统将在数据库中进行检索, 并把所有与用户输入相关的类别模型进行显示。3.1.2.3用户(已登录用户)图3.5表示用户功能用例图。图3.5 游客功能用例图如图用户的功能为模型录入功能,知识地图的查看功能,知识模型的查询功能以及浏览知识模型功能和模型评价打分功能。功能结构图为:图3.6 用户功能用例图具体功能分析如下:l 模型录入功能:包括模型的新增、修改和删除。点击新增按钮后会跳出模型 录入页面,包括知识模型模型名称,知识知识分类(分为已 定义分类和自定义分类),模型介绍,输入完成后点击录入按 钮,提交管理员审核。点击修改按钮后可以对用户自己录入 (审核后的)的模型进行修改。点击删除按钮可以对录入(审 核后的)的模型进行删除。l 知识地图查看:包括主题查看和类别查看两个部分。在主题查看中,用户可 根据系统自定义编好的主题直接点击进行模型的查看,将属 于同一主题的模型显示出来。而在类别查看中,用户点击后 系统将会把属于同一类类别下的所有知识模型进行显示。l 模型查询:包括全文检索和特征检索两个类别。在全文检索中,用户需要输 入要检索的内容,完成输入后会将用户输入在数据库中进行检索, 并将检索到的所有内容进行显示。在特征检索中,会给用户列出 系统模型的相关特征,用户可以根据自己需求点击所要查找模型 的特征,完成后系统会根据用户要求的特征在数据库中进行查询 并将结果进行显示。l 模型查看:分为已定义模型查看和自定义模型查看。在已定义模型查看中, 用户根据系统定义好的模型类别进行选择,选择完成后系统会显 示所有与此类别相关的所有模型。在自定义查看中,用户需要输 入所查看模型的类别,输入完成后系统将在数据库中进行检索, 并把所有与用户输入相关的类别模型进行显示。l 模型评价打分:分类查看评分和用户打分。在查看评分中,用户可以根据自 己查询到的模型进行评分查看,来判断模型是否真的对自己 有用。而在用户打分中,用户可以根据查询到的模型自己打 分,根据模型的满意度给出自己的评价,评分分为5个等级, 即1、2、3、4、5分,用户点击分数后,系统将计算出模型 的平均分进行显示。3.2模块功能设计3.2.1模块功能分析根据系统模块功能需求将模块划分为以下5个:知识管理子系统、知识检索子系统、知识审核发布子系统、知识评价打分子系统、知识地图子系统。3.2.1.1知识管理子系统 图3.7为知识管理子系统的用例图:图3.7知识管理子系统用例图知识管理子系统中分类模型的增加、修改、查找、删除。而用户只能对自己录入的模型进行增加、修改、删除。可以对系统模型进行查找。3.2.1.2知识检索子系统图3.8为知识检索子系统的用例图:图3.8知识检索子系统用例图 分为全文检索和特征检索两个类别。在全文检索中,用户需要输入要检索的内容,完成输入后会将用户输入在数据库中进行检索,并将检索到的所有内容进行显示。在特征检索中,会给用户列出系统模型的相关特征,用户可以根据自己需求点击所要查找模型的特征,完成后系统会根据用户要求的特征在数据库中进行查询并将结果进行显示。3.2.1.3知识审核发布子系统图3.9为知识审核发布子系统的用例图:图3.9知识审核发布子系统用例图 包括对审核录入模型:首先对于用户录入的模型进行查看,录入前不符合审核要求的模型可以进行删除,如果模型符合要求但不完整的可进行修改。发布模型:对审核通过的模型能够进行发布,将审核后的模型添加到数据库中在知识模型页面中进行显示。3.2.1.4知识评价打分子系统图3.10为知识评价打分子系统的用例图:图3.10知识评价打分子系统用例图 在模型评价打分模块中,用户可以在打分的同时查看评分。在查看评分中,用户可以根据自己查询到的模型进行评分查看,来判断模型是否真的对自己有用。而在用户打分中,用户可以根据查询到的模型自己打分,根据模型的满意度给出自己的评价,评分分为5个等级,即1、2、3、4、5分,用户点击分数后,系统将计算出模型的平均分进行显示。3.2.1.5知识地图子系统图3.11为知识地图子系统的功能结构图:图3.11知识地图子系统用例图知识地图的主要功能在于,当需要某项专业知识时,可以透过知识地图的指引,找到所需的知识。知识地图提供了以主题和地图这两种路径对知识进行组织。在存储知识的时候,用户就需要把当前知识与相关的主题进行关联;而地图是在知识存储以后,才把知识和地图关联。而地图维护就是当知识存储以后,知识地图将会根据用户的应用性质把知识进行重新组织,其目的咎是告诉用户所需要的知识在哪些位置。地图维护模块主要对管理地图库、编制地图等。地图导航就是地图以主题和类别的形式展现在页面上,一个类别下有多个主题,用户即可以通过主题进行模型的精确查找,又可以通过类别的查找查出一类模型。3.3系统流程图 对于系统进行深入分析后,用户角色的各个模块操作流程如下3.3.1用户登录时序图 包括用户的登录以及用户对自己信息进行修改。图3.12用户登录时序图 首先用户登录系统,先进入登陆界面,输入登录的用户名和密码,进入用户服务模块,根据用户名和密码在用户登录DAO中执行,验证用户名和密码,之后系统在数据库中进行查找,成功后进入系统,失败则返回到登陆页面,登录后用户可以根据用户名和密码找到自己的账号,找到后可以进行用户名和密码的修改。管理员也用户情况相同,步骤也相同。但不同点是,用户需要先注册才能登录系统。3.3.2用户在系统中操作流程时序图 包括用户登录后可以进行模型录入、模型检索、知识地图查看、模型查看、模型打分、打分结果查看。 图3.13用户操作时序图 首先用户输入用户名和密码登录系统,登录后用户可以选择模型录入、模型检索和根据知识地图查询模型,点击模型录入按钮进入录入界面;也可以进入模型检索界面,输入模型的名称进行查询(分类全文检索和特征检索),对于查询到的模型可以点击进行查看,对于查看后模型的满意度可以进行打分,打分完成后跳到评分结果页面查看分数;最后可以根据知识地图进行模型的搜索,知识地图分为主题和类别检索,检索后点击进行查看,对于查看后模型的满意度可以进行打分,打分完成后跳到评分结果页面查看分数。3.3.3用户在系统中查询操作流程时序图 用户或者管理员都可以进行模型的查询,流程如下:图3.14用户查询时序图首先用户(或管理员)输入查询信息,系统获取查询信息后进行信息的验证,以便判定其是否合法,信息不合规范则返回输入页面,验证成功后则在数据库中进行检索,将检索到的信息返回到查询结果页。3.4 系统架构设计分析3.4.1系统设计原则本系统的设计遵循以下设计原则:l 可靠性 系统的可靠性是最为重要的,系统的崩溃对于企业来说是不能想象的,所以知识管理系统的运行必须要可靠的、无阻碍的运行。系统从结构到设备再到产品供应商的技术服务及维修影响力等方面必须重视,力争将障碍降到最低,并要保证在出现错误时能够尽快恢复。总结来说就是系统运行稳定可靠,采用成熟的、经实践证明的技术。l 先进性 在情况允许的最大限度下,尽可能的采用现在最先进的技术,购置最先进的设备,这样做的好处有两点:1.能后反映出系统应有的先进水平;2.系统同时也具有强大的发展潜力,系统能够保证其竞争力,不至于淘汰。也就是所要求设计思想先进,实现技术先进, 要不仅能够满足当前需求,还要能够适应未来的业务发展;l 实用性因为知识管理是一个严格的综合性系统,设计系统时一定要保证其设计规范,按标准进行系统实施,设计时必须达到功能齐全,使用方便,管理维护方便;l 安全性知识管理系统本身就是个应用系统,因此系统设计是本身的安全不能被忽视,必须采用严格的认证等手段防止本系统被各种形式非法入侵,要保证系统必须确保安全性,防止非法破坏或信息被非法使用;l 开放性 系统设计时必须保证能后满足今后发展的需要,系统要能后进行知识库的扩充,能够进行产品的升级,同时系统能提供标准接口,能够导入/导出数据,能够给其他系统提供标准的数据接口。总之,一切从实际考虑出发,使知识管理系统性能高效,能够为企业服务。3.4.2系统总体架构l 共分三层: 基础设施层:主要有操作系统和数据库,操作系统采用Windows,数据库使用MySQL(一个开源的数据库系统);业务层:该层由两部份构成:知识管理系统和其他系统,知识管理系统包括常用功能和统计分析两类功能,其中统计分析和报表功能基于BIRT(商业智能系统,一个开源的BI系统)构建,在知识管理系统中增加Secure Gate 统一控制对数据的访问权限。知识管理系统通过开发专门的数据采集接口采集信息系统的原始数据。展现层:包括界面组织与最终用户界面两部份,界面组织采用基于Liferay(一个开源的门户系统)的门户实现,使用门户系统可以让用户定制个性化的用户界面,方便用户的使用;最终用户界面采用Web浏览器,使用户便于使用,同时免去大量的安装与维护工作。3.5 系统组件设计架构 上述是知识管理系统总体架构是从一个宏观的架构进行设计,具体实现时,还需要基于上述架构进行模块化直至详细到具体的类。先来看逻辑视图图3.16逻辑结构图架构的逻辑视图说明了最为重要的类、这些类在服务包和子系统中的组织形式以及将这些子系统组织为层的方式。另外还说明了最为重要的用例实现(例如,构架的动态方面)。为了说明在构架方面具有重要意义的类、子系统、包和层的相互关系,可能会在逻辑视图中包含类图。 知识管理系统的逻辑视图由四层组成和类图:l 表现层(Boundary)用户与系统交互的层面,通常包含用例分析中产生的边界类。 l 业务层(Control)响应用户操作,组织和管理系统的正常运行,通常包含在用例分析中产生的控制类。 l 数据服务层(Dao)内部数据结构、外部数据存取。l 数据实体层 内部数据结构、外部数据结构,系统采用Hibernate ORM 设计实施数据模型。3.6 数据库设计 数据库设计 (Database Design)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。按照面向对象的分析方法,从需求中抽取实体对象,形成概念模型。各个实体的说明如下图所示概念描述知识是人们对于信息的提炼和推理而获得的能够解决问题的结论主题根据知识内容的不同,对知识进行的分类知识模型为解决某类问题建立起来的知识体系问题包括问题描述及问题的解决方案,是企业解决方案的积累关键词知识地图一种知识显性的、可编码的知识或隐性知识的导航,并显示不同的知识存储之间重要的动态联系。知识管理对知识进行模型按类分开并标注关键字以便用户查找知识检索对知识模型进行查找,包括类别和主题等知识评分对模型进行打分,以判定其对用户的帮助度图3.17实体说明图3.6.1 数据库E-R图 E-R图即实体-关系图,它提供了表示实体型、属性和关系的方法。图3.20是User、model、modelitem、Adminstrator、Knowledge、score等几个实体的关系图:图3.18E-R图 从图中可以看出User表中userid作为model表中的外键,model表中的modelid作为modelitem表中的外键。因为知识模型是录入的,而且是页面自动生成录入窗口的,因为Konwledge表不和其他表关联,模型评分独立的,所以不和其他表关联。3.6.2 数据库表设计数据库表的设计是数据库设计的基础,表的设计合理与否直接关系到数据库的性能。在数据库表设计时,要注意降低范式,增加冗余,少用触发器,多用存储过程,在数据冗余和处理速度之间找到合适的平衡点。设计出的表要具有较好的使用性,主要体现在查询时是否需要关联多张表且还需使用复杂的SQL技巧。下面是本系统中使用的数据库表的设计1. 用户信息表(User)字段名数据类型是否为空默认值备注userid (用户编号)SerialNot null无自增长类型,primary keyuserName (用户名称)Varchar(50)Not null无50位以内字符串(字母或数字)Sex(性别)Varchar(50)Not null无50位以内字符串(字母或数字)Password(密码)Varchar(50)Not null无50位以内字符串(字母或数字)Email(电子邮件)Varchar(50)Not null无50位以内字符串(字母或数字)Address(地址)Varchar(50)Not null无50位以内字符串(字母或数字)2. 模型(model)字段名数据类型是否为空默认值备注Modelid(模型编号)SerialNot null无自增长类型,primary keyDiscribe (描述文本)Varchar(225)Not null无225位以内字符串(字母或数字)Userid (用户名)Varchar(50)Not null无50位以内字符串(字母或数字)Name(模型名称)Varchar(50)Not null无50位以内字符串(字母或数字)Tablename(表名)Varchar(50)Not null无50位以内字符串(字母或数字)3. 模型属性(modelitem)字段名数据类型是否为空默认值备注Itemid (属性编号)SerialNot null无自增长类型,primary keyModelid(模型编号)SerialNot null无外键Itemname(属性名称)Varchar(50)Not null无50位以内字符串(字母或数字)Itemtype(属性类型)Varchar(50)Not null无50位以内字符串(字母或数字)Field(字段名)Varchar(50)Not null无50位以内字符串(字母或数字)4.管理员信息(Administrator)字段名数据类型是否为空默认值备注adminid (管理员号)SerialNot null无自增长类型,primary keyadminname (管理员姓名)Variable characters (50)Not null无50位以内字符串(字母或数字)Loginname(登陆名称)Variable characters (50)Not null无50位以内字符串(字母或数字)password (登陆密码)Variable characters (50)Not null无50位以内字符串(字母或数字)5.知识信息表(Knowledge)字段名数据类型是否为空默认值备注Knowled
展开阅读全文