毕业设计(论文)基于JSP的医院管理系统的设计与实现_第1页
毕业设计(论文)基于JSP的医院管理系统的设计与实现_第2页
毕业设计(论文)基于JSP的医院管理系统的设计与实现_第3页
毕业设计(论文)基于JSP的医院管理系统的设计与实现_第4页
毕业设计(论文)基于JSP的医院管理系统的设计与实现_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、 基于jsp的医院管理系统的设计与实现 姓 名 系 别、 专 业 导 师、 职 称 完 成 时 间 目 录摘要iabstractii1.引言11.1结构概述和技术介绍11.1.1 jsp概述11.1.2 jsp的新特性21.3.3 jsp的基本概念42.系统分析42.1 需求分析42.2 系统设计原则52.1.1 技术可行性52.1.2 经济可行性52.1.3 操作可行性52.1.4 时间可行性63.数据库设计63.1 数据库的选择63.2 建立数据库63.3 建立数据库的任务73.4 建立数据库的方法73.5 数据项和数据结构83.6 建立数据表94.系统设计104.1 模块的设计114.1

2、.1 登录模块114.1.2 用户注册模块134.1.3 系统管理模块144.1.4 挂号管理模块154.1.5 患者管理模块164.1.6 开药管理模块165.系统调试与测试175.1 程序调试175.2 软件的测试175.2.1 测试的重要性及目的175.2.2 测试的步骤195.2.3 测试的主要内容196.结论206.1 系统评价206.2 安全性问题21参考文献22致 谢23摘要随着科技的飞速发展,计算机已经广泛的应用于各个领域之中。在医学领域中,计算机主要应用于两个方面:一是医疗设备智能化,以硬件为主。另一种是医院信息管理系统(his)以软件建设为主,以提高医院的现代化管理水平。本

3、次毕业设计的主要任务是基于b/s模式开发设计一个医院管理系统以提高医院的现代化管理形象。该系统包括药品管理、挂号管理、开药管理和药房管理四个部分,可以实现药品、患者的录入、删除、修改和查询等功能,特别适应各大中小型医院,提高医院管理水平,系统设计合理操作简便关键词:his jsp abstractwith development at full speed of science and technology, already extensive to apply all field computer have, in the medical science realm, the applica

4、tion of the calculator is very extensive already.this system includes a system management,doctors management,sufferer to manage to manage four parts and medical history, can carry out a doctor,nurse to record to go into,the delete,modification and search etc.s function. but because time is limited,

5、some functions systems are not perfect enough, it makes it with better function to wait revising and perfecting further, operate simple and more direct, in order to apply to reality better. keyword: jsp his1. 引言医院信息系统(hospital information system)简称his,是医院实现现代化建设的重要基础工程,是提高医院管理水平、医疗水平、业务运转效率和服务质量的必要手

6、段,是指应用电子计算机和网络通信设备,对医院的病人医疗信息、财务核算分析信息、行政管理信息和决策分析统计信息进行收集、存储、处理、提取和数据通讯,满足所有授权用户对信息使用需求的计算机应用软件系统。随着医院数字化建设的蓬勃发展,数字化医院的理念已经被广大医院所接受,目前面临的主要问题是如何去建设数字化医院。因此,目前我国数字化医院的建设重点必须以医疗数字化为主,即着重发展医院内与医疗活动相关的各类信息的数字化管理和综合利用,实现诊疗工作的数字化以及医疗流程的自动化,并保证系统的开放性,为将来扩展到区域医疗打下基础。相应地,医疗信息系统作为数字化医院建设的系统基础,它的研究重点也将转为面向纯粹医

7、疗活动的各类医疗信息系统及其集成研究。以医疗数字化为建设重点的数字化医院的总体规划,它通过各类医疗信息系统的有机集成而实现。可以说,新一代医疗信息系统将在“数字化医院”的建设中发挥举足轻重的作用。1.1结构概述和技术介绍1.1.1 jsp概述jsp是服务器端脚本环境可以用来创建交互式web应用程序。当服务器收到对jsp文件的请求时,它处理包含在用于构建发送给浏览器的web页文件中的服务器端脚本。除服务器端脚本外,jsp文件也可以包含html(包括相关的客户端脚本)和com组件调用,这些组件可执行不同任务,如连接到数据库或处理商业逻辑。1对于html创作者html创作者,将会发现用jsp编写服务

