• 1.80 MB
  • 2022-04-22 11:37:50 发布

软件工程毕业论文高校医务室综合管理系统.doc

  • 54页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'梧州学院毕业论文论文题目高校医务室综合管理系统的设计与实现系别信息与电子工程学院专业软件工程班级11软件工程2班学号1100208241学生姓名覃晓琼指导教师(签名)完成时间2015年5月 摘要本文详细叙述了高校医务室综合管理系统的设计与实现的过程。在整个开发过程中,对高校医务室综合管理系统的业务流程做了详细的调研,并根据学校学生看病的实际需求制定了一套具体的解决方案,由于大学生的学习生活节奏较快,且电脑普及率和上网概率也随着社会的发展提高,大学生通过网络获取信息的机会越来越多。所以,本文设计的高校医务室综合管理系统,不仅可以让在校学生可以十分方便的了解到学校医务室的医生出诊信息,还将大大提高学生就医看病的满意程度。本文设计的高校医务室综合管理系统主要为了满足在校学生方便就医的需要进行开发的,本系统实现基于B/S模式,采用的是JavaEE和开放式SSH架构、MySql数据库等技术。系统主要包括后台管理和前台展现功能,其中,前台展现分学生和医生两种不同的用户角色,学生主要是到校医院进行就诊,而医生主要是根据学生的就诊信息进行出诊;后台管理主要实现药品管理、角色管理、缴费管理和留言板功能。系统经过详细设计和完成编码后,对系统进行了一系列测试,结果表明系统可正常运行,达到了系统设计的预期目标。最后对本次系统开发进行总结。关键词:高校医务室;管理系统;SSH;JavaEE49 DesignandImplementationofComprehensivemanagementsysteminCollegesanduniversitiesClinicAbstractThispaperdescribesindetailthe designprocessof integratedmanagementsystem andimplementationofthe University Clinic. Throughoutthedevelopmentprocess, the systemofcomprehensive managementinCollegesanduniversities Clinic business processtodoadetailedinvestigationandresearch, anddevelopeda setofspecificsolutions accordingtotheactualneedsof thestudentsoftheschool toseeadoctor, becausethecollegestudentslearnfast, andcomputerandInternetpenetrationrate also alongwiththesocial development, moreand morecollegestudents accesstoinformationthroughthenetworkof opportunity. Therefore, thecomprehensive managementofuniversity clinic systemdesignedinthispaper, cannotonly letstudents canbeveryconvenient toknow theschool infirmary doctorvisits information, willalsogreatlyenhancethe satisfactiondegreeof medical doctor students.Theuniversity clinic integratedmanagement systemdesignedinthisthesis ismainly tomeettheneedof students convenientmedical development, implementationofthesystem basedonB/Smode, usingtheJavaEE andopenSSH architecture, MySqldatabasetechnology. Thesystemmainlyincludesthebackstage managementandfront display function, wherein, thefronttoshowstudentsand doctors intwodifferent userroles, studentsmainly is totheschool hospitalfortreatment, andthedoctor ismainlycarriedout visits accordingtothestudent"s medicalinformation; backgroundmanagement mainlyrealizesthe drugmanagement, rolemanagement,paymentmanagement and messageboard function.Afterdetaileddesignandcodingsystem,thesystemisaseriesoftests,theresultsshowthatthesystemcanrunnormally,toachievetheexpectedgoalofsystemdesign.Thedevelopmentofthissystemisthesummary.Keyword:CollegesanduniversitiesClinicmanagementsystemSSHJaveEE49 目录第一章前言11.1课题背景及意义11.2课题研究内容11.3论文的组织结构1第二章运用技术及开发工具介绍32.1JavaEE技术简介32.2SSH架构简介52.3B/S模式的介绍及应用72.4开发工具的选择82.5MySQL数据库简介9第三章系统可行性分析与需求分析113.1系统可行性分析113.2系统需求分析12第四章系统设计174.1系统功能模块设计174.2数据库设计184.3系统开发环境和运行环境25第五章系统详细设计与实现265.1后台管理265.2前台实现34第六章系统测试386.1测试用例设计及功能测试386.2程序测试用例396.3程序结果40总结41参考文献42附录43致谢4949 第一章前言1.1课题背景及意义随着社会信息化进程的不断深入,计算机普及程度和计算机智能化水平均不断提高,人类进入了信息发展的高速时代,各种传统的管理手段受到了不同程度的冲击,高效方便的管理技术与管理手段越来越受到欢迎,各种各样的管理系统应运而生。目前,梧州学院医务室在药品管理、就诊管理、病案管理等方面都是采取手工记录的方式进行学生就诊管理和药品管理。不仅花费了大量的人力与物力资源,且因手工管理不当或档案太多的情况下,引起事故或纠纷还是时有出现。例如药房管理经常由于管理上的不当使部分药品失效报废,给医院带来一定的经济损失,因此,传统的手工统计操作已远远不能满足医务工作的实际需要。为能够更好地了解药库及药房的药品情况、建立病人电子档案、规范药品等日常工作,对医务进行信息管理是非常必要的。因此,高校医务室综合管理系统的建设既意义重大又刻不容缓。高校医务管理系统将医务人员、学生的基本信息及药品信息以数字化的形式存贮起来,设计简单的查询界面与操作界面以便病人、医务人员对医务的信息一目了然。使医务人员脱离繁杂的手工记录,利用本系统实现方便快捷的就诊及管理,解决医院手工管理人员信息档案的现状,为科学、高效管理人员提供可能。系统可在学校局域网内由不同权限的用户进行档案查询、人员管理、药品管理及缴费管理等操作,也为校医与学生的互动交流成为可能,对我校学生的身体健康与校风建设都具有一定的促进作用。1.2课题研究内容该课题的主要目标是完成一套高效的、具有一定实用性的高校医务室综合管理系统,对学生个人基本信息、医生个人基本信息、药品信息及缴费信息等信息进行有效管理。系统功能模块主要包括:学生就诊管理、档案管理、药品管理、缴费管理、交流互动及系统管理等模块。学生可以随时登录系统查询自己的就诊信息,由问题也可以通过“交流互动”模块与校医进行交流;医生可以更方便快速的进行就诊,对于医务室药品管理也更得心应手,可以及时的查询到相关药品信息,对于药品的出库入库也省去了繁杂的手工记录;实现一体化学生就诊档案,提高工作效率。系统可在学校局域网内由不同权限的用户进行档案查询、人员管理、药品管理及缴费管理等操作,使医生及管理员可以管理学生档案信息及对药品进行相关处理,学生可以方便查询自己的就诊信息。1.3论文的组织结构本文总共分为七章:第一章前言,简述了固定资产管理系统开发的背景和意义,阐述了固定管理系统在国内外的发展状况,最后介绍了论文的内容安排。第二章理论知识,对VC和SQLSERVER数据库进行简要介绍。第三章49 系统可行性研究与需求分析,分析开发本系统各方面的可行性,对系统进行合理的需求分析。第一章系统总体设计,确立系统功能并进行模块划分,进行数据库的设计,配置系统开发环境和运行环境。第二章系统详细设计与实现,搭建开发环境,详细设计系统各模块的功能。第三章系统核心模块测试,对所设计的系统进行功能的测试。第四章总结与展望,对课题的研究进行最后的总结,阐述固定资产管理系统的未来发展。49 第二章运用技术及开发工具介绍2.1JavaEE技术简介JavaEE是J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用.随着WEB和EJB容器概念诞生,使得软件应用业开始担心SUN的伙伴们是否还在Java平台上不断推出翻新的标准框架,致使软件应用业的业务核心组件架构无所适从,从一直以来是否需要EJB的讨论声中说明了这种彷徨。在2004年底中国软件技术大会Ioc微容器(也就是Jdon框架的实现原理)演讲中指出:我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本.此次J2EE改名为JavaEE,实际也反映出业界这种共同心声。JavaEE的核心是EJB3.0,其提供了更兼便捷的企业级的应用框架。架构图让我们看看JavaEE5有哪些新的功能或规定,我们可以从SUN网站下载JavaEE5规范。其架构图如下图2-1所。图2-1架构图图中灰色加黑部分是JavaEE5新的功能,我们看到,在WEB层主要加入了JSF这个新的表现层框架,和我们日常开发关系密切的是,引入了新的JavaPersistence标准,这个标准正在由EJB3.0专家组制定。值得指出的是,这个Java持久化标准也可以嵌入在WEB层调用,所以,它肯定不会从属于EJB标准,这样,当前所有的Java持久层标准如:JDBC/JDO/Hibernate/EntityBean将可能统一,减少用户的架构选择痛苦。EJB3.0和EJB2.0的区别从架构图可以看出,无论Web结构或EJB结构,提供实现的功能相差不多,这样,我们的业务核心组件就可以根据需要部署在Web或EJB中运行,而不依赖具体的JavaEE容49 器了。前面一章图的目标在JavaEE5中可以实现了。当然,JavaEE5重要改变还是:JavaEE不再象以前那样只注重大型商业系统的开发,而是更关注小到中型系统的开发,简化这部分系统开发步骤。落实这一简化行动的最大特征是在Java5.0(Java1.5)中加入Annotations,通过Annotations引入,降低JavaEE开发时,既要写code,又要写XML配置文件之苦,来回照顾,疲于奔命,Annotations既是得益于C++语言,也是从开源项目xDoclet实践中获得经验。但是Annotations是一把双刃剑,初学者用得不好,将会使得原本在XML中的Hardcode(硬编码)写进入代码Annotations,破坏代码的简洁和灵活性,当然,Annotations的引入不只是解决XML配置,从大的概念说,是解决一个资源注射问题(XML属于其中一个资源),在原理J2EE中,容器管理的资源都是由JNDI向应用程序提供的,通过Annotations可以方便实现注射。资源注射(Resourceinjection)设计概念其实是来自Ioc模式(DependencyInjection),笔者设计开发的Jdon框架其实已经将Annotations这一宗旨的目的实现,在Jdon框架应用演示源码SimpleJdonFrameworkTest中,在jdonframework.xml中有一段如下配置:这段配置是将数据库的JNDI名java:/TestDS注射到JdbcDAO中。JdonFramework下一个版本将是基于Java5.0,这行配置将可通过Annotations写在jdbcDAO代码中,方便程序员开发。从这里,大家也可以知道EJB3.0和EJB2.0的区别了,有的人疑惑,是学习EJB3.0还是学习EJB2.0,其实EJB3.0并没有在原理机制上对EJB有多大改动,只是做了编程方面的简化,另外EJBCMP参考了Hibernate新特点,EJB3.0最大简化变动是CMP编程方法上。所以,无论学习EJb3.0/2.0,EJB原理和运行机制都是一样,这部分才是学习EJB最大的困难处,而不是因为到了EJB3.0,理解EJB就会容易。初学者可从Eclipse+Xdoclet开发EJB2.0开始学习,EJB3.0=EJB2.0+xDoclet,这里有一篇Eclipse开发EJB教程,使用JBossIDE非常简单,无需Lomboz等插件。Security安全Security安全是JavaEE的一个重要特点,也就是基于容器的安全访问,无需自己手工编码,具体实现可参考Jdon框架应用演示源码JdonNews。这虽然是基于J2EE1.3编写,但是和JavaEE5区别不是很大。事务管理TransactionManagement也是JavaEE5的一个重要部分,该标准文档从几个方面阐述了事务管理的要点,标准中规定了在WEB层中使用事务和线程49 的处理关系,标准中规定:Web服务器如Tomcat无需在Web层提供事务支持,因为Web组件根本不支持事务繁衍/传递。因为当前一些架构如Struts+Spring+Hibernate/Struts+Hibernate是标准中的Web结构,因此JavaEE5在J2EE4.2.2规定了Web组件事务的生命周期,如果Web组件直接调用JTA,事务就不可以跨一个客户端的多个请求,事务只能在一个请求(Servlet/Jsp)中完成,这个标准规定了我们在Web架构中(如上述架构)无法使用长事务(如工作流/状态图中跨页面请求事务),针对一个客户端跨请求的事务暂时只有唯一解决方案:只有使用EJB的有态Session。以上是JavaEE5主要部分,JavaEE包含更多其他技术部分如JdbcJMSJCAJNDI等等,需要用户在实践中摸索。2.2SSH架构简介SSH在J2EE项目中表示了3种框架,即Spring+Struts+Hibernate。Struts对Model,View和Controller都提供了对应的组件。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,可以应用在任何使用JDBC的场合,可以在Servlet/JSP的Web应用中使用,也可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。1、Struts(1)、Struts框架结构:如图2-2所示。 图2-2结构图Struts对Model,View和Controller都提供了对应的组件。在图2-2中,ActionServlet,这个类是Struts的核心控制器,负责拦截来自用户的请求。Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。(2)、Model部分:由ActionForm和JavaBean组成,其中ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionForm里面的请求参数处理用户的请求。49 JavaBean则封装了底层的业务逻辑,包括数据库访问等。(3)、View部分:该部分采用JSP实现。Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。对应上图的JSP部分。(4)、Controller组件:Controller组件有两个部分组成——系统核心控制器,业务逻辑控制器。系统核心控制器,对应上图的ActionServlet。该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。对应Action部分。2、HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五的核心接口分别加以介绍。(1)Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。(2)SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。(3)Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。(4)Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。(5)49 Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。3、SpringSpring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。2.3B/S模式的介绍及应用2.3.1什么是B/S模式49 本系统采用B/S模式。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。2.3.2B/S模式的优点(1)维护和升级方式简单目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点的单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。(2)成本降低,选择更多大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。比如说很多人每天上“网易”网,只要安装了浏览器就可以了,并不需要了解“网易”的服务器用的是什么操作系统,而事实上大部分的服务器实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。2.4开发工具的选择2.4.1MyEclipse介绍与应用MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench49 ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate。在结构上,MyEclipse的特征可以被分为7类:  1、JavaEE模型  2、WEB开发工具  3、EJB开发工具  4、应用程序服务器的连接器  5、JavaEE项目部署服务  6、数据库服务  7、MyEclipse整合帮助  对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错。2.4.2Tomcat介绍JakartaTomcat服务器是一种Servlet/JSP容器。Servlet是一种运行在支持Java语言的服务器上的组件。当客户请求访问某个Servlet时,Servlet容器将创建一个ServletRequrst对象和ServletResponse对象。在ServletRequest对象中封装了客户请求信息,然后Servlet容器把ServletRequest对象和ServletResponse对象传给客户所请求的Servlet。Servlet把响应结果写到ServletResponse中,然后由Servlet容器把响应结果传给客户。Servlet容器响应客户请求过程如图2-3所示:图2-3Servlet容器响应客户请求过程图2.5MySQL数据库简介什么是MySql?MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。应用环境49 与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。Linux作为操作系统,Apache和Nginx作为Web服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“组合。系统特性1、使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。2、支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。3、为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。4、支持多线程,充分利用CPU资源。5、优化的SQL查询算法,有效地提高查询速度。6、既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。7、提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。8、提供TCP/IP、ODBC和JDBC等多种数据库连接途径。9、提供用于管理、检查、优化数据库操作的管理工具。10、支持大型的数据库。可以处理拥有上千万条记录的大型数据库。11、支持多种存储引擎。应用架构MySql的应用结构如图2-4所示:图2-4应用结构49 第三章系统可行性分析与需求分析3.1系统可行性分析可行性研究是指在实际调查的基础上,通过对市场分析、财务分析以及技术分析对开发的项目进行技术可行性和经济合理性作出合理的判断和评价[7]。本文开发的高校医务室综合管理系统是基于典型的信息管理系统概念而设计开发的,满足一般信息管理系统的功能需要,同时也针对高校医务室管理的特点进行有针对性的功能型开发。开发一套高校医务室综合管理系统对提高学生就医效率和了解学生健康状况很有帮助,不管从技术上还是管理上都是很有必要的。3.1.1开发必要性高校医务室综合管理系统对每个具有校医务室的大学来说都是一件十分重要的事情,高校医务室管理的好于坏,可以较好的反映出学校的综合管理水平,一个医务室管理水平差的高校,其学校的医务室利用率肯定不高,学生在校就医的医院肯定较低,相反,一个对校医院管理合理和完善的高校,通常情况下,学校的就医环境和学生在校医院就医的效果都是比较好的。高校医务室综合管理系统的建立,不经可以防止腐败现象的发生,而且也有利于防止医院利用率底下造成资源的浪费,因为在这样的情况下,我们认为开发一套高校医务室综合管理系统是十分有必要的。3.1.2技术可行性系统采用的运行环境为WindowsXP或WIN7操作系统,采用JAVA语言进行系统页面的开发,用MySQL作为数据管理来进行实现。MyEClipse作为十分流行的网络开发环境,具有易使用、学习简单容易的特点、以及代码框架不需要自己写、方法自动生成等的优点,用在做网站管理系统上有很多的优势,它是一种集代码编辑、编译、连接调试功能为一体的集成开发环境。MySQL数据库作为一种功能比较强大的数据库开发工具,它具有界面友好,易学易用,开发简单,接口灵活等特点,是一个典型的新一代数据管理和信息系统开发工具。提供了强大的数据组织,用户管理,安全检查等功能。本系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,在普通的硬件平台很容易即可满足本系统的需要。3.1.3经济可行性开发成本较低,加上成熟的软硬件环境、目标系统并不是十分复杂和开发周期较短,人员经济支出有限。开发完成运行后,为使用者带来便利,为系统的进一步推广创造了条件,经济收益将远远超过投资。从经济角度考虑,此系统开发可行。另外,就管理方面而言,高校管理人员充分认识到传统手工管理的缺陷,对校医务室的49 信息化建设比较重视,决定要彻底改革高校医务室目前的管理手段,所以本系统管理上可行。综上所述,开发本系统切实可行。3.2系统需求分析3.2.1系统目标通过高校医务室综合管理系统的开发,可提高在校学生到校医务室进行就医的意愿,而且也能提高校医务室的利用效率。通过信息化的手段,提高学校资产的利用率,而且也在很大程度上为在校学生实现在校就诊提供便利条件。3.2.2设计原则1.实用软件开发的最终目的是为了交付客户,供客户去使用的,因此遵循客户的使用习惯和操作规范是十分重要的,实用性就是必须遵循的规则之一。所以我们在设计本高校医务室综合管理系统时,参考一些其他管理系统的使用方式方法,不仅要帮助使用人员解决他们所面临的问题,而且也要保证我们设计的功能易于使用,做到傻瓜式的应用。2.功能完善根据高校医务室综合管理系统的特点进行设计和开发,在参考其他类似管理系统的基础上,对校医务室的相关信息进行针对性的管理,已达到用户使用医务室管理系统易用且功能要完善的原则。3.模块化系统功能的设计与实现必须遵循模块化原则,系统功能必须严格按照业务逻辑来进行模块的划分,各系统功能模块间必须尽量做到“高内聚,低耦合”。3.2.3业务需求本文设计的高校医务室综合管理系统主要根据学校医务室的实际情况而开发的,我们通过了解校医务室的现状进行开发的系统主要需要完成以下的功能和设置。1、角色管理本文设计的系统具备三种角色:医生、学生、管理员等三种角色。其中学生挂号就诊,医生根据挂号出诊,管理员负责管理基础信息。2、就诊管理:学生挂号(以学号为主),填写基本信息(学号,性别,年龄,班级,联系方式、自身身体情况如过敏史等),形成就诊单基本信息。医生根据学生就诊单信息进行就诊,开处方。处方内容包括学生的病状(学生病状可以设置关键词,而后可以根据关键词在档案管理中找到相似病症的信息)、医生的诊断信息,开出的药品信息,并要求打印处方。学生根据处方,缴费,领取药品。3、药品管理(注意医疗药品规格,药品功能和信息要确切,不能随意编写)49 医生(管理员)登陆系统后,可以查询药品信息(可按照药品名称或ID查询、按照药品供应商ID或名称查询;药品信息包括药品编号、药品名称、药品价格、药品供应商、药品生产日期、保质期、药品功能、药品禁忌,药品的存放位置等)(药品可粗略分为,感冒类;镇痛类;消炎类、消化类、肠胃类、耳鼻喉炎类、皮肤类、跌打损伤类等,每一个药品类放一个药品柜。药品管理包括如下:(1)、药品库存管理(药品入库,药品出库,出库及入库的日期及数量、经手人)(2)、药品调价管理(增、减)(3)、药品报废预警(在药品过期前半个月自动提醒)(4)、药品处理(发药处理,退药处理,报废处理)4、档案管理(保存所有学生就诊信息)学生或医生登陆系统:(1)、学生查询自己的信息,自己过往的就诊单和处方。也可以对自己的基本信息进行修改。(2)、医生查询自己的基本信息,修改个人信息。对自己就诊过的学生就诊信息进行查询功能。(在就诊过程中医生可以通过档案管理功能查找到相似病历,参考上面的处方信息)管理员登陆系统,查询医生、学生、药品信息。(可以查询到所有医生和学生的就诊信息)对学生,医生、药品信息进行增删查改。5、系统管理管理员登陆系统,对学生、医生、药品、档案信息以及留言互动信息进行管理(增删查改)。6、缴费管理学生根据医生开的处方,到缴费处缴费。(挂号费+药费)医生界面显示学生是否缴费。7、交流互动季节变化或是学生发病高峰期,医生在医务管理系统上给与学生温馨提示,让学生注意自身健康。管理员发布系统公告,普通用户对公告不明白的时候可以进行系统留言,学生对自身健康情况想咨询时可以给系统留言,医生或管理员可回复留言。管理员可以对所有留言信息进行管理。3.2.4系统需求建模1.系统用例图:用于描述整个系统中各个模块的用例以及用例之间的相互关系。(1)管理登录退出用例:主要用户描述系统管理员的登录与退出操作。其用例图如下图3-2所示:49 图3-1管理员用例图(2)药品信息管理模块用例:主要用于描述药品的基本信息、药品的添加、删除、修改、审核等操作用例。其用例图如下图3-2所示:图3-2药品管理用例图(3)角色管理用例:主要描述角色信息,其用例图如下图3-3所示:49 角色添加角色修改角色删除管理员角色查询图3-3角色管理用例图如下表3-1所示为系统所有的用例列表,表3-1对本文开发的高校医务室综合管理系统的用例表进行了说明和描述。表3-1系统用例列表编号用例名称描述001管理员登录管理员输入正确的用户名和密码即可登录到系统中去002添加药品信息向系统数据库中添加药品的详细信息。如(编号、名称、价格、供应商、生产日期、保质期、药品的功能、生产厂家等信息)003查询药品信息通过选择查询条件(可按药品名称或ID、药品供应商名称或ID等),查询出相应药品的详细信息。如(编号、名称、价格、生产日期、生产厂家等)004药品入库当校医院进行药品采购后,需要对新采购的药品进行入库。005药品出库当学生就诊后根据医生所开药方,对所开药房的药品进行出库管理,将药品发给学生。006药品过期管理药品当达到限期使用的期限后,要将药品进行过期登记处理。007修改药品信息执行查询用例查询出需修改的药品信息,修改需修改的信息。可修改药品的名称、生产厂家等。49 008删除药品信息对已损毁或不存在的药品信息从系统数据库中删除009角色添加向数据库中添加需添加的角色名称信息010角色查询可根据需要设置角色的名称信息。011角色修改当角色信息发生变动时,可以直接在查询到的角色名称处选择修改即可。012角色删除当有角色信息需删除时,直接对需要删除的角色信息进行删除即可。013缴费管理根据医生所开药品的数量、价格,学生进行缴费014学生就诊学生注册登录后,进行挂号就诊015医生开处方当学生挂完号后,医生可查看学生挂号信息,对所挂号的学生进行病情诊断、开处方。49 第四章系统设计系统设计是在系统分析的基础上由抽象到具体的过程。主要目标是将系统分析阶段所提出的反映了信息需求的系统逻辑方案转换成可以实施的基于计算机与通信系统的物理(技术)方案,为下一阶段系统实施提供必要的技术资料,应符合系统性,灵活性,可靠性,经济性的要求。4.1系统功能模块设计高校医务室综合管理系统主要分为前台网站和后台系统两部分,按使用对象可分为系统管理员、学生、医生等。前台网站是学生和医生使用的操作界面,学生登录后在这个页面可以进行挂号、个人信息管理、进行留言;医生登陆后可以再这个页面根据挂号进行出诊、个人信息的管理、回复患者的留言等;后台管理系统是供管理员对网站进行管理和维护的工具,包括药品信息管理、角色管理、缴费管理以及留言板管理等。具体方案如下:1、针对管理员网站后台管理模块,通过输入正确的用户名与密码进去系统后台并对后台进行管理。药品管理模块:可对药品进行添加、修改、删除、出入库及药品过期处置管理等。角色管理模块:管理员可以添加、修改、删除角色信息。缴费管理模块:管理员可对医生所开药品计价进行收费,药品只有进行收费后方可发给学生。留言信息管理模块:管理员对用户留言进行回复,与用户之间建立更好的信任关系。网站的后台管理功能模块图如图4-1所示。图4-1系统管理功能模块图49 1)、药品管理此功能模块包括对药品信息、进出库药品、过期药品管理,包括了增、删、改、查、审核等操作。2)、角色设置此功能模块包括对角色类别进行增、删、改、查等操作。3)、缴费处理此功能模块包括了对就医处方药品进行结账处理。4)、留言管理此功能模块包括对留言信息进行增、删、改、查等。5)、系统登录与退出用户输入正确的用户名和密码后方可登录系统,进行相关的操作。2、针对学生、医生来说对于学生和医生来说就是医患关系,学生去就诊看病,医生出诊,针对学生患病症状进行诊治、开药等。其前台主要功能模块图如下图4-2所示。图4-2前台功能模块图4.2数据库设计数据库设计(DatabaseDesign)是指对于一个给定的应用环境是管理信息系统的重要组成部分。数据库设计是对于一个既定的环境,进行符合应用语义的逻辑设计,以及提供一个确定存储结构和物理设计,建立实现系统目标,并能有效存取数据和数据模型。建立良好的数据库结构和文件组织形式,使系统能快速、准确的获得所需信息是评价系统的主要指标。因此,它是管理信息系统的重要组成部分。数据库设计的核心问题是设计好的数据模型。在目前的数据库管理系统中有层次模型,网状模型、关系模型三种数据模型。其49 中,关系模型具有较高的数据独立性,使用也较为方便。目前,微机数据库多采用关系型数据库模型。这里采用MySql数据库。4.2.1数据库设计原则数据库的设计原则如下:1、数据的共享性。2、数据独立性。3、数据的完整性,即保证数据库存中数据准确。4、灵活性,可在相当短的时间内回答用户的各种各样的复杂而灵活的查询问题。5、安全性与保密性,做到对数据指定保护级别和安全控制。4.2.2数据表设计以下列出了本系统所需要的数据表(PK表示将此字段设为主键,NOTNULL表示不允许此字段为空,AUTO_INCREMENT表示将此字段设为自增长型):表4-1为管理员表,用于保存管理员的相关信息。表4-1admin(管理员表)表结构序号字段类型长度备注描述1idint4PK,NOTNULLAUTO_INCREMENTid2roleIdint4NULL角色ID3namevarchar50NULL姓名4passwordint4NULL密码表4-2为用户表,用于保存用户的相关信息。表4-2user(用户表)表结构序号字段类型长度备注描述1idint4PK,NOTNULLAUTO_INCREMENTid2ageint4NULL年龄3classesvarchar50NULL班级4jobNoint4NULL医生编号5mdicalYearint4NULL从医时间6namevarchar50NULL姓名7passwordint4NULL密码49 8roleint4NULL角色9sexvarchar1NULL性别10studentNoint4NULL学号11telephoneint4NULL电话表4-3为药品种类信息表,用于存储药品种类信息。表4-3medicineKind(药品种类信息)表序号字段类型长度备注描述1idint4PK,NOTNULLAUTO_INCREMENTid2medicineKindNamevarchar30NOTNULL药品种类名称表4-4为药品信息表,用来纪录药品的详细信息。表4-4medicine(药品信息)表序号字段类型长度备注描述1idint4PK,NOTNULLAUTO_INCREMENTid2medicineNoint4NOTNULL药品编号3medicineNamevarchar30NULL药品名称4meidineKindint4NULL药品种类5pricedecimal6NULL价格6supplyvarchar30NULL供应商7functionText255NULL药品功能8forbidText255NULL药品禁忌9placeText255NULL摆放位置表4-5为入库药品信息表,用来存储入库的药品信息。表4-5stock(入库药品信息)表序号字段类型长度备注描述1idint4PK,NOTNULLid49 2medicineNamevarchar20NULL药品名称3countint4NULL入库数量4MFDdate18NULL生产日期5Expdate18NULL到期时间6handlePersonvarchar30NULL经手人表4-6为处方信息表,用来存储医生所开处方信息。表4-6diagnose(处方信息)表序号字段类型长度备注描述1idint4PK,NOTNULL处方id2statevarchar255NULL病况3infovarchar255NULL就诊信息4medicinevarchar100NULL开出药品5keywordvarchar50NULL关键词表4-7为关键词信息表,用于存储关键词信息。表4-7keyWord(关键词信息)表序号字段类型长度备注描述1idint4PK,NOTNULLAUTO_INCREMENT关键词id2keyWordvarchar30NOTNULL关键词表4-8为留言信息表,用于存储关键词信息。表4-8messageBoard(留言板信息)表序号字段类型长度备注描述1idint4PK,NOTNULLAUTO_INCREMENT留言id2contentvarchar1000NOTNULL留言内容4.2.3系统ER图设计49 在调查和分析用户的需求之后,把用户对数据和加工的需求用实体—联系模型(即E—R图)表达出来,明确描述应用系统的概念结构数据模型。构成E-R图的基本要素是实体型、属性和联系,其表示方法为:实体型:用矩形表示,矩形框内写明实体名;属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。通过对本系统的功能模块进行分析,可得出本系统的全局ER图,如图4-3所示:图4-3全局ER图下面分别介绍每个数据表对应的ER图如下所示:1、管理员表的ER图如图4-4所示:图4-4管理员表ER图2、用户表的ER图如下图4-5所示:49 图4-5用户表ER图3、药品种类信息表的ER图如下图4-6所示:图4-6药品种类表ER图4、药品信息表的ER图如下图4-7所示:图4-7药品信息表ER图5、药品入库表的ER图如下图4-8所示:49 图4-8药品入库表ER图6、处方信息表的ER图如下图4-9所示:图4-9处方信息表ER图7、关键词表的ER图如下图4-10所示:49 图4-10关键词表ER图8、留言板表的ER图如下图4-11所示:图4-11留言板表ER图4.3系统开发环境和运行环境4.3.1系统开发环境1.系统开发工具如表4-9所示表4-9系统开发工具表属性要求开发环境MyECLipse数据库管理软件MySQL2.PC配置如表4-10所示表4-10系统开发PC配置表属性要求系统WIN7旗舰版内存4GB处理器2.6GHz硬盘500G4.3.2系统运行环境1.系统运行环境需求如表4-11所示表4-11服务器端运行环境需求表属性要求系统WIN7旗舰版或者WINDOWSXPSP3内存2GB处理器2.5GHz以上硬盘500GB数据库MySQLServer第五章系统详细设计与实现5.1后台管理49 5.1.1主界面后台系统管理主要包括以下模块:药品管理、角色管理、缴费管理、以及留言信息管理等4个模块,在以后的小节中,我们将分别介绍每个模块的详细实现。其后台管理界面如图5-1所示。图5-1后台管理主界面5.1.2登录页面管理员在登录后,方可进入系统管理主界面,其管理登录的页面如下图5-2所示。图5-2登录页面登录的主要实现代码如下:/***登录*@return*/@Action(value="/loginAction",results={@Result(name=SUCCESS,location="/page/index.jsp"),@Result(name=INPUT,location="/login.jsp")})publicStringlogin(){Useruser=this.userService.login(name,password,role);if(user==null){returnINPUT;49 }else{id=user.getId();ActionContext.getContext().getSession().put("id",user.getId());ActionContext.getContext().getSession().put("name",user.getName());ActionContext.getContext().getSession().put("role",user.getRole());}returnSUCCESS;}5.1.3角色管理进入主界面后,点击“角色管理”,角色选择“学生”,在此页面选择“添加用户”按钮,弹出如下图5-3所示的添加用户界面。图5-3添加学生用户页面当在添加学生用户界面输入姓名、密码、学号、性别、年龄、班级、联系方式等信息后,点击“保存”按钮,则页面返回角色管理页面,此时新增加一条新纪录,其界面如下图5-4所示。图5-4角色管理页面-学生在此页面可以对学生角色信息进行修改和删除操作。进入主界面后,点击“角色管理”,角色选择“医生”,在此页面选择“添加用户”按钮,弹出如下图5-5所示的添加用户界面。49 图5-5添加医生用户页面当在添加学生用户界面输入姓名、密码、工号、性别、年龄、医龄、联系方式等信息后,点击“保存”按钮,则页面返回角色管理页面,此时新增加一条新纪录,其界面如下图5-6所示。图5-6角色管理页面-医生在此页面可以对医生角色信息进行修改和删除操作。5.1.4药品管理在系统管理主页面,点击“药品管理”下的“药品管理”选择时,会出现如下图5-7所示的页面。在此页面不仅可以添加药品种类、添加药品信息,也可以按照药品编号、药品名称、供应商进行查询。图5-7药品管理页面49 在药品管理页面,点击“添加药品种类”、“添加药品信息”按钮,会分别出线如下图5-8、5-9所示的页面。图5-8添加药品种类页面图5-9添加药品信息在添加完成药品种类和药品信息后,会在药品管理页面出现一条新的记录。其页面如下图5-10所示。图5-10药品管理-添加药品在此页面,可对药品信息进行增、删、改、查等操作。在系统管理主页面,点击“药品管理”下的“进出库管理”选择时,会出现如下图5-11所示的页面。在此页面不仅可以进行发药处理、退药处理、添加入库药品等操作。49 图5-11进出库管理页面在进出库管理页面,点击“添加入库药品”按钮,会分别出线如下图5-12所示的页面。图5-12添加入库药品页面在添加完成入库药品信息后,会在进出库管理页面出现一条新的记录。其页面如下图5-13所示。图5-13进出库管理-添加入库药品“添加入库药品”、“发药处理”、“退药处理”的主要实现代码如下所示:publicbooleanaddStock(Stockstock){if(stock.getState()==0){//入库Medicinemedicine=this.medicineDao.getById(Medicine.class,stock.getMedicineId());medicine.setQuantity(medicine.getQuantity()+stock.getQuantity());49 this.medicineDao.update(medicine);}else{//出库Medicinemedicine=this.medicineDao.getById(Medicine.class,stock.getMedicineId());medicine.setQuantity(medicine.getQuantity()-stock.getQuantity());this.medicineDao.update(medicine);}returnthis.stockDao.save(stock);}在系统管理主页面,点击“药品管理”下的“过期药品”选择时,会出现如下图5-14所示的页面。在此页面对药品进行过期处理。图5-14过期药品页面“报废”的主要实现代码如下所示:publicListsearchStockPage(Pagepage,Stockcondition){//提前15天报废DatetoDay=newDate(System.currentTimeMillis());toDay.setDate(toDay.getDate()+15);condition.setGuaranteePeriod(toDay);Listlist=this.stockDao.searchPage(page,condition);ListformLst=newArrayList();if(CommonUtil.isNoneOrEmpty(list)){for(inti=0;iusers=this.find(hql.toString(),params.toArray());if(CommonUtil.isNoneOrEmpty(users)){returnusers.get(0);}returnnull;}5.2.2学生角色页面在输入学号和密码,以学生角色进行登录后,其界面设计如下图5-18所示:图5-18学生角色页面在此页面,学生可以查看、修改个人信息,也可以进行挂号。当学生点击“挂号”按钮时,会出现如下图5-19所示的页面。图5-19挂号页面其挂号的主要实现代码如下所示:/***学生挂号*/@Action(value="/addDiagnoseAction")publicStringadd(){Diagnosedia=newDiagnose();49 dia.setDiagnoseInfo(diagnoseInfo);dia.setMedication(medication);booleanflag=this.diagnoseService.add(dia,patientId,keyId,id);try{httpServletResponse.getWriter().print(flag);}catch(IOExceptione){e.printStackTrace();}returnnull;}5.2.3医生角色页面在输入医生工号和密码,以医生角色进行登录后,其界面设计如下图5-20所示:图5-18医生角色页面在此页面,医生可以查看、修改个人信息、设置关键词,也可以进行开处方。当医生在处方下面点击“添加”按钮时,会出现如下图5-19所示的添加处方页面。图5-19处方页面医生根据学生的病情,得出诊断信息并且开出药品。其"开处方"的主要实现代码如下所示:/***医生开处方49 */@Overridepublicbooleanadd(Diagnosediagnose,StringpatientId,StringkeyId,Stringuid){StringdiagnoseId=UUID.randomUUID().toString();PatientInfoinfo=this.infoDao.getById(PatientInfo.class,patientId);info.setDiagnoseId(diagnoseId);info.setKeywordId(keyId);this.infoDao.update(info);diagnose.setId(diagnoseId);diagnose.setDate(newDate(System.currentTimeMillis()));Useruser=this.uDao.getById(User.class,uid);diagnose.setDoctorName(user.getName());diagnose.setPayment(0);returnthis.diagnoseDao.save(diagnose);}第六章系统测试49 在完成了程序的编写工作后,接下来将进行软件的测试,这里说的软件,并不单单是指程序本身,还包括其他方面。测试和开发一样,也是一项技术性很强的工作,有着很多的技巧。软件测试是软件质量保证的主要活动之一,因此,测试的质量直接影响软件的质量。6.1测试用例设计及功能测试测试分白盒测试和黑盒测试两种。白盒测试技术(WhiteBoxTesting)该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试叫做白盒测试。这一阶段测试以软件开发人员为主,使用Xunit系列工具进行测试,可以包括很多方面如功能性能等。黑盒测试(BlackBoxTesting)测试的主体部分黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,包括的不同测试类型,黑盒测试着重测试软件的功能需求。也就是说,黑盒测试让软件工程师设计出能充分检查程序所有功能需求的输入条件集。黑盒测试并不能取代白盒测试技术,黑盒测试是与白盒测试与互补的方法,黑盒测试很可能发现白盒测试不易发现的其他不同类型的错误。黑盒测试力图发现下述类型的错误:功能不正确或遗漏了功能;界面错误;数据结构错误或外部数据库访问错误;性能错误;初始化和终止错误;黑盒测试时完全不考虑程序内部的结构和处理过程,只按照规格说明书的规定来检查程序是否符合其功能要求。黑盒测试是在程序接口进行的测试,又称为功能测试。黑盒测试检查的主要方面有:1、程序的功能是否正确或完善;2、数据的输入能否正确接收,输出是否正确;3、是否能保证外部信息(如数据文件)的完整性等。用黑盒法设计测试用例时,必须用所有可能的输入数据来检查程序是否都能产生正确的输出。白盒测试在测试过程的早期阶段进行,而黑盒测试主要用于测试过程的后期,黑盒测试故意不考虑程序的控制结构,而把注意力集中于信息域。黑盒测试的技术分为等价划分、边界值分析、错误推测。一、等价划分等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。利用这一方法设计测试用例可以不考虑程序的内部结构,以需求规格说明书为依据,选择适当的典型子集,认真分析和推敲说明书的各项需求,特别是功能需求,尽可能多地发现错误。等价类划分法是一种系统性的确定要输入的测试条件的方法。49 二、边界值分析边界值分析也是一种黑盒测试方法,经验表明,处理边界情况时程序最容易发生错误。使用边界值分析方法设计测试方案首先应该确定边界情况,这需要经验和创造性,通常输入等价类和输出等价类的边界,就是应该着重测试的程序边界情况。选取的测试数据应该刚好等于、刚刚小于或刚刚大于边界值。也就是说,按照边界值分析法,应该选取刚好等于、稍小于或稍大于等价类边界值的数据作为测试数据,而不是选择每个等价类内的典型值或任意值作为测试数据。6.2程序测试用例1、添加管理员信息的用户名等价类表表6.1管理员账号等价类表输入条件有效等价类无效等价类管理员账号组成以数字、字母构成(1)非数字、非字母(2)管理员账号位数字符个数5-10个(3)字符个数为0个(4)字符个数小于5(5)字符个数大于10(6)测试用例:输入测试数据:Abc123预期结果:有效(包含有效等价类(1)(3))输入测试数据:$51234567890预期结果:无效(包含无效等价类(2)(3))输入测试数据:Abc预期结果:无效(包含有效等价类(5))输入测试数据:123456789090预期结果:无效(包含无效等价类(6))解决方法:将特殊字符进行过滤,使用户不能输入不符合要求的字符,并在输入无效时给出提示信息。2、用户信息名字添加测试表6.2用户信息名字等价类表输入条件有效等价类无效等价类用户名组成非数字,非特殊符号(1)数字,特殊字符(2)用户名位数字符个数为0-10(3)字符个数大于10(4)测试用例:输入测试数据:admin预期结果:有效(包含有效等价类(1)(3))输入测试数据:08301205预期结果:无效(包含无效等价类(2))49 输入测试数据:a8301预期结果:无效(包含无效等价类(2))输入测试数据:a83012050509预期结果:无效(包含无效等价类(2)(4))3、用户信息密码添加测试表6.3用户信息密码等价类表输入条件有效等价类无效等价类用户名组成数字,字母(1)文本符号(2)用户名位数字符个数为6(3)字符个数大于6或小于6(4)测试用例:输入测试数据:123456预期结果:有效(包含有效等价类(1)(3))输入测试数据:abc123预期结果:有效(包含无效等价类(1)(3))输入测试数据:123预期结果:无效(包含无效等价类(4))输入测试数据:83012050509预期结果:无效(包含无效等价类(4))输入测试数据:12345,预期结果:无效(包含无效等价类(2))6.3程序结果系统在刚开始测试的时候,发现了一些在界面与数据库进行交互时的一些问题,发现已经在数据库里添加的数据,部分数据不能呈现到界面上去,经过我不断地修改和测试,完成了所有基础数据显示的功能,实现了每个模块的增删改查功能。通过对高校医务室综合管理系统所有模块的交叉测试,我们发现我们设计的系统能够实现高校医务室所综合管理系统系统的所有功能,性能也达到实时性的要求,所有模块都能正常的运行。总结49 经过设计与调试,高校医务室综合信息管理系统基本开发完成。其功能基本符合用户需求,能够完成系统后台、系统用户、药品管理、角色管理、缴费管理以及留言信息管理等。前台具有用户注册、用户信息管理、用户留言、就诊管理等功能。和未实现医务室综合管理系统的高校相比通过网上进行挂号和就诊信息的查询更加节省了大学生的就诊时间,而且也在一定程度上提高了学校医务室的信息化水平,并且学生也可以根据自己的病症进行就医挂号。通过做毕业设计,对我们来说是工作前一次很好的演练和实践的机会,是培养独立思考问题和自学能力的锻炼,使我们意识到必须努力学习才能在工作中体现自己的价值,适应社会的需要。本次毕业设计由于时间关系,还有很多需要完善的地方,如界面不够美观,对用户名、密码等进行校验检查的措施不够晚上等,这些都是我们在以后的学习和工作中,需要再进行修改和提高的地方。参考文献49 [1]马建红,李占波.JSP应用与开发技术[M].北京:清华大学出版社,2011,72-200.[2]陈惠贞,陈俊荣.PHP&MySQL程序设计实例讲座[M].北京:清华大学出版社,2010,22-202.[3]卢汉鹏.JSP开发技术详解[M].北京:化学工业出版社,2010,19-150.[4]谢阳群.关于信息管理[J].图书情报工作,2011,(04):63-65.[5]张军.JSP网络应用开发例学与实践[M].北京:清华大学出版社,2006,23-256.[6]梁日升,杨杰.网页艺术设计[M].北京:机械工业出版社,20011,55-190.[7]文东,郭淑红.DreamweaverCS5网页设计基础与项目实训[M].北京:科学出版社,2012,33-220.[8]岳阳.MySQL5管理员标准指南及语言参考[M].北京:电子工业出版社,2007,55~210.[9]倪娟.基于JSP技术开放存取全文期刊导航系统的设计与实现[J].情报科学,2011,(01):45-47.[10]TedBusted,CedricDtmonlin,GeorgeFranciscus.StrutsinAction-BuildingWebApplicationWithTheLeadingJavaFramework[M].ManningPublicationsCo.Press,2003.[11]ZhangHaiyu,LiuXiaoxia.DevelopsWebapplicationwithStrutsbasedonMVC[J].JournalofMicrocomputerDevelopment,2007,11(7):39-43.[12]BerkiE,GeorgiadouE,HolcombeM.Requirementsengineeringandprocessmodelinginsoftwarequalitymanagermenttowardsagenericprocess[J].SoftwareQualityJournal,2004.12(3):265-283.附录49 通用方法代码:publicclassBaseHibernateImplextendsHibernateDaoSupportimplementsBaseHibernate{/***修改数据**@paramobj*要修改的对象*@returntrue:修改成功,false:修改失败*/publicbooleanupdate(Tobj){booleanisNo=true;try{this.getHibernateTemplate().merge(obj);}catch(HibernateExceptione){isNo=false;e.printStackTrace();}returnisNo;}/***删除数据**@paramobj*要删除的对象*@returntrue:删除成功,false:删除失败*/publicbooleandelete(Tobj){booleanisNo=true;try{this.getHibernateTemplate().delete(obj);}catch(HibernateExceptione){isNo=false;e.printStackTrace();}returnisNo;}/***查询通用方法(通过键/值方式设置参数)**@paramhql*查询语句49 *@paramparams*条件参数*@return符合条件的记录*/protectedListlist_params_M(Stringhql,Mapparams){Queryquery=null;Listlist=null;//返回值try{if(params!=null&¶ms.size()>0){//有参数query=this.getSession().createQuery(hql);//创建查询Object[]keys=params.keySet().toArray();for(inti=0;ifind(Stringhql,Object...params){Queryquery=null;Listlist=null;//返回值try{if(params!=null){//有参数query=this.getSession().createQuery(hql);//创建查询for(inti=0;i0){//有参数query=this.getSession().createQuery(hql);//创建查询Object[]keys=params.keySet().toArray();for(inti=0;ilist_params(Stringhql,Listparams){Queryquery=null;Listlist=null;//返回值try{if(params!=null&¶ms.size()>0){//有参数query=this.getSession().createQuery(hql);//创建查询for(inti=0;i