版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京邮电大学毕业设计北京邮电大学毕业设计PAGE\*ROMANPAGE\*ROMANIV基于java的药店管理系统摘要InternetIT产业在市场竞争这使得对数据库的进一步开发和利用显得尤为迫切。增长,药店管理系统成为市场常用的系统之一。它最主要的特点是能够实时的和准确的合理的分配资源。同时系统将所有的药品信息透明化,不会让广大群众花冤枉钱。Spring,Hibernate,Struts流行框架技术来对业务逻辑和数据持久化模块设计结束后的整合。此系统流程相对清晰,功能上主要完成对药品的管理和各种操作,同时也实现了对系统管理员的增删操作。通过后期系统的不断完善和改造,优化界面并且修改系统漏洞,基本实现了各个功能模块。关键词:药店管理系统,Web,java,数据库Withtherapiddevelopmentofmodernscienceandtechnology,computertechnologyhaspenetratedintobrotherfield,becometheWiththerapiddevelopmentofmodernscienceandtechnology,computertechnologyhaspenetratedintobrotherfield,becomethenecessarytoolsforvariousindustries,especiallytheInternettechnologypromotionandtheestablishmentoftheinformationhighway,makeITindustryinmarketcompetitionmoreshowsitsuniqueadvantages,intotheinformationtimes,ahugedatainformationwaitingforprocessingtheprocessingandtransmission,thismakesthefurtherdevelopmentofthedatabaseofbooksanduseisparticularlyurgent.Alongwiththedevelopmentofmedicineindustryrulesscaleexpandingconstantly,drugdramaticallyincrease,allkindsofinformationaboutthedrugsalsoincreaseexponentially.Medicalmanagementsystemonthemarketisthemostcommonlyusedoneofthesystem.Thesubjectofthemedicinemanagementsystem,realizethewholeprocessofdrugclassificationmanagementforpatientswithpresentsallpharmaceuticalofdetailedinformation,thesystemrealizedtheuseofcomputernetworkinalldifferentkindsofinformationsharingdrugs,andimprovethepatientintheaccuracyoftheselectedmedicine,forhospitalandsolvedtheamountofpressure.Atthesametimealsoreasonableallocationofresources.Andthesystemwillbeallofthedruginformationtransparency,won'tletthepeopleinthebeautifulinjustice.ThissystemusingaSpring,Hibernate,Struts populartechnologyframeworkbusinesslogicanddatapersistentoperation,inthedivisionandthedeterminationneededforeachmodulemoduleoftherealizationofthefunction,thefunctionofeachmodulebetweenthecoordinationandinformationcommunication,moduledesigninaftertheendoftheintegration.Processofthesystemisrelativelyclear,thesystemfunctionmainlycompletesthemanagementofmedicaldrugs,aswellasimplementationofthesystemadministratortoaddordeleteoperation.Throughthesystemconstantlyimprovesandreformsfinally,optimizingeachfunctionalmodulehasbeenthetheinterfacedisplay,changingthesystemvulnerabilities,Keywords:Medicinemanagementsystem,Web,java,database目 录摘要 IAbstract II绪 论 1第一章 系统开发背景 2开发背景 2我国药店管理系统发展现状 2不同层面药店的发展现状 2药店进销存管理的发展现状 3第二章 系统相关技术 4设计思想 4开发工具 4java简介 4struts介绍 5spring介绍 5Hibernate介绍 6安装mysql 7第三章 系统分析 9需求分析 9可行性分析 9技术可行性 9经济可行性 9管理可行性 10法律可行性 10系统E-R图 10数据流程分析 12数据字典 13系统用例图 16数据库表 17第四章 系统设计与实现 19系统功能设计 19系统功能界面介绍 19系统登录页面 20系统首页页面 20药品管理页面 21类别管理页面 23药品购买页面 24销售管理页面 27进货/需求管理页面 28系统设置页面 28第五章 系统测试 30系统测试原理及测试原则 30测试的原理 30系统测试原则 31系统测试的方法 31测试项目说明 31结 论 36致 谢 37参考文献 38外文原文 39外文译文 47北京邮电大学毕业设计北京邮电大学毕业设计PAGEPAGE9绪 论济效益做出了显著的贡献。就药店而言,特别是一些中小型的药店,在信息化过程中的步伐要落后于大中型药第一章 系统开发背景开发背景也的发展,所以网上药店管理是势在必行。效的处理方式和管理方法,因此加快药店的信息化进程是必不可少的。我国药店管理系统发展现状不同层面药店的发展现状顺应了零售行业对信息化的要求,为商业管理信息系统提供了系统全面的技术解决方随着信息化的快速发展,以及激烈的市场竞争,各药店也将在信息化上下功夫,以高效率、低成本立足市场,获得更多的利润。药店进销存管理的发展现状POS店的效益,并提高日常运营效率。第二章 系统相关技术设计思想时系统将所有的药品信息透明化。WEBWEB开发工具java简介JavaSunMicrosystems19955JavaJava向因特网的所有特点。面向对象:其实是现实世界模型的自然延伸。现实世界中任何实体都可以看过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界。所谓封装,就是用一个自主式框架把对JavaJavaJava上解释执行,只要经过简单的粘贴和复制就行了,不影响程序的效果Java(TM),所以“砂箱”安全性模型对它们不起限制作用。从安全性的观点看,Java应用程Java程序,您必须对集成文件系统中的类文件具有权限。程序一旦启动,它就在该用户权限控制下运行。您可以使用沿用权限来访问具有运行程序的用户的权限和程序拥有者权限的对象权限临时地将用户原先无权访问的对象的权限授予用户。支持多线程技术,就是多个线程并行机制,多线程是Java个重要方法,特别有利于在程序中实现并发任务.Java提供Thread线程类,的并发机制.然而,,因而,而在进行临界资源分配时有两方面需要考虑,即安全性和公平性.文中首先讨论了多线程并发系统中的安全性与公平性问题,指出安全性与公平性在并发系统中访问临界资源时的重要性.隧道的实例,演示各种条件下的行驶情况来进一步说明该问题.JavaEE(JavaPlatform,EnterpriseEdition)sun公司推出的企业级应用程序版本。这个版本以前称为J2EEJava应用程序。JavaEEJavaSEWeb服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-orientedarchitecture,SOA)Web2.0JavaEEJDBC(JavaDatabaseConnectivity)提供连接各种关系数据库的统一接口,据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。struts介绍Struts对Model,View和Controller都提供了对应的组件。ActionServletStrutsActionServletJSP页面显示。ModelActionFormJavaBeanActionFormActionFormActionServletAction,ActionActionForm里面的请求参数处理用户的请求。JavaBean括数据库访问等。ViewJSP(HTML、PHP……)实现。Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可ModelJSP部分。Controller组件:Controller组件有两个部分组成——系统核心控制器,业务逻辑控制器。系统核心ActionServletStrutsHttpServletServletHTTP请求,然后根据用户请求决ModelAction部分。spring介绍Spring7Spring模块构建在核beanSpring框架的每个模块(或组件)功能如下:核心容器:核心容器提供Spring框架的基本功能。核心容器的主要组件BeanFactory,它是工厂模式的实现。BeanFactory(IOC)用程序的配置和依赖性规范与实际的应用程序代码分开。Spring上下文:SpringSpring框架提供上下文信息。Spring上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。SpringAOP:通过配置管理特性,SpringAOP模块直接将面向方面的编程功能集SpringSpringAOPSpringAOPSpring的应用程序中的对象提供了事务管理服务。通过使用SpringEJB组件,就可以将声明性事务管理集成到应用程序中。SpringDAO:JDBCDAO极大地降低了需要编写的异常代码数量(例如打开和关闭连接。SpringDAOJDBCDAO异常层次结构。SpringORMORMJDO、HibernateiBatisSQLMapSpringDAO异常层次结构。SpringWeb上下文模块建立在应用程序上下文模块之上,为基于JakartaStrutsWeb模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。SpringMVC框架:MVC框架是一个全功能的构建 Web应用程序的MVC现。通过策略接口,MVC框架变成为高度可配置的,MVC容纳了大量视图技术,中包括JSPTilesiText和POISpring框架的功能可以用在任何J2EE务器中,大多数功能也适用于不受管理的环境。Spring的核心要点是:支持不绑定到特定J2EE服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同J2EE环境(Web或EJB、独立应用程序、测试环境之间重用。Springorg.springframework.beans包,它的设计目标是与JavaBean的底层中介。下一个最高级抽象是BeanFactoryBeanFactoryBeanFactory支持Singleton是默认的也是最常用的对象模型。对于无状态服务对象很理想。beanSpringIOCIOCSpring框架使JavaBean属性和配置数据来指出必须设置的依赖关系。Hibernate介绍HibernateJavaSQL的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate不仅Java类到数据库表的映射(JavaSQL数据类型的映射SQLJDBC处理数HibernateJDBCJava程序员可以随心所欲的使用对象编程思维来操纵数据库。HibernateJDBC的场合,它JavaServlet/JSPWeb意义的是,HibernateEJB(EnterpriseJavaBeansJava应用于企业计算的框架)J2EECMP,完成数据持久化的重任。Hibernate的优缺点是Hibernate使用Java反射机制而不是字节码增强程序来实现透明性。Hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。缺点是Hibernate限制您所使用的对象模型。例如,一个持久性类不能映射到多个表。mysql1、运行mysql安装文件。2Next
默认完全Custom(用户自定义”三个选项,我们选择“CustoDeveloperComponents(开发者部分”上左键单击,选择“Thisfeature,andallsubfeatures,willbeinstalledonlocalharddrive.MySQLServer(mysql服务器ClientPrograms(mysql客户端程序)“Documentatio(文档”也如此操作,以保证安装所有文件。3"C:\ProgramFiles\MySQL\MySQL5.5\",如:也可以修改为:"D:mysql\"。4、现在开始安装最后的配置,点Next,选择服务器类型DeveloperMachin(开发测试类,mysql占用很少资源ServerMachine(服务器类型,mysql占用较多资源DedicatedMySQLServerMachine(专门的数据库服务器,mysql占用所有可用资源ServerMachin满。5NextmysqlMultifunctionalDatabase(通用多功能型,好TransactionalDatabaseOnly(服务器类型,专注于事务处理,一般MyISAMnon-transactiona,随自己的用途而选择了,我这TransactionalDatabaseOnlNext”继续。6InnoDBTablespaceInnoDB数据库文件选择一个存储空间,直接按“Next”继续7、选择您的网站的一般mysql访问量,同时连接的数目,“DecisionSupport(DSS)/OLA(20个左右OnlineTransactionProcessing(OLT)500个左右、Manual Setting(OnlineTransactionProcessing(OLTPNext”继续8TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysqlNumber:33069、对mysql默认数据库语言编码进行设置,第一个是西文编码,第二个是多字节utf8CharacterSetgbgb231gbkgb2312mysqlSETNAMESGBK(GBK其它值,视这里的设置而定,就可以正常的使用汉字(或其它文字)了,否则不能正Next”继续10mysqlwindowsService名称mysqlbinWindowsPAT(下的文件,而不用指出目录名,比如连接mysql.exe-uusername-ppassword了,不用指出mysql.exe的完整地址,很方便,我这里全部打上了勾,Service不变。按“Next”继续。1root用户(超级管理)的密码(默认为空Newrootpassword”如果要修改,就在此填入新密码(如果是重装,并且之前已经设置了密码,在这里更改密码可能会出错,请留空,并将“ModifySecuritySettings安装配置完成后另行修改密码Confir(再输一遍Enablerootaccessfromroot就不要勾上,如果要方便,就勾上它CreateAnAnonymous新建一设置完毕,按“Next”继续。12、最后一个Next再加Execute,可以看到上面的步骤全部完成,安装完成。13MySQLWincmd后-uroot-p"为空,所以直接再按回车即可。第三章 系统分析需求分析21成本、扩大经营规模,成为药店营业者努力追求的目标。可行性分析技术可行性Struts2,Spring,HibernateSSH其中:表现层使用HTML,jsp,JavaScriptStruts2SprinHibernate经济可行性经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。由于本系统是为工作者提供方便快捷网络化办公内容,登陆本系统,即可使用系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为人们节约大量的时间和精力。所带来的方便及效益远远大于系统软件的开发成本。在经济上完全可行。北京邮电大学毕业设计管理可行性采用模块化编程,降低了错误产生次数,提高了开发效率。对于完成同样功能的进程,法律可行性1、所有技术资料都为合法。2、开发过程中不存在知识产权问题。3、未抄袭任何系统,不存在侵犯版权问题。4、开发过程中未涉及任何法律责任。系统E-RE-RE-R图如(3-1)所示。图3-1系统E-R图10北京邮电大学毕业设计北京邮电大学毕业设计PAGEPAGE16依据数据库设计的方法,可按照本系统数据特点设计相应的实体关系,分别如(图3-2)(3-1.tb-category的实体图idname
tb-category
createtimedescription图3-2类别信息实体图tb-medicine实体图nameid
medNocategoryIdphotoPath
reqCoun
tb-medicin
price
factoryAdddescriptiont medCounte图3-3药品实体图tb-selldetailididSellTotalsellNameuseridselldetailsellPricemedidsellCountsellTime图3-4药品销售实体图tb-user实体图ididusernameUsercreateTimepassword图3-5管理员实体图数据流程分析数据流程分析,即把数据在组织(或原系统)内部的流动情况抽象地独立出来,舍去了具体组织机构、信息载体、处理工作、物资、材料等,单从数据流动过程来考查实际业务的数据处理模式。数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。(DataFlow)(Process)和数据源(数据终点)。数据流(DataFlow):个数据流可以是记录、组合项或基本项。处理理的数据流为该处理的输入数据,离开处理的数据流为该处理的输出数据.以指向或离开数据存储的箭头表示。数据源及数据终点:表示数据的来源或数据的去向,可以是一个组织或人员,其图形符号用平行四边形表示。数据流程图符号说明:表示外部实体; 表示数据的处理过程表示数据存储; 表示数据流的方向根据上面的分析我们可以对系统画出如(图3-6)所示的顶层数据流图。管理管理员0药品信息管理系统图3-6系统顶层数据流图第1层数据流图是在顶层上的细分,从整体考虑数据流动及流向,如(图3-7)所示。信息的更新信息的更新数据更新药品信息药品信息药品信息存储药品信息显示信息管理员管理员信息管理员信息处理信息更新管理员信息管理员信息存储购买、销售处理购买信息 生成销售信息信息存储处理后的购买信息图3-7系统第1层数据流图数据字典素条目、数据流、处理过程、数据存储和外部实体。数据元素条目如下所示:名称:管理员编号长度:20有关数据结构:管理员信息表有关编码说明:Li XXX编号管理员代号数据结构条目名称:管理员信息说明:创建管理员信息记录的数据结构:用户名Id数据结构条目名称:管理员信息说明:创建管理员信息记录的数据结构:用户名Id密码建立时间有关数据流、数据存储:管理员信息名称:药品信息结构:药品编号类别编号价格库存厂址描述药品图片有关数据流、数据存储:药品信息数据流条目如下所示:数据流条目数据流名称:药品信息维护简述:管理员对药品信息维护数据来源:药品信息数据流向:药品信息的维护结果 数据流条目数据流名称:药品信息维护简述:管理员对药品信息维护数据来源:药品信息数据流向:药品信息的维护结果数据流条目数据流名称:进货信息管理数据流向:药品的进货管理结果数据流条目数据流名称:药品销售管理简述:管理员对药品销售情况管理数据来源:药品销售信息数据流向:药品销售信息的管理结果数据流条目数据流名称:药品销售管理简述:管理员对药品销售情况管理数据来源:药品销售信息数据流向:药品销售信息的管理结果数据流条目数据流名称:药品库存管理简述:管理员对药品库存情况管理数据来源:药品库存信息数据流向:药品库存信息的查询结果数据存储条目如下所示:数据存储条目名称:管理员信息说明:存储管理员的相关信息结构:用户名数据存储条目名称:管理员信息说明:存储管理员的相关信息结构:用户名密码Id建立时间有关的数据流:管理员信息请求管理→管理员信息管理数据存储条目名称:药品信息结构:药品编号药品名称价格厂址有关的数据流:药品信息管理请求→药品信息管理处理功能条目如下所示:处理功能条目名称:药品信息维护处理功能条目名称:药品信息维护正确传送处理逻辑:1.是否有漏填2.数据要求是否匹配处理功能条目名称:进货登记输入数据:进货表中各字段输出数据:是否登记成功,进货药品正确传送处理逻辑:1.是否有漏填2.数据要求是否匹配包含的数据结构:管理员信息处理功能条目名称:库存查询输入数据:药品编号,药品名称输出数据:查询的药品库存信息正确显示处理逻辑:库存报警处理功能条目名称:库存查询输入数据:药品编号,药品名称输出数据:查询的药品库存信息正确显示处理逻辑:库存报警处理功能条目名称:销售登记输入数据:销售表中各字段输出数据:是否登记成功,进货药品正确传送处理逻辑:1.是否有漏填2.数据要求是否匹配外部实体条目名称:管理员说明:管理员外部实体条目名称:管理员说明:管理员输入数据流:管理员账号,密码输出数据流:系统管理员管理个数:1个系统用例图登录系统添加商品<<extends>><<extends>>商品登录系统添加商品<<extends>><<extends>>商品删除商品<<extends>><<uses>>类别添加修改商品<<uses>><<uses>>销售管理<<uses>><<uses>>添加进货<<uses>><<uses>><<extends>>添加会员系统管理管理员<<extends>>退出系统修改密码图3-8管理员用例图北京邮电大学毕业设计数据库表管理员信息表:存放管理员信息的表,管理员的用户名和密码。药品信息表:用来存储药品相关信息,包括药品编号,药品名称,产地,药品类型等。销售信息表:用来存储药品销售相关信息,包括药品编号,药品名称,药品价格,药品数量,药品销售时间,操作人员,药品总额。库存信息表:用来存储库存相关信息,包括库存编号,库存量,库存审核,库存时间等。现将数据库表结构介绍如下:药品类别表:药品信息表:
图3-9药品类别表销售信息表:
图3-10药品信息表图3-11销售信息表17北京邮电大学毕业设计类型lintI类型lintI长度 十进位:e :I111lol允许空,I 口 1I ::1皖-rr』a18北京邮电大学毕业设计第四章 系统设计与实现系统功能设计流程图及处理过程。图4-1系统功能模块图管理员主要是对药店管理系统进行管理:系统用户管理:管理药店的管理员信息,可以添加、修改、删除用户信息。药品类别管理:管理药店的药品类别信息,可以进行添加、修改和删除操作。删除操作。清除、结账的功能操作。进货信息查询:输入查询号,即可以查看到货物,然后选择是否完成进货。销售信息管理:可以查看所有药品的销售信息,今日明细,也可以按照日期查询。药品进货管理:进行日常的药品进货登记,可以添加所需进货药品数量。库存信息浏览:此页面显示所有的库存药品信息,可以按照条件进行查询。系统功能界面介绍能界面。19北京邮电大学毕业设计系统登录页面本系统的登录页面如(图4-2)所示。图4-2系统登录页面(4-3)所示。开 始登录失败
接收登录信息库否 数据是否正是登录成功结 束图4-3系统的登录流程图系统首页页面进入系统后,可以看到左面的各个功能模块的导航,具体界面如(图4-4)所示。20北京邮电大学毕业设计图4-4系统管理界面药品管理页面添加药品,管理员可以在此输入药品的编号,从而进行下一步更详细的药品信息的添加,如果输入编号之后已经存在药品,还可以修改原有药品信息,如(图4-5)示。图4-5添加药品页面21北京邮电大学毕业设计模块流程图如(4-7)
图4-6添加药品结束开 始添加失败 添加信息将信息更新到数据库中否 更新是否成是添加成功结 束图4-7添加药品流程图式展示出来,在此处可以对药品进行进货、修改、购买的操作。如(4-8)所示。22五一i1五一i1心,.,欢饱量壹臣药量壹系统! tim置置比攸由凳曾冒哩购羞ii卢,欢硬量:壹医朽蓄电彖扶,欢硬量:壹医朽蓄电彖扶I佐侵矿酌叩i·逼量阮:阮汗九:1宜i奂攫雪暨.图4-9库存查询页面类别管理页面在此添加药品的类别和描述,即可以完成药品类别的添加,如(图4-10)所示。23北京邮电大学毕业设计图4-10类别添加页面在添加药品类别之后,可以查看药品类别,并且显示类别的具体信息,如(图4-11)所示。图4-11查看药品类别药品购买页面确认信息后可以继续购物也可以结账完成购买,如(4-12)所示。24北京邮电大学毕业设计图4-12选购药品页面该页面可以浏览药品具体信息,确认是否购买,若选择购买则跳转到购买药品页面,如(图4-13)所示。图4-13查看药品信息如(4-14)所示。25北京邮电大学毕业设计北京邮电大学毕业设计PAGEPAGE27二lli吐心!谩苯U租孵谝軞伈诅|l斗引三厂II|1互亢查看选购,在查看选购处可以继续购买,清除购买或是结账,如(亢巨.当四,帐磷>)i翌迥EI!愕矗旦哗巨.当四,帐磷>)i翌迥EI!愕矗旦哗归_n;讲I!共元已土11匣图4-15查看选购页面该功能模块的流程图如(图4-16)所示。开 始4查毛药品涫忠心f危妀茹呈干'桽吾药品者羊廿十洁空购买千 结账' 绯续购买' +结束图4-16选购药品流程图销售管理页面在此处可以查看所有的销售明细,今日明细,也可以按照日期来查询,如(图4-17)所示。.兰茄位置箭蠢盲哩}〉.兰茄位置箭蠢盲哩}〉箭蜇啊攫.图4-17销售明细查看页面北京邮电大学毕业设计进货/需求管理页面添加进货,在此处可以添加进货,并可以修改进货,如图(4-18)所示。图4-18添加进货页面(图所示。图4-19查看进货页面系统设置页面管理员添加,输入用户名、密码、确认密码就可以完成管理员的添加,如(图所示。图4-20管理员添加页面28北京邮电大学毕业设计北京邮电大学毕业设计PAGEPAGE39查看管理员,添加后可以查看管理员信息,还可以进行删除操作,如(图4-21)示。: 巨户名 厂旺晌:刊14-{]t-{]BLH5图4-21查看管理员页面第五章 系统测试系统测试原理及测试原则现预计的功能。其目的是方便整个系统的实现。测试的原理理和方法。同时,针对软件的特性,必须找到合适的测试方法。试的周期如(5-1)所示。需求分析系统设计编制程序单元测试需求分析系统设计编制程序单元测试集成测试系统测试确认测试使用维护测试阶段5-1软件测试周期示意图系统测试原则程序员应避免测试自己编写的程序;测试用例的设计必须包括预期的输出结果;测试用例应包括有效的和期望的输入情况,也要包括无效的和不期望的输入情况;所有的测试都应追溯到用户需求,所有测试活动都应该是有计划的,并且计划能够得到保障。只检查程序是否做了它应该做的事这仅完成了测试工作的一半,另一半则是要检查程序是否做了它不该做的事;一段程序中存在错误的概率与在这段程序中已发现的错误数成比例;测试上作必须有明确的目标;尽早地和不断地进行软件测试;穷举测试是不可能的,充分覆盖程序逻辑是有可能的。系统测试的方法分类:从是否需要执行被测软件的角度,可分为静态测试和动态测试。从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试。黑盒测试(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等白盒测试测试项目说明表5.1 登陆药店管理系统测试用例测试项目名测试项目名称测试内容执行者登录测试是否能成功登录栗茜续表5.1输入:密码:liqian输出:成功登录,进入管理页面错误输入1:用户名或者密码为空错误输出:没有提示,直接跳转回原界面错误输入2:输入的用户名和密码不存在错误输出:没有提示,跳转回原界面步骤及操作:进入登录的页面输入用户名和密码点击登录按钮系统直接跳转管理页允许偏差 没有进入管理页面条件 用户名和密码需要提前录入数据库表5.2 药品添加测试用例测试项目名测试项目名称测试内容执行者测试用例输入:药品添加测试是否能正确添加药品栗茜药品编码:012药品名称:甘草片单价:2元库存数量:20出厂地址:哈药六厂描述:止咳清热输出:添加成功,并把添加的药品信息添加到原有药品中错误输入:请完成输入操作错误输入:错误输出:药品名称输入123错误输入:错误输出:请输入数字
续表5.2
进入添加药品的页面输入各空项确定添加添加成功,转到查看药品页面表5.3 药品类别管理测试用例测试项目名测试项目名称测试内容执行者输入:药品类别测试测试药品类别是否能够正确添加栗茜药品类别:保健药类别表述:保健身体输出:进入查看药品类别页面步骤及操作:进入类别管理的主页面在药品类别内输入需要新加入的类别名称在类别描述中输入描述信息点击确认进入类别查看页面添加成功表5.4 购买药品测试用例测试项目名测试项目名称测试内容执行者测试用例购买药品测试购买药品功能是否能够正确执行栗茜续表5.4输入:输入:修改数量中的内容,输出:进入已选购药品页面,并显示应付总金额步骤及操作:进入购买药品的主页面选择要购买的药品点击购买按钮输入要买药品的数量点击提交进入已购买药品页面,并显示应付总金额表5.5 销售管理测试用例测试项目名测试项目名称测试内容执行者测试用例输入:点击查看明细输出:销售管理测试查看销售明细是否能正确执行栗茜显示销售明细页面,内容是所有销售信息,并且显示具体药品内容。步骤及操作:进入销售管理的主页面显示具体药品销售信息表5.6 进需求管理测试用例测试项目名测试项目名称测试内容执行者测试用例输入:进货/需求管理测试添加进货,查看进货功能能否正确执行栗茜在药品编码中输入003输出:40输出:显示药品进货/需求信息续表5.6输入输入:数量中不输入任何内容错误输入:数量不能为空步骤及操作:进入进货/需求管理页面输入进货数量点击提交按钮显示进货药品在药品信息的需求一栏中显示需求数量表5.7 系统管理测试用例测试项目名测试项目名称测试内容执行者测试用例输入:系统管理测试各项功能能否正确执行栗茜adminadmin在确认密码中输入admin输出:,显示新添加的用户信息输入:在登录界面中输入刚添加的用户名和密码输出:进入药店管理界面步骤及操作:进入添加管理员主页面在用户名,密码,确认密码中输入信息点击提交跳转到所有用户界面,并显示新添加的用户信息结 论药品的基本信息,药品销售,药品库存和进货等几个非常重要的操作。WEBWEB通过这次本科毕业设计,使我对web开发有了更为深刻的理解,积累了一定的网站助下一一解决了,同时学到了许多技术知识和开发技巧。SQL语句来开发功能更后有可能的情况下进一步改进系统功能。IT致 谢光阴似箭,转眼间大学生活已接近尾声。在大学的最后阶段,毕业论文是我的重中之重,在论文完成的过程中,除了我自己的努力之外,也凝聚了很多人的心血。所以我要对帮助我完成论文的所有人表示感谢。首先,我要对我的指导老师,表示诚挚的感谢。感谢我的老师,他放下神圣的师道尊严,以朋友的身份告诉我怎样完成这篇论文,怎样搜集资料。他在忙碌的工作中挤出时间来审查、修改我的论文,严格把关,循循善诱,在此我表示衷心感谢。其次,无私的帮助。最后,我要感谢我的父母,他们一直是我努力和学习的动力,感谢他们为我所付出的一切。老师给予指正。参考文献[D]2012.JAVA[J].上海交通大学,2010.C/S[J].展,2002.耿壮.基于JavaEE[D].电脑知识与技术,2012.商宇,李丽.基于WebService[J],2005..WEBJSP2009.崔尚森,张白.Web[M].西安:西安电子科技大学出版社,2007,34.杨瑞龙.JavaEEWeb程序设计(Eclipse平台)[M].北京:机械工业出版社,2008,134..Spring[M]2006,166.Chien-HuangLiu.DataflowanalysisandtestingofJSP-basedWebapplication.DepartmentofComputerScienceandInformationEngineering,2006JuFengJuan.TheApplicationofServletandJavabeanIntheDesignofBlog.Deptofcomputerscience,JiangxiBlueskyUniversity,Nanchang,China,2011Krill,Paul.ApachereadiesTomcatJavaservletcontainerupdate.InfoW,2009Anonymous.J9TechnologiesDebugsJDBCProtocolAdd-inSolutionforHPLoadRunner.WirelessNews,2009外文原文(出处:MalcolmDavis.Struts--anopen-sourceMVCimplementation[J].IBMSystemsJournal,2006,44(2):33-37.)Struts——anopen-sourceMVCimplementationMalcolmDavisThisarticleintroducesStruts,aModel-View-ControllerimplementationthatusesservletsJavaServerPages(JSP)technology.StrutscanhelpyoucontrolchangeinyourWebprojectandpromotespecialization.EvenifyouneverimplementasystemwithStruts,youmaygetsomeideasforyourfutureservletsandJSPpageimplementation.IntroductionKidsingradeschoolputHTMLpagesontheInternet.However,thereisamonumentaldifferencebetweenagradeschoolpageandaprofessionallydevelopedWebsite.Thepagedesigner(orHTMLdeveloper)mustunderstandcolors,thecustomer,productflow,pagelayout,browsercompatibility,imagecreation,JavaScript,andmore.Puttingagreatsitetogethertakesalotofwork,andmostJavadevelopersaremoreinterestedincreatingagreatlookingobjectinterfacethanauserinterface.JavaServerPages(JSP)technologyprovidesthegluebetweenthepagedesignerandtheJavadeveloper.Ifyouhaveworkedonalarge-scaleWebapplication,youunderstandthetermchange.Model-View-Controller(MVC)isadesignpatternputtogethertohelpcontrolchange.decouplesinterfacefrombusinesslogicanddata.StrutsisanMVCimplementationthatusesServlets2.2andJSP1.1tags,fromtheJ2EEspecifications,aspartoftheimplementation.YoumayneverimplementasystemwithStruts,butlookingatStrutsmaygiveyouideasonyourfutureServletsandJSPimplementations.Model-View-Controller(MVC)JSPtagssolvedonlypartofourproblem.Westillhaveissueswithvalidation,flowcontrol,andupdatingthestateoftheapplication.ThisiswhereMVCcomestotherescue.MVChelpsresolvesomeoftheissueswiththesinglemoduleapproachbydividingtheproblemintothreecategories:ModelThemodelcontainsthecoreoftheapplication'sfunctionality.Themodelencapsulatesthestateoftheapplication.Sometimestheonlyfunctionalityitcontainsisstate.Itknowsnothingaboutthevieworcontroller.ViewTheviewprovidesthepresentationofthemodel.Itisthelookoftheapplication.viewcanaccessthemodelgetters,butithasnoknowledgeofthesetters.Inaddition,itknowsnothingaboutthecontroller.Theviewshouldbenotifiedwhenchangestothemodeloccur.北京邮电大学毕业设计ControllerThecontrollerreactstotheuserinput.Itcreatesandsetsthemodel.MVCModel2TheWebbroughtsomeuniquechallengestosoftwaredevelopers,mostnotablythestatelessconnectionbetweentheclientandtheserver.Thisstatelessbehaviormadeitdifficultformodeltonotifytheviewofchanges.OntheWeb,thebrowserhastore-querytheservertodiscovermodificationtothestateoftheapplication.Anothernoticeablechangeisthattheviewusesdifferenttechnologyforimplementationthanthemodelorcontroller.Ofcourse,wecoulduseJava(orPERL,C/C++orwhatever)codegenerateHTML.Thereareseveraldisadvantagestothatapproach:Javaprogrammersshoulddevelopservices,notHTML.Changestolayoutwouldrequirechangestocode.Customersoftheserviceshouldbeabletocreatepagestomeettheirspecificneeds.Thepagedesignerisn'tabletohavedirectinvolvementinpagedevelopment.HTMLembeddedintocodeisugly.FortheWeb,theclassicalformofMVCneededtochange.Figure4displaystheadaptationofMVC,alsocommonlyknownasMVCModel2orMVC2.StrutsdetailsDisplayedinFigure6isastripped-downUMLdiagramoftheorg.apache.struts.actionpackage.Figure6showstheminimalrelationshipsamongActionServlet(Controller),ActionForm(FormState),andAction(ModelWrapper).Figure6.UMLdiagramoftherelationshipoftheCommand(ActionServlet)totheModel(Action&ActionForm)TheActionServletclassDoyourememberthedaysoffunctionmappings?Youwouldmapsomeinputeventtoapointertoafunction.Ifyouwhereslick,youwouldplacetheconfigurationinformation40北京邮电大学毕业设计afileandloadthefileatruntime.FunctionpointerarrayswerethegoodolddaysstructuredprogramminginC.LifeisbetternowthatwehaveJavatechnology,XML,J2EE,andallthat.TheStrutsControllerisaservletthatmapsevents(aneventgenerallybeinganHTTPpost)toclasses.Andguesswhat--theControllerusesaconfigurationfilesoyoudon_thavetohard-codevalues.Lifechanges,butstaysthesame.ActionServletistheCommandpartoftheMVCimplementationandisthecoreoftheFramework.ActionServlet(Command)createsandusesAction,anActionForm,andActionForward.Asmentionedearlier,thestruts-config.xmlfileconfigurestheCommand.DuringthecreationoftheWebproject,ActionandActionFormareextendedtosolvethespecificproblemspace.Thefilestruts-config.xmlinstructsActionServletonhowtouseextendedclasses.Thereareseveraladvantagestothisapproach:Theentirelogicalflowoftheapplicationisinahierarchicaltextfile.Thismakeseasiertoviewandunderstand,especiallywithlargeapplications.ThepagedesignerdoesnothavetowadethroughJavacodetounderstandtheflowtheapplication.TheJavadeveloperdoesnotneedtorecompilecodewhenmakingflowchanges.CommandfunctionalitycanbeaddedbyextendingActionServlet.TheActionFormclassActionFormmaintainsthesessionstatefortheWebapplication.ActionFormisanabstractclassthatissub-classedforeachinputformmodel.WhenIsayinputformsayingActionFormrepresentsageneralconceptofdatathatissetorupdatedbyaHTMLform.Forinstance,youmayhaveaUserActionFormthatissetbyanHTMLForm.TheStrutsframeworkwill:ChecktoseeifaUserActionFormexists;ifnot,itwillcreateaninstanceoftheclass.StrutswillsetthestateoftheUserActionFormusingcorrespondingfieldsfromtheHttpServletRequest.Nomoredreadfulrequest.getParameter()calls.Forinstance,StrutsframeworkwilltakefnamefromrequeststreamandcallUserActionForm.setFname().TheStrutsframeworkupdatesthestateoftheUserActionFormbeforepassingitthebusinesswrapperUserAction.BeforepassingittotheActionclass,Strutswillalsoconductformstatevalidationbycallingthevalidation()methodonUserActionForm.Note:Thisisnotalwayswisetodo.TheremightbewaysofusingUserActionForminotherpagesorbusinessobjects,wherethevalidationmightbedifferent.ValidationofthestatemightbebetterintheUserActionclass.TheUserActionFormcanbemaintainedatasessionlevel.Notes:41北京邮电大学毕业设计Thestruts-config.xmlfilecontrolswhichHTMLformrequestmapstoActionForm.MultiplerequestscanbemappedUserActionForm.UserActionFormcanbemappedovermultiplepagesforthingssuchaswizards.TheActionclassTheActionclassisawrapperaroundthebusinesslogic.ThepurposeofActionclassistotranslatetheHttpServletRequesttothebusinesslogic.TouseAction,subclassandoverwritetheprocess()method.TheActionServlet(Command)passestheparameterizedclassestoActionFormusingtheperform()method.Again,nomoredreadfulrequest.getParameter()calls.Bythetimetheeventgetshere,theinputformdata(orHTMLformdata)hasalreadybeentranslatedouttherequeststreamandintoanActionFormclass.Figure4.MVCModel2Struts,anMVC2implementationStrutsisasetofcooperatingclasses,servlets,andJSPtagsthatmakeupareusableMVC2design.ThisdefinitionimpliesthatStrutsisaframework,ratherthanalibrary,butStrutsalsocontainsanextensivetaglibraryandutilityclassesthatworkindependentlyoftheframework.Figure5displaysanoverviewofStruts.Figure5.StrutsoverviewStrutsoverview42北京邮电大学毕业设计ClientbrowserAnHTTPrequestfromtheclientbrowsercreatesanevent.TheWebcontainerrespondwithanHTTPresponse.ControllerTheControllerreceivestherequestfromthebrowser,andmakesthedecisiontosendtherequest.WithStruts,theControllerisacommanddesignpatternimplementedasaservlet.Thestruts-config.xmlfileconfigurestheController.BusinesslogicThebusinesslogicupdatesthestateofthemodelandhelpscontroltheflowofapplication.WithStrutsthisisdonewithanActionclassasathinwrappertotheactualbusinesslogic.ModelstateThemodelrepresentsthestateoftheapplication.Thebusinessobjectsupdatetheapplicationstate.ActionFormbeanrepresentstheModelstateatasessionorlevel,andnotatapersistentlevel.TheJSPfilereadsinformationfromtheActionFormbeanusingJSPtags.ViewTheviewissimplyaJSPfile.Thereisnoflowlogic,nobusinesslogic,andnoinformation--justtags.TagsareoneofthethingsthatmakeStrutsuniquecomparedtootherframeworkslikeVelocity.Note:"Thinkthin"whenextendingtheActionclass.TheActionclassshouldcontroltheandnotthelogicoftheapplication.ByplacingthebusinesslogicinaseparatepackageorEJB,weallowflexibilityandreuse.AnotherwayofthinkingaboutActionclassisastheAdapterdesignpattern.ThepurposetheActionisto"Converttheinterfaceofaclassintoanotherinterfacetheclientsexpect.Adapterletsclassesworktogetherthatcouldn_totherwisebecauseofincompatibilityinterface"(fromDesignPatterns-ElementsofReusableOOSwf.TheclientthisinstanceistheActionServletthatknowsnothingaboutourspecificbusinessclassinterface.Therefore,Strutsprovidesabusinessinterfaceitdoesunderstand,Action.ByextendingtheAction,wemakeourbusinessinterfacecompatiblewithStrutsbusinessinterface.(AninterestingobservationisthatActionisaclassandnotaninterface.Actionstartedasaninterfaceandchangedintoaclassovertime.Nothing'sperfect.)TheErrorclassesTheUMLdiagram(Figure6)alsoincludedActionErrorandActionErrors.ActionErrorencapsulatesanindividualerrormessage.ActionErrorsisacontainerofActionErrorthattheViewcanaccessusingtags.ActionErrorsisStrutswayofkeepingupwithalistoferrors.Figure7.UMLdiagramoftherelationshipoftheCommand(ActionServlet)tothe43北京邮电大学毕业设计Model(Action)TheActionMappingclassAnincomingeventisnormallyintheformofanHTTPrequest,whichtheservletContainerturnsintoanHttpServletRequest.TheControllerlooksattheincomingeventanddispatchestherequesttoanActionclass.Thestruts-config.xmldetermineswhatActionclasstheControllercalls.Thestruts-config.xmlconfigurationinformationistranslatedintoasetofActionMapping,whichareputintocontainerofActionMappings.(Ifyouhavenotnoticedclassesthatendwithsarecontainers)TheActionMappingcontainstheknowledgeofhowaspecificeventmapstospecificActions.TheActionServlet(Command)passestheActionMappingtotheActionclassviaperform()method.ThisallowsActiontoaccesstheinformationtocontrolflow.ActionMappingsActionMappingsisacollectionofActionMappingobjects.StrutsprosUseofJSPtagmechanismThetagfeaturepromotesreusablecodeandabstractsJavacodefromtheJSPThisfeatureallowsniceintegrationintoJSP-baseddevelopmenttoolsthatallowauthoringwithtags.TaglibraryWhyre-inventthewheel,orataglibrary?Ifyoucannotfindsomethingyouneedinthelibrary,contribute.Inaddition,StrutsprovidesastartingpointifyouarelearningJSPtagtechnology.OpensourceYouhavealltheadvantagesofopensource,suchasbeingabletoseethecodeandhavingeveryoneelseusingthelibraryreviewingthecode.Manyeyesmakeforcodereview.SampleMVCimplementationStrutsofferssomeinsightifyouwanttocreateyourownMVCimplementation.44北京邮电大学毕业设计北京邮电大学毕业设计PAGEPAGE46ManagetheproblemspaceDivideandconquerisanicewayofsolvingtheproblemandmakingtheproblemmanageable.Ofcourse,theswordcutsbothways.Theproblemismorecomplexneedsmoremanagement.StrutsconsYouthStrutsdevelopmentisstillinpreliminaryform.Theyareworkingtowardreleasingaversion1.0,butaswithany1.0version,itdoesnotprovideallthebellsandwhistles.ChangeTheframeworkisundergoingarapidamountofchange.AgreatdealofchangehasoccurredbetweenStruts0.5and1.0.YoumaywanttodownloadthemostcurrentStrutsnightlydistributions,toavoiddeprecatedmethods.Inthelast6months,IseentheStrutslibrarygrowfrom90Ktoover270K.IhadtomodifymyexamplesseveraltimesbecauseofchangesinStruts,andIamnotgoingtoguaranteemyexampleswillworkwiththeversionofStrutsyoudownload.CorrectlevelofabstractionDoesStrutsprovidethecorrectlevelofabstraction?Whatistheproperlevelofabstractionforthepagedesigner?Thatisthe$64Kquestion.ShouldweallowapagedesigneraccesstoJavacodeinpagedevelopment?SomeframeworkslikeVelocitysayno,andprovideyetanotherlanguagetolearnforWebdevelopment.Thereissom
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024关于物业维护与管理详细合同范本
- 2024年度运输车辆租用合同
- 2024互联网金融服务平台建设与运营承包合同
- 2024年式概念车租赁指定付款合同
- 2024年度安置房买卖合同协议书合同书签订
- 2024年快速消费品销售合同
- 解读电商平台竞争格局研究
- 2024年广告设计人员承包合同
- 2024年度版权质押合同:某音乐公司版权质押融资协议
- 2024国际物流中转中心建设与运营合同
- 2023年度武汉房地产市场报告2024.1.12
- 新人教版九年级下数学27-1《图形的相似》课件
- 基础拓扑学讲义答案尤承业
- 高考模拟作文“相信与怀疑”导写及范文
- 荔枝包装工艺设计
- 浙江省9+1高中联盟2022-2023学年高一上学期11月期中考物理试题(解析版)
- 政府数据信息保密协议范本
- 聚酯生产技术 聚酯工艺流程介绍
- 关于日本动漫介绍ppt
- 四年级除法竖式计算题500道
- 质量保证体系范文(必备14篇)
评论
0/150
提交评论