8、器端脚本可使创建更为复杂、使用的web应用程序变得十分简单。jsp对于将html表单信息存储在数据库中、根据访问者的自选项自定义web站点或对不同的浏览器使用不同的html功能,提供了优异的解决方案。例如,从前要在web服务器上处理用户输入,必须首先用perl或c等语言建立传统的公共网关接口(cgi)应用程序。而使用jsp后,仅通过在html文档中直接嵌入的简单服务器端脚本,便可以收集html表单信息,并传递到数据库。如果已熟悉microsoft jspscript或microsoft(r)jscript,那么学习jsp将不会感觉到困难。2对于高级web脚本语言编写者由于jsp使用了中性语言,

9、因此只要熟悉jspscript、jscript或perl等脚本语言,就了解了jsp的使用方法。在jsp页中,可以使用已经装有com脚本兼容编辑引擎的任何脚本编辑语言。jsp使用java和jscript脚本引擎,但仍可安装用于perl、rexx和python的脚本引擎,他们可从第三方供应商处获得。3对于web开发和编程人员如果使用visual basic、c+或java等编程语言开发过后端web应用程序,将会发现jsp是创建web应用程序灵活而快速的方法。除了添加脚本为应用程序创建html界面之外,还可以建立自己的com组件。可以将应用程序的商业逻辑封装在可重复使用的模块中,以便在脚本、其他组件

10、或其他程序中调用。4active server pages模型当浏览器向web服务器请求.jsp文件时,服务器断脚本便开始运行。于是web服务器调用jsp,用它从头至尾处理所请求的文件、执行脚本命令,并将web页发送到浏览器。因为脚本运行于服务器而不是客户端,所以web服务器负责生成发送到浏览器的html页等工作。服务器端脚本无法被预先复制,因为返回到浏览器的只是脚本的运行结果,用户无法得知当前页面的脚本命令。1.1.2 jsp的新特性jsp新增了许多特性,有助于轻松编写脚本和开发web应用程序。(1)新的流控制能力jsp的server对象具有两种可用来控制程序流的新方法:server .tr

11、ansfer 和server .execute。与重定向请求(需要往返于客户端)不同,使用这些方法可将请求直接传送到.jsp文件,而不需要离开服务器。(2)错误处理jsp具有新的错误处理能力,可以使用自定义的错误信息.jsp文件来捕捉错误,也可以使用新的server.getlasterror方法来显示有用信息,如错误描述或发生错误的行号。(3)无脚本通常jsp静态内容的处理速度快于服务器端内容的处理速度,因此以前只将.jsp文件扩展名指派给包含jsp功能性的文件。无论何时,如果需要在静态.html文件中添加jsp,只能手工添加.jsp文件扩展名并修正相关超级链接。不过,在jsp的最新版本中,不

12、包含服务器端功能性的.jsp文件的处理速度比以前快了许多。因此,如果正在创建展开的web应用程序并且其中的文件最终可能需要jsp功能性,现在就可以很方便地为这些文件指派.jsp文件扩展名,而不必考虑他们是否包含静态或服务器端内容。(4)性能增强的对象jsp提供流行的可安装组件的性能怎增强版本。这些对象能够可靠的使用与各种web发布环境。(5)xml集成xml(扩展表及语言)允许描述复杂的数据结构或文档,可以在各种应用程序、客户端和服务器之间共享此信息。使用microsoft internet explorer 4.0或根高版本附带的microsoft xml parser,可以创建服务器端应用

13、程序,该应用程序允许web服务器与internet explorer4.0(或更高版本)或任何包含xml结息能力的服务器交换xml格式的数据。(6)windows脚本组件jsp支持microsoft强大的脚本新技术windows脚本组件。现在可以将商业逻辑脚本过程转换为可以重复使用的com组件,该组件可用于web应用程序和其他组件对象模型(com)适用的程序。(7)确定浏览器能力的新方法jsp具有可确定浏览器准确能力的新特性。当浏览器发送能描述其能力的cookie(可通过使用简单的客户端脚本来安装这样的cookie)时,可以创建一个“浏览器能力组件”实例,以便检索随cookie返回的浏览器属性

14、。可以使用此特性来确定浏览器能力并对应用程序做相应调整。(8)jsp自动调整jsp现在可以检测执行请求何时被外外部资源阻断,并自动提供更多县城以便同时执行附加请求和继续正常处理。如果cpu负担过重,jsp将减少线程数量,以便减少因太多费阻断请求同时执行而产生的持续不断的交换。(9)服务器端包含(使用src属性)现在可以使用html(script)(/script)标签的src属性来完成服务器端包含。当使用src属性制定虚拟或相对路径并使用runat=server属性表示服务器端执行时,可以完成与“#include”命令一样的功能。(10)编码的jsp脚本以前web开发人员禁止他人查看隐藏在脚本

15、后面的逻辑。jsp现在支持microsoft visual basic scripting edition(jspscript)和microsoft jscript5.0 附带的新的脚本编码实用程序。web开发人员可以对客户端和服务器端脚本应用编码方案,以便使程序逻辑(使用非标准asccii字符)不可读。已编码的脚本在运行时由脚本引擎解码,因此不需要单独的实用程序。虽然此特性不是专门的安全加密解决方案,但可防止大多数用户无意中查看或复制脚本。1.3.3 jsp的基本概念(1)urlurl(uniform resource location,统一资源定位器)有协议名、web服务器地址、路径名和文

16、件名四部分组成,它只是了文件在internet中的位置。(2)htmlhtml(hypertext markup language,超文本标记语言)是一种用于编写超文本文档的标记语言,它不是一种程序设计语言而是一种结构语言。它具有凭他无关性,无论是何种操作系统,只要有相应的浏览器程序,就可以运行html文档。(3)web站点web站点是计算机网络上的一个位置,它以网页或文档形式提供信息,访问者只需通过web浏览器链接到站点。(4)主页主页是web站点上一组网页或其他文件的起始页。它是html格式的文档,可用来说明站点内容、作者所在公司或部门的新闻、指向其他相关文档的链接或站点作者的个人信息等。

17、2.系统分析2.1 需求分析根据调研情况进行分析,认识到完整的管理系统非常复杂 ,其功能随医院规模等条件的变化而不同。目前各种医院管理系统的不断涌现,但是大多都是针对大型医院来设计的,而很少考虑到众多乡镇一级医院的实际情况,其功能在乡镇一级医院并不适用,从而增加了院方不必要的投资。此外,系统一般也不支持远程访问,信息的共享性差。为适应医疗信息管理发展的需要,开发基于b/s结构的医院管理系统。该系统应具有以下功能:(1) 登陆模块,可分为管理员登陆和普通用户登录两个模块。(2) 用户注册模块,对用户注册的用户名的要求,不同的用户要求要有不同的用户名。(3) 系统管理模块,包括添加管理员,管理员密

18、码的修改。(4) 挂号管理模块,包括患者的名字、性别、年龄、现住地址和患者简介。(5) 患者管理模块,对患者进行增加、患者删除、患者信息的修改。(6) 开药管理模块,对药品的增加、删除、修改、查询,患者病历查2.2 系统设计原则系统设置网站综合设置 住院患者管理 主治医生管理 注册会员管理 医院管理 医生信息 医院服务信息 管理员登陆 普通用户登陆 医院管理系统图2-1 系统结构图2.1.1技术可行性本系统是采用基于web的程序设计思想进行编制的,利用jsp语句结合microsoft sql server 2000后台数据库开发“医院信息管理系统”,可应用于各大中小型医院。整个系统由若干个表、

19、窗口、菜单构成的。用户可通过菜单来调用系统的各项功能。基于web的程序设计语言jsp,之所以成为功能强大的服务器端程序是因为它为web编程人员提供了一组功能强大的内置对象,通过这些内置对象,编程人员可以控制web页面的各个方面。2.1.2 经济可行性鉴于次系统是毕业设计,所以本系统不需要多余的格外开发成本,硬件配置和软件配置环境家用机可完全胜任,所以在经济上是可行的。2.1.3 操作可行性本设计力求界面简单明了,操作简单,便于上手,使用户可以在最短的时间内熟练掌握各功能。所以在操作上是可行的。2.1.4 时间可行性从时间上看,在两个月的时间里学习相关知识,并开发网站,时间上是有点紧,但是不是不

20、可能实现,通过两个多月的努力功能基本实现。3.数据库设计3.1 数据库的选择目前流行的数据库管理系统有oracle、db2、sybase、 ms access和microsoft sql server等。oracle和db2 是性能卓越、稳定可靠的大型数据库管理系统,目前拥有较多的用户。 ms access 是一种性能可靠、使用方便的小型数据库系统。一般而言,数据库是由特定的操作系统环境上的一个或者一组文件组成的,而数据库管理系统一般是由运行于用户计算机或网络上的远程计算机上面的一整套程序组成的。根据对数据组织方式的不同,数据库系统分成关系数据库、层次数据库和网状数据库。目前常见的数据库系统上

21、基本上都是关系型数据库系统。在关系型数据库系统中,数据被组织成为二维表格形式,表格中的每个数据行称为一条记录或直接称为行,每一个列有时被称为字段或直接称为列,通过指定行和列定位一个指定的数据项。一个优秀的数据库系统应具备如下特征:(1)最大限度的减少数据的重复存储(称为“冗余”),以减少存储空间的占用;(2)尽可能地提高数据的查询(搜索)速度;(3)提供灵活的数据组织和统计手段;(4)保章数据的安全。本系统采用的数据库是sql server,它是由microsoft开发和推广的关系数据库管理系统(dbms)。所有对数据库访问操作的管理信息系统都是根据用户的需求设计的,如果对数据库概念理解不深,

22、那么设计出的数据库,不但访问速度慢,让用户不满意,而且还存在很多的重复数据,大量的浪费计算机资源。所以如何符合逻辑的有组织的设计好数据库,使数据库不仅容易维护,而且还让用户方便快捷的访问操作,这将是一个重点。因此,要设计好数据库,先了解一下关于数据库的基本概念是必要的。3.2 建立数据库企业管理器是帮助用户创建数据库的一个有力的工具,利用数据库向导,你可以很容易地创建一个完美的sql server数据库。但创建sql server数据库之前,你需要知道如何来设计数据库使得所建数据库不仅满足客户需求,并且有较高的管理效率。3.3建立数据库的任务 数据库设计实际上主要是所要处理的数据的表示方法和存

23、储结构的设计。在采用数据库技术之前,这些工作分散在应用程序中进行;在采用数据库技术之后,这些工作可以通过数据库设计集中起来系统地进行。上图可以看出,进行数据库设计的首要任务是考虑信息需求,也就是数据库要存入什么样的数据。创建数据库并不是仅仅为了存储数据,更主要的目的是从中提取有用的信息。除了考虑数据存储什么数据外,还应考虑存取方式,也就是处理需求。即要根据用户提出的存取要求来设计数据模式和应用程序。3.4 建立数据库的方法数据库设计方案应该是将用户需求充分融入其中的,所以同用户进行充分的接触和交流是比不可少的。就设计方法来说,应遵循以下几个步骤:(1)确定该数据库中需要的表(2)确定表中需要的

24、字段(3)明确有唯一值的字段(4)确定表之间的关系(5)优化设计(6)输入数据并新建其他数据库对象建立医院信息管理系统的数据库的操作步骤:(1)打开企业管理器,在“数据库”上单击鼠标左键,之后在弹出的快捷菜单中选择“新建数据库”命令。保存并命名为“hospital”。(2)在企业管理器,选择“安全性”的“登录”选项单击右键选择“新建登录”创建用户。(3)选择“hospital”中的“表”单击右键弹出快捷菜单选择“新建表”命令,在显示的窗口中设置表中各个字段的名称、数据类型、长度和允许空等信息,并保存。(4)选择用户信息表,单击鼠标右键。在弹出的快捷菜单中选择“打开表”然后选择“返回所有行”命令

25、,在显示的窗口中输入表的信息,然后关闭窗口,完成在表中输入信息的工作。这样名为hospital的数据库就建成了,系统建立的数据库文件扩展名为.mdb,文件主名是在database name编辑框中键入的数据库名称。3.5 数据项和数据结构 用户身份,包括的数据项:用户身份编号、用户身份名称,其e-r图如图3-1所示: 用户编号 用户身份 用户身份名称图 3-1 用户身份e-r图 用户登录信息,包括的数据项有:用户名称、用户密码、用户身份、用户登录次数,其e-r图如图3-2所示: 用户登陆信息 用户密码 登陆次数 用户身份 用户名称图3-2 用户登陆信息e-r图 用户登录日志信息,包括的数据项有

26、:日志记录编号、用户编号、登录时间、离开时间,其e-r图如图3-3所示:日志记录编号离开时间登陆时间用户编号登陆日志信息图 3-3 用户登陆日志e-r图3.6 建立数据表在系统数据库设计中,数据表的设计是关键,如何根据系统要实现的功能合理地设计数据表,将关系到整个系统数据表的运行效率甚至整个系统的成败,在表设计中要注意遵循数据库计数的原则。规范化逻辑数据库设计包括使用正规的方法来讲数据分为多个相关的表。拥有大量窄表(列较少的表)是规范化数据库的特征。而拥有少量宽表(列较多的表)是非规范化的特征。数据库表设计理论的基本原理是:每个表都应有一个惟一的行标识符,可以使用列或列集将任何单个记录同表中的

27、所有其他记录去区别开来。每个表都应有一个id列,任何两个记录都不可以共享同一id值。作为表的唯一行标识符的一列或多列是表的主键。同是,表应只能存储单一类型实体的数据并且应避免可为空的列,更重要的是表不应有重复的值或列。因为医院信息管理系统包括挂号信息管理、药品管理等模块,还有其他子模块构成,包括的数据比较多,所以本系统的数据库由9个表组成的,每一个表都要确定主关键字。这样本系统所有的表结构都建成了。表3-1 用户身份表字段字段名数据类型长度说明1idint4用户身份编号2displayvarchar50用户身份名称表 3-2 用户登陆信息表字段字段名数据类型长度说明1usernamevarch

28、ar20用户名称2passwordvarchar20用户密码3flagidint用户身份4countint用户登陆次数表 3-3用户基本信息表字段字段名数据类型长度说明1idint4编号2namevarchar20姓名3sexvarchar4性别4peoplesvarchar20民族 5emailvarchar50email6officetelvarchar15办公室电话7mobilevarchar15手机号8positionvarchar20职务9birthdaydatetime8生日10idcardnovarchar18身份证号11partyvarchar20政治面貌12naplaceva

29、rchar50家庭住址13educatvarchar20学历14schoolvarchar50毕业学校15specialvarchar50特长16gertimedatetime8毕业时间17gerspecialtyvarchar20毕业专业18wedlockvarchar10婚姻状况表 3-4 用户登陆日志信息字段字段名数据类型长度说明1idint4日志记录编号2usersidint20用户编号3arrtimedatatime8登陆时间4deptimedatatime8离开时间4.系统设计功能模块的设计是整个系统设计的重要部分,它决定怎么实现系统的功能,不仅要求功能完善,而且还要界面友好,因此

30、,对于一个成功的系统设计,功能模块的设计是关键。4.1 模块的设计4.1.1 登录模块(1)管理员登录:包括用户名、密码、验证码,界面图如图4-1所示: 图4-1 管理员登录界面图实现管理员登陆界面的部分代码如下:if(username = null|username.trim().equals()request.setattribute(message, 请正确输入用户名!);request.getrequestdispatcher(index.jsp).forward(request, response);else if(password = null|password.trim().eq

31、uals()request.setattribute(message, 请输入密码!);request.getrequestdispatcher(index.jsp).forward(request, response);(2)普通用户登录:只有合法的用户在输入正确的密码后方可进入系统,否则将提示密码或用户名输入错误,并询问用户是否重新输入,界面图如图4-2所示:图4-2 普通用户登录界面图实现普通用户登录的部分代码如下:trystring method=request.getparameter(method).trim();adminbean loginbean = new adminbea

32、n();httpsession session = request.getsession();session.setmaxinactiveinterval(1200);systembean systembean = new systembean();string sysdir = systembean.getdir();if(method.equals(one)/admin登录string username = request.getparameter(username);string password = request.getparameter(password);if(username

33、= null|username.trim().equals()request.setattribute(message, 请正确输入用户名!);request.getrequestdispatcher(index.jsp).forward(request, response);else if(password = null|password.trim().equals()request.setattribute(message, 请输入密码!);request.getrequestdispatcher(index.jsp).forward(request, response);elsestri

34、ng md5password = md5.md5(password);string agent = request.getheader(user-agent); stringtokenizer st = new stringtokenizer(agent,;); string useros=st.nexttoken();string loginip = request.getremoteaddr();int flag = loginbean.adminlogin(username,md5password, password,useros,loginip);switch (flag)case c

35、onstant.success:list list = loginbean.getadmininfo(username);session.setattribute(user, username);session.setattribute(list, list);request.getrequestdispatcher(sysdir+/).forward(request, response);break;case constant.name_error:request.setattribute(message, 用户名错误!请确认管理权限!);request.getrequestdispatch

36、er(index.jsp).forward(request, response);break;case constant.password_error:request.setattribute(message, 密码错误,请确认管理权限!);request.getrequestdispatcher(index.jsp).forward(request, response);break;4.1.2 用户注册模块用户注册包括用户名、登录密码、密码确认,界面图如4-3图所示 :图 4-3 用户注册界面图实现用户注册的部分代码如下:if(username.trim().equals(admin)req

37、uest.setattribute(username, username);request.setattribute(message, 非法的用户名,请重新选择!);request.getrequestdispatcher(reg2.jsp).forward(request, response);elseint flag = memberbean.checkregname(username);if(flag = constant.success)request.setattribute(username, username);request.setattribute(message, 恭喜您,

38、这个名字可以使用!);request.getrequestdispatcher(reg2.jsp).forward(request, response);else if(flag = constant.same_name)request.setattribute(username, username);request.setattribute(message, 对不起,该用户名已存在,请重新选择!);request.getrequestdispatcher(reg2.jsp).forward(request, response);4.1.3 系统管理模块系统管理模块是医院信息管理系统中一个基础

39、的部分,在本模块中包括管理员对自身密码的重新设置,可以定时更换密码,确保资料的安全;同时还有登陆日志模块,记录每一次登陆信息,如果出现特殊情况,可以查询登陆日志查询,增加了系统的安全性和保密性,便于控制和管理,界面图如图4-4所示: 图 4-4 系统管理模块图实现系统界面的部分代码如下:if(username2 = null)request.getrequestdispatcher(error.jsp).forward(request, response);elsestring oldpwd = md5.md5(request.getparameter(oldpwd).trim();strin

40、g newpwd = md5.md5(request.getparameter(newpwd).trim();string username = (string)session.getattribute(user);int flag = loginbean.editpassword(username, oldpwd, newpwd);switch (flag)case constant.success:request.setattribute(message, 密码修改成功!);request.getrequestdispatcher(sysdir+/system/editpwd.jsp).f

41、orward(request, response);break;case constant.password_error:request.setattribute(message, 原始密码错误,请确认权限!);request.getrequestdispatcher(sysdir+/system/editpwd.jsp).forward(request, response);break;case constant.system_error:request.setattribute(message, 系统维护中,请稍后再试!);request.getrequestdispatcher(sysd

42、ir+/system/editpwd.jsp).forward(request, response);break;4.1.4 挂号管理模块挂号管理模块是医院信息管理系统中一个部分,本模块主要实现后台管理,包括添加、删除、修改,患者挂号添加功能如图4-5所示 图 4-5 挂号管理模块图实现患者挂号添加功能的部分代码如下:public void dopost(httpservletrequest request, httpservletresponse response)throws servletexception, ioexception response.setcontenttype(con

43、stant.contenttype);request.setcharacterencoding(constant.characterencoding);yaobean yb=new yaobean();string rname=request.getparameter(rname);string age=request.getparameter(age);string sex=request.getparameter(sex);string address=request.getparameter(address);string intro=request.getparameter(intro

44、);int flag = yb.addgh(rname, age, sex, address,intro);if(flag=constant.success)request.setattribute(message, 操作成功!);request.getrequestdispatcher(admin/gh/index.jsp).forward(request, response);elserequest.setattribute(message, 系统维护中,请稍后再试!);request.getrequestdispatcher(admin/gh/index.jsp).forward(req

45、uest, response);4.1.5 患者管理模块患者管理模块是医院信息管理系统中重要部分之一,在本模块中包括所有患者的人事信息的添加、删除、修改,增加患者图如图4-6所示:图 4-6 患者管理模块图4.1.6 开药管理模块病历开药管理模块是医院信息管理系统中重要部分之一,在本模块中包括所有开药的添加、删除、修改、查询,患者病历查询如图4-7所示:图4-7患者病历查询界面图5.系统调试与测试5.1 程序调试在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些

46、数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。5.2 软件的测试5.2.1 测试的重要性及目的(1)测试的重要性软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。 事实上,对于软件来讲,不论采用什

47、么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40以上。而在软件开发的总成本中,用在测试上的开销要占30到50。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。 在实践中,

48、软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括: 认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感; 以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定; 测试工作枯燥无味,不能引起人们的兴趣; 测试工作是艰苦而细致的工作; 对自己编写的程序盲目自信,在发现错误后,顾虑别人对自己的开发能力的看法。 这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。 (2)测试的目的 如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部

49、分或是以前出错比较多的位置。如果测试目的是为了给最终用户提供具有一定可信度的质量评价,那么测试就应该直接针对在实际应用中会经常用到的商业假设。 在谈到软件测试时,许多人都引用grenford j. myers在the art of software testing一书中的观点: 软件测试是为了发现错误而执行程序的过程; 测试是为了证明程序有错,而不是证明程序无错误; 一个好的测试用例是在于它能发现至今未发现的错误; 一个成功的测试是发现了至今未发现的错误的测试。 这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是

50、软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。 首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。5.2.2 测试的步骤与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成:(1)模块测试 在这个测试步骤中所发

51、现的往往是编码和详细设计的错误。(2)系统测试 在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。(3)验收测试 在这个测试步骤中发现的往往是系统需求说明书中的错误。5.2.3 测试的主要内容为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试和系统测试。 (1)单元测试 单元测试集中在检查软件设计的最小单位模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。 身份认证时候要保证在以下输入情况时候系统能够健康运行: 输入用户id时候键入非法字符,如:#¥%等 在操作员编码框输入非数字字符,如abc

52、,!#¥ 输入的用户id,或者操作员编码不存在。 输入的用户id,或者操作员编码与密码不相符合。 输入的用户id,操作员编码不能登陆本模块。 输入的信息超过规定字符长度 输入的信息有一项为空。查询信息时候 查询条件键入时有非法字符,如:$%等。 输入不存在的查询条件。 入查询条件超过规定字符长度。 输入查询条件一项为空。(2)集成测试 集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。 (3)确认测试 确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的

温馨提示

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

评论

0/150

提交评论