[毕业论文:药品进销存管理系统的设计与实现]毕业论文

来源:护士资格 发布时间:2020-03-10 点击:

  药品进销存管理系统的设计与实现 摘 要 随着计算机技术的快速发展,对以计算机技术为基础的管理信息系统的应用已经深入到各行各业。计算机管理信息系统是一项系统工程,综合了计算机、网络、数据库、通讯技术,也包括了企业管理科学和众多丰富实践经验的总结。它是先进科学技术和现代企业经营管理结合的范例。它的产生和运行是企业经营管理发展到一定阶段、一定规模及特定经济环境下的必然要求。本文在总结前人经验的基础上对医药企业自动化管理的现状进行分析,并详细阐述了药品的进销存管理及其物流模型,通过需求调查、系统分析、系统设计,开发了一个医药企业的商品进销存管理系统。 目前,全球药品市场竞争日益激烈,医药企业要想获得持续性的赢利取决于其是否能够赢得和保持相当的客户的满意度。经过分析,我们使用MICROSOFT公司的VISUALSTUDIO 2005开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。论文首先研究了采用面向对象设计思想设计“医药进销存管理系统”的一般方法。然后介绍了开发环境的建立,分析了系统功能和系统总体性能要求,详细讲述了系统的总体设计、数据库设计与实现以及前台应用程序各功能模块的设计与实现过程。在整个设计过程中,遵循软件工程原理。结果证明,该设计思路是可行并有效的。通过该系统的设计与实现,揭示了这类的管理信息系统开发的基本原理以及设计流程,得出该类管理信息系统开发的一般解决方案。 关键词:管理信息系统;visual studio;软件工程;数据库

 ABSTRACT With the rapid development of computer technology, the management Information Systems (MIS) at the base of the computer technology has penetrated into all the various trades and occupations. The calculator management information system is a system engineering, synthesizing the calculator, network, database, the communication technique, also including the business enterprise management science and numerous abundant empirical summary of fulfillment.It is the example that the advanced science technique combines with the modern business enterprise management. Its creation and movement is the business enterprise management management develops the certain stage, inevitable request of certain scale and particular and economic environmentses are. On the base of summing up senior’s experience, this paper analyses the actualities of commerce automation and particularly expounded commodity purchase-sale-storage management as well as logistics model. By the requirements

 investigation system analysis and systems design, developing a commodity

 purchase-sale- storage management system for the Medcine Corporation. Currently, the global drugs` market competition is increasingly vigorous, the companies medicine enterprise wants to be keep on the win the benefit to be decided by whether it can win and keep the satisfaction of the equal customers or not.Through analysis, we use the VISUAL STUDIO 2005 development tool of the company of MICROSOFT, making use of various development tool that faces to the object of what it provide, particularly is this ability of the data window way is convenient and simple and direct to manipulate the database of intelligence turn the object, build up the system application prototype in the in a short time first, then, start the prototype system to carry on the need generation to the beginning, revise and improve continuously, until formation the customer is satisfied and can go the system.First of all, it has introduced the object-oriented design outline, as well as the development environment establishment, and has described the system function and the system overall performance requirement in a nutshell, and has narrated the system design, the database design and the realization as well as the functions modules detailed design about the onstage application procedure with emphasis. In the entire design process, the software engineering principle is followed. The result proved that the design mentality is feasible and effective,through the system design and the realization, a basic principle and the design flow about the kind of management information system development are promulgated, and that the general solution.about the kind of management information system development is obtained. Keywords: Mangement Information System;visual studio;Software Engineering;Data Base

 目 录 1

 绪

 论 1 1.1

 课题背景及意义 1 1.1.1

 课题简介 1 1.1.2

 课题背景及研究意义 1 1.2

 用户需求分析 2 1.2.1

 功能需求 2 1.2.2

 实现目标 3 2

 开发技术及工具介绍 4 2.1 技术介绍 4 2.1.1

 .NET三层架构介绍 4 2.1.2

 C#介绍 5 2.2

 开发工具开发环境介绍 6 2.2.1

 Visual studio 6 2.2.2

 皮肤控件介绍 7 2.3

 数据库介绍 8 3

 需求分析 9 3.1功能需求 9 3.1.1

 出库信息管理 10 3.1.2

 进货入库 10 3.1.3

 销售出库 10 3.1.4

 库存管理 10 3.2

 数据需求 11 4

 详细设计与实现 13 4.1

 出库页面设计 13 4.2

 库存页面设计 14 4.3系统数据库设计 15 4.3.1

 数据库逻辑设计结构 15 4.3.2

 数据库的物理结构设计 16 4.4 系统实现 17 4.4.1

 出库管理的基本操作 17 4.4.2

 库存管理的基本操作 19 4.5 架构设计 22 5

 系统测试 24 5.1 系统测试 24 5.2 白盒测试 24 5.3 综合测试 25 5.3.1

 自顶向下集成 25 5.3.2

 自底向上集成 25 5.4 需求测试 26 致谢 27 参考文献 28

 1

 绪

 论 1.1

 课题背景及意义 1.1.1

 课题简介 我国医药经营形式正在向集团化、连锁化发展。在这一发展过程中,旧的企业管理模式已不适应新型的社会主义市场经济的要求,而新的企业管理模式正在广泛被探讨、研究之中。这其中,如何利用现代信息技术使企业拥有快速高效的市场反映能力和高度的效率,已是医药经营企业,特别是医药连锁经营企业关心的问题。再者,由于医药产品种类繁多、销售模式特殊、业务量大,单凭手工记帐已很难适应工作的需要。医药作为一个关心到人们健康的特殊行业,国家对医药行业又有一些不同于其他行业的管力争策,这些都加大了管理难度。如何尽快建立和完善现代企业的信息化管理机制问题,已成为医药企业发展的关键所在。 针对这一形式,我们制作了医药进销存管理系统。本软件用visual studio中的visual C#开发。C#是微软公司推出的一种可视化编程工具,是当今世界上应用最广泛的编程语言之一,它也被公认为是编程效率最高的一种编程方法。 1.1.2

 课题背景及研究意义

 随着我国市场经济的蓬勃发展和人们对医药产品需求的迅速增加,医药行业正处于一个高速发展的时期.行业的快速发展必然导致竞争的加剧,要想在激烈的市场竞争中谋求发展,客观上要求企业必须加强内部管理,提高运营销率。而我国大部分医药企业是由原来的国有零售药店改造或医药职工下海创办的,虽然经营实现了专业化,但是从信息机制上还没有摆脱原有的销售模式,企业内部没有形成完善、有效的激励和约束的信息化管理机制,企业发展的动力不足,从而影响了企业的持续、稳定、快速发展。 同时我国医药经营形式正在向集团化、连锁化发展.在这一发展过程中,旧的企业管理模式已不适应新型的社会主义市场经济的要求,而新的企业管理模式正在被广泛探讨、研究之中.这其中,如何利用现代信息技术使企业拥有快速、高效的市场反映能力和高度的效率,已是医药经营企业,特别是医药连锁经营企业特别关心的问题。再者,由于医药产品种类繁多、销售模式特殊、业务量大,单凭手工记账已很难适应工作的需要。医药作为一个关系到人们健康的特殊行业,国家对医药行业又有一些不同于其他行业的管理政策,这些都加大了管理的难度。如何尽快建立和完善现代企业的信息化管理机制问题,已成为医药企业发展的关键所在。 在医药产品的生产经营中,药品库存管理无疑处于非常重要的地位。一个药品生产经营的最终端就是管理好自己的库存情况。 为了确保物畅其流,各行各业一般都存在不同数量的库存。以生产为主的企业,需要储备一定物资以维持其连续生产;服务性企业,一般也需备置某些常用设备和服务用具等。 归纳而言,实行库存意义如下: (1) 有利于实施科学管理,防止短缺。库存的重要目标之一就是在需要之时,将必需的物资按需要量供应。企业生产急需的物资不能及时供应,管理就会混乱;医院没有一定数量的床位库存,病人就无法住院治疗;银行没有现金库存,存户就可能取不到钱。   (2) 有利于提高资金的利用效果,缩短订货提前期。当制造商维持一定量的成品库存时,顾客就可以很容易地采购到他们所需的物品,由此缩短了顾客的订货提前期,使得企业的经营活动更为灵活。   (3) 有利于有效地开展仓库管理工作。通过库存,可使得原来零散放置的物料整理得井然有序,废旧物料堆放整齐,工厂空地整洁干净,从而实现文明生产。 以往的惯例是组成物流供应链的各企业间的关系是相互买卖交易关系,因而,企业很少在它们之间交流信息,也不习惯相互协调进行库存管理,更不用说在整个供应链水平上分享交流信息和共同协调进行库存管理。这样往往会形成不必要的库存,同时可能降低顾客的满意度。如过去组成供应链的各个企业物资储存往往超过实际需要库存量,这种超过实际需要量的库存常被称为“缓冲库存”。 同样地,在过去,组成供应链的各个企业与各自的顾客(需要方)之间缺乏必要的信息交流,从而对顾客的需要,特别是最终消费者的实时需要难以把握,往往依靠预测来安排生产。由于预测与实际存在差距,所以,库存不足(缺货)或库存过剩的现象经常发生。 因此,从物流管理整体来看,过去这种传统交易习惯导致的不必要库存给企业增加了成本,而这些成本最终将反映在销售给顾客的产品价格上,从而减少顾客的满足度。因而,对供应链进行库存管理不仅可以降低库存水平,减少资金占用和库存维持成本,而且还可以提高顾客的满意度。当然,实现真正意义上的零库存在现实中是不可能的,这只是及时生产方式下的努力目标。   随着组成供应链的企业间关系从过去建立在买卖交易基础上的对立型关系向基于共同利益的协作伙伴型关系的转变,供应链各个企业间交流、分享信息,协调进行库存管理成为可能,而先进的库存管理方法和技术的出现使这种可能变为现实。 1.2

 用户需求分析 1.2.1

 功能需求 本系统在实施后,应能集中处理药品的进销存业务及其应收应付帐目。 本系统通过对医药门店日常业务的设计处理,实现了现代化的医药门店管理模式。具体功能包括日常业务、库存管理、查询统计、基础信息管理、系统设置五大模块。系统主要的功能模块设计有: (1)进货管理:采购、查询、退货、保存到库存表中 (2)库存管理:库存量、库存报警、仓库保管员、库存报表 (3)销售管理:销售量、销售报表、销售业绩、退货、售货员 (4)综合管理:登录权限、数据备份、人员管理、部门管理、客户管理、权限设置 1.2.2

 实现目标 面对医药行业的高速发展及其发展过程中出现的各种情况,医药门店进销存管理系统在实施后应能够达到以下目标: (1)实现多点操作的信息共享,相互之间信息传递准确、快捷、顺畅。 (2)全面自动化管理,可随时掌握药品的库存、销售等情况。 (3)能够快速、准确地处理药品近、销、存、退、盘点、变价、折扣等多种业务模式。 (4)系统界面友好美观,操作简单易行,查询灵活方便,数据存储安全可靠。 (5)提供助记码及支持多种结算方式。 (6)系统维护安全、方便、可靠,并且能够满足实用性、先进性的要求。

 2

 开发技术及工具介绍 2.1 技术介绍 2.1.1

 .NET三层架构介绍 ASP.NET简介ASP.NET是统一的Web应用程序平台,它提供了为建立和部署企业级Web应用程序所必需的服务。ASP.NET为能够面向任何浏览器或设备的更安全的、更强的可升级性、更稳定的应用程序提供了新的编程模型和基础结构。ASP.NET是Microsoft .NET Framework的一部分,是一种可以在高度分布的Internet环境中简化应用程序开发的计算环境。.NET Framework包含公共语言运行库,它提供了各种核心服务,如内存管理、线程管理和代码安全。它也包含NET Framework类库,这是一个开发人员用于创建应用程序的综合的、面向对象的类型集合。 本次系统开发中用到ASP.NET的三层架构具体介绍如下:所谓的三层架构是指商业逻辑层、数据访问层、应用层。所谓三层体系结构,是在客户端与数据库之间加入了一个"中间层",也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。 一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。例如UI人员只需考虑用户界面的体验与操作,领域的设计人员可以仅关注业务逻辑的设计,而数据库设计人员也不必为繁琐的用户交互而头疼了。每个开发人员的任务得到了确认,开发进度就可以迅速的提高。松散耦合的好处是显而易见的。如果一个系统没有分层,那么各自的逻辑都紧紧纠缠在一起,彼此间相互依赖,谁都是不可替换的。一旦发生改变,则牵一发而动全身,对项目的影响极为严重。降低层与层间的依赖性,既可以良好地保证未来的可扩展,在复用性上也是优势明显。每个功能模块一旦定义好统一的接口,就可以被各个模块所调用,而不用为相同的功能进行重复地开发。进行好的分层式结构设计,标准也是必不可少的。只有在一定程度的标准化基础上,这个系统才是可扩展的,可替换的。而层与层之间的通信也必然保证了接口的标准化。如果是一个考试系统,考试合格的最低分数线要改,只需要修改业务逻辑相对应函数就可以了,只要此函数的入口参数和返回内容不变,在客户端不需作任何改动。在这里,看到了面向对象编程的特性之一封装性的优点,而这一点在开发大型应用时尤其有用,可以把开发人员分成两组,一组负责开发界面层,另一组负责开发商业逻辑层,双方只要按照事先商定的函数接口,并行地开发就可以,而不必向从前那样,后面的工作必须等前面的工作完成后才能开始。当然,这样的开发模式需要很好的项目协调和文档作支持。 2.1.2

 C#介绍 简介C sharp(又被简称为"C#")是微软公司在2000年6月发布的一种新的编程语言,并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承界面,与Java几乎同样的语法,和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。 现在,微软仍在一边继续反驳其竞争对手Sun控告它改变了Java语言的诉讼,一边在对美国反垄断指控顽抗到底,但与此同时,微软的天才程序员们也在技术上进行着一场补救的措施。那就是他们已经开发出来的C#语言,这是一种非常类似于Java的语言,微软深知即便是微软阵营中也有着相当一部分人喜欢Java语言,所以这次干脆就用C#来满足他们的愿望,这是一种非常完美的语言,适用于各种操作系统,并且与Windows紧密地结合在一起。

 微软表示这种新的程序设计语言并不针对Java,但它将是C++的革新。而这正是Java所追求的两个主要目标之一(另一目标当然就是可移植性)。微软一直梦想着能开发出能与Java在Windows NT系统上抗衡的语言。C#的自动内存管理以及和Java一样都使用的C语言语法,似乎让这个理想成为现实。

 微软称C#是由C和C++派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言,C#意在综合Visual Basic的高效率和C++的强大功能。但这种说法是否准确呢?由于C#的结构很像Visual Basic的ActiveX,它显然是冲着RAD开发者来的。但同时,“C#提供了C++的强大功能”这种说法也稍嫌夸张,将来很可能变成空头支票。

 对某一对象接口的更新,微软称之为“继承”,当然“继承”是就“对象”而言的。但是,虽然“对象”这个词我们经常碰到,却很少有人真正理解了它的含义。微软的用户,甚至它自己的员工都经常把“对象”和“接口”弄混。所以微软干脆就用接口来定义各种对象,结果导致了“面向对象编程”(OOP)被微软弄得乱七八糟。现在,微软又在大踏步地前进了(虽然它内心还是很小心),它把它建立在接口基础上的“对象”集成到了开发工具里。不过它走得实在过了头,它甚至把对另一对象接口的更新称之为“继承”。

 这个“继承”给程序员们带来的好处就是语言无关——只要接口维持其兼容性,用Visual Basic写成的对象在C#和C++中也可以良好地运行。但此特性是以真正的OOP技术和平台的可移植性为代价的。每个对象都被编译和注册到Windows子系统,只要你能访问这个子系统,你就能访问这个对象。来吧!欢迎来到.NET和NGWS的世界!——Windows平台从来没有完完全全地让人产生这样完整的依赖性。他们的动机当然要遭到全世界对微软有偏见的人的怀疑,当然,完全依靠此技术的C#也不例外。

 事实上,C#将是完全依靠Windows的最完美的产物。那些困绕Java SDK, MFC 和SET的数据库已成为过去。你想放入C#的任何东西(无论何种语言),只要在Windows的.NET子系统下建立和包装的都可以使用Windows的运行库。

 (2)

 用MSIL进入.NET

 当人们访问Usenet或一些新闻组时,会有一些诸如新语言和平台有效性之类的问题。什么时间和努力能解决这些问题呢?当然,如没有牢固的事实和有说服力的证据,即使是最有帮助的响应者,权威机构也会对他的断言持保留意见。我没有参加今年的专业开发者会议(PDC),因此我的发现都是基于那些与会者的反馈。

 人们对微软过去几周的大肆宣传,最基本的错误理解就是C#只是Visual C++的改进版本。完全不是这么回事。C#和Java没有直接联系。它的特征设定是从Java获得的灵感。它的语法同Java一样,源自C和C++,但它的执行是完全新的,只依靠.NET结构。

 C#也并非字节码(bytecode)。微软一位员工罗伯特.舒密特详细描述道:“C#编译程序产生的是‘微软中间语言’(MSIL)……但虚拟机或其他类似的技术则不能用于解释这种中间语言(IL)。相反地,每当应用程序载入或JIT编译程序需要编译它时,IL就会被转换成本地代码。一旦这种转换完成,可以执行的代码实际上是本地代码。”实质上,虽然这种方案有点像Java程序通过一个JIL编译程序,但这里最终的JIT编译是100%的本地代码,而Java的JIT产生的结果是不同的。

 2.2

 开发工具开发环境介绍 2.2.1

 Visual studio Visual Studio是.NET平台下最为强大的开发工具。无论是软件服务商.还是企业应用程序的部署与发布。Visual Studio都可以提供近乎完美的解决方案。Visual Studio.NET提供了包括设计、编码、编译调试、数据库联接操作等基本功能和基于开放架构的服务器组件开发平台.企业开发工具和应用程序重新发布工具以及性能评测报告等高级功能。 NET Framework-Microsoft Visual Studio 简介: Web 应用程序(以因特网为基础的应用程序)的优点在于可以让企业间的商业数据及交易等行为,透过因特网的通讯来彼此交换讯息.这样不但可以节省数据交换的时间,而且可以简化流程,但是在新一代的.NET 开发平台还没有出现之前,要让因特网应用程序达到上述的功能是一项浩大的工程,牵涉到的程序开发语言,可能包括了HTML.ASP.VBScript.JavaScript.C++.ADO.SQL.COM.MTS 等.这样的环境对于开发人员来说,想要快速的开发一个功能强大且稳定可靠的Web应用程序不是一项轻松的工作.之前的Microsoft Visual StudioTM(微软的解决方案开发平台)及Windows 上的一些架构及服务。已经帮助程序设计师由单机平台的程序开发转为主从式(Client/Server)的架构来开发应用程序,但是对于现在的环境而言,因为企业的客户或供货商等所使用的系统或软件可能不尽相同。Visual Studio 2005 提供多种工具来帮助程序员和软件开发团队:更高效并更快获得结果,建立动态的Windows.Web.Mobile和基于Office的决方案,软件团队间的交流和协作更有效率,更早地质量保证并始终贯穿于整个开发流程。 2.2.2

 皮肤控件介绍 这套控件仅有一个dll(IrisSkin2.dll)文件和一个skin文件夹,skin文件夹下共有22个子文件夹,每个子文件夹其实就是一套界面风格,也就是说我们可以使用22种不同风格。 实现给界面换皮肤有两种做法: (1)拷贝法,即使将界面资源夹下所有的文件拷贝到.exe文件所在的位置,然后在程序种通过skinEngine1.SkinFile=fileName(fileName是皮肤文件.ssk文件的位置)来设定界面皮肤,这种做法通常是我们需要在Debug文件夹和Release文件各保存一套皮肤文件,发布程序的时候也需要附带这些文件。 (2)嵌入资源法,本文就是采用这种办法实现的,这样做的好处是发布程序时(不管是Debug版本或Release版本)时vs自动将皮肤文件编译进exe文件中,减少程序发布时文件的个数,而且也不用管程序与皮肤文件的相对位置。 首先打开VS工具箱,添加皮肤控件组件,然后在出现的“选择工具箱项”中点击“浏览”按钮,然后找到IrisSkin2.dll文件,然后“确定”,关闭对话窗口之后,皮肤控件组件就会出现在你的工具箱上了(具体出现在哪个分组跟你添加时添加哪个组有关)。 好了,现在可以编写程序测试了,做一个简单的窗体吧,界面上的控件如上图所示,然后将皮肤组件拖拽到界面上,之后需要把程序所需要的皮肤资源文件添加进来,这里我是采用添加资源的办法。 步骤如下: (1) 先把IrisSkin2.dll文件添加到当前项目引用(解决方案资源管理器->当前项目->引用->右键->添加引用 ,找到IrisSkin2.dll文件之后就不用我说了吧^_^)。IrisSkin2.dll文件最好放在当前项目\bin\Debug文件中。 (2) 然后把IrisSkin2.dll文件添加具到vc2005的工箱:右键->选择项->浏览找到IrisSkin2.dll文件(文件最好放在当前项目\bin\Debug文件中)按确定,控件就添加到工具箱中了.然后把工具箱中新添加的 SkinEngine控件拖到当前项目中。 (3) 把皮肤目录中的.ssk文件复制到当前项目\bin\Debug文件中,(ssk文件可选). (4) 再在项目中调用.ssk皮肤文件。例:

 namespace 当前项目 {

  public partial class Form1 : Form

  {

  public Form1()

 //当前项目的构造器中调用皮肤文件

  {

 InitializeComponent();

  this.skinEngine1.SkinFile="DiamondBlue.ssk";

 //DiamondBlue.ssk可换用皮肤目录中你喜欢的.ssk文件 2.3

 数据库介绍

  SQL Server 是一个关系数据库管理系统,它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本;Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。 SQL Server 2005 是Microsoft 公司推出的SQL Server 数据库管理系统的一个版本。该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。

 SQL Server 2005 的特性Microsoft® SQL Server 2005 的特性包括:

 (1)Internet 集成。SQL Server 2005 数据库引擎提供完整的XML 支持。它还具有构成最大的Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQL Server 2005 程序设计模型与 Windows DNA 构架集成,用以开发Web应用程序,并且SQL Server 2005 支持 English Query 和 Microsoft 搜索服务等功能,在Web 应用程序中包含了用户友好的查询和强大的搜索功能。

 (2)可伸缩性和可用性。同一个数据库引擎可以在不同的平台上使用,从运行 Microsoft Windows® 98 的便携式电脑,到运行Microsoft Windows 2000 数据中心版的大型多处理器服务器。SQL Server 2005 企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大Web站点所需的性能级别。

 (3)企业级数据库功能。SQL Server 2005 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2005 分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是 SQL Server 2005 数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。

 (4)易于安装、部署和使用。SQL Server 2005 中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用 SQL Server 的过程。SQL Server 2005 还支持基于标准的、与 Windows DNA 集成的程序设计模型,使 SQL Server 数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使您得以快速交付SQL Server 应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。

 3

 需求分析 系统需求分析主要就是明确进销存管理系统所要实现的目标,并给出解决方案。对系统的分析可从功能分析和数据需求两个方面来进行。功能需求分析主要是对系统多要实现的目标进行分解,使之形成既相互独立又相互联系的的几个部分,然后将一个部分映射为一个或多个功能,这些功能相互之间形成一个有机的整体。数据需求分析就是要对系统中涉及的数据进行识别,并描述出他们在系统中的关系和流向。下面详细进行着两部分的分析。 3.1功能需求 进销存管理系统主要是现对药品信息的记录和查询,包括药品的入、出库记录,以及药品库存信息的查询。 在进销存管理中,应该首先为每个药品定义一个编号,以便进行统一管理。由于在现实过程中药品会有不断地采购入库和销售出库,因此对每笔入库和出库都应记录,应保存详细的入库、出库数量以及日期信息。 为了能够动态的掌握药品的库存情况,需要根据药品的入库和出库信息查询库存药品,一般的处理方式是累计截至当前每种货品的所有入库和所有出库,用累计入库减去累计出库所得值就是该货品当前的库存数量。 通过对系统的需求分析,可以得到如图3-1所示的系统流程图。该图简明地表示了进销存管理系统的主要业务关系和流程。 库存信息 客户退货 库存盘点 退货返厂 销售作业 客户 销售报表 销售查询 入库作业 供应商 入库信息 入库查询 库存查询 价 格 管 理

 图3-1 系统流程图 从图中的系统流程图可以看出,进销存管理系统需要实现进货管理、销售管理、库存管理和综合管理几个部分功能,而我主要负责库存管理模块,下面对我负责的几个模块做详细的介绍。

 3.1.1

 出库信息管理 出库信息管理是对出库药品基本信息的管理,包括出库药品的新增、修改和删除。明确好出库时间、出库人员、出库原因,以便能够及时掌握出库信息。在出库管理模块中,系统提供货品的入库、出库以及库存情况的信息查询功能。进入出库管理页面,可以看到所有出库货品列表,且列表中显示了出库货品的编码、名称等基本信息外,还显示累计入库、累计出库和库存数量。当货品记录比较多时,可以翻页浏览。还可以按照货品名称模糊查询,过滤显示希望查看的货品出库信息。另外,在出库管理页面中,用户可以随时产看当前的系统帮助,也可以返回到系统主界面中。 3.1.2

 进货入库 进货入库是指对药品入库的登记,系统需要记录每笔货品入库的详细信息。进货入库登记时,药品必须是库存管理中已经存在的。用户要求能够添加和删除进货入库记录,并提供浏览所有入库记录的功能。 3.1.3

 销售出库 销售出库是指对药品出库信息的记录。与进货入库类似,登记销售出库,对象也应该是库存管理中已经存在的药品,并且要考虑该货品的库存数量是否满足本次出库数量的需求。系统应提供添加和删除销售出库记录的功能,并能够让用户查看所有的出库记录。 3.1.4

 库存管理 库存管理模块主要用来维护货品的基本信息,系统提供你的功能包快货品信息列表、新增货品、修改货品和删除货品。 (1)货品信息列表: 进入货品管理页面,可以看出所有货品列表,列表中显示货品的编码、名称、规格、单位和单价信息。当货品记录比较多时,可以翻页浏览。还可以按照货品的名称模糊查询,过滤出希望查看的货品信息。 (2)新增货品: 在货品管理页面,提供新增货品的功能,当用户执行新增货品能时,打开货品信息页面,用户可以在该页面输入要增加货品的编码、名称等基本信息,新怎货品的编码不能与已有货品的编码重复。 输入货品基本信息后,在货品信息页面保存货品信息即可。若新增成功,则货品列表中将会有新增的货品信息。 (3)修改货品: 当用户需要修改货品基本信息后,在货品信息列表中单击相应货品的编码,这时系统打开货品信息页面,用户可以在该页面对货品的名称等基本信息进行修改,此时货品编码为只读,不能修改。 修改货品基本信息后,在货品信息页面保存对货品的修改即可。若修改成功,则货品列表终将会显示修改后的货品信息。 (4)删除货品: 货品管理页面中还提供删除货品的功能,当删除货品信息时,首先在货品列表中选择要删除货品的复选框,然后执行删除功能。 删除货品时系统会判断入库记录中是否有该货品,如果没有就不能,否则可以进行删除。货品删除成功后,被删除的货品从货品列表中消失。 以上对系统的功能需求进行了分析,这将是进行系统功能模块设计的重要依据。下面进行数据的需求分析。 3.2

 数据需求 通过前面对系统功能需求的分析,可以了解到进销存管理系统主要实现的4个方面的功能,包括货品基本信息维护、进货入库信息记录、销售出库信息记录和库存货品信息查询。 通过对几项功能所涉及数据的分析,可以得到如图3-2所示的进销存管理系统E-R图。 物料库存 出库 信息 报警 盘点 报警 记录 库存 盘点 1 n 1 n n 1 n 1 入库 出库 入库信息

  图3-2进销存管理系统E-R图 从图上可以看出,进销存管理系统所涉及的主要数据包括出库管理和库存管理两大功能,下面分别分析这些数据要求。 (1)出库管理 出库管理的基本操作是通过单击出库管理页面上的“添加、修改、删除、查询”按钮来实现的。主要包括出库信息和出库明细信息两大模块。出库信息的基本操作主要是提供用户实现出库产品的基本操作功能。而出库明细信息是为了满足用户要求能够查看所有货品的列表和每种货品的明细信息。 (2)库存管理 库存管理的主要是为了对库存货品进行查询,系统应该提供每种货品的入库、出库以及当前库存数量。主要包括库存信息和医药字典信息两大模块。系统定义了一个库存台账编号为了满足用户要求,能够随时查询到当时的库存情况,查询结果可以浏览查看,也可导出为Excel。

  4

 详细设计与实现 仓库管理系统是通过入库业务、出库业务、仓库调拨等功能,综合批次管理、物库存盘点、质检管理和即时库存管理等功能综合运用的管理系统,有效控制并跟踪仓库业务的物流和成本管理全过程,实现完善的企业仓储信息管理。该系统可以独立执行库存操作,与其他系统的单据和凭证等结合使用,可提供更为完整全面的企业业务流程和财务管理信息。库存管理系统进行库存信息的维护和管理,主要包括出库管理和库存管理两大部分,其中出库管理包括出库信息预览和增、删、改、查等基本操作;库存管理包括库存信息预览和药品信息的查询、修改和删除。系统的主要功能如图4-1所示: 库存管理系统 出库管理页面 库存管理页面 出库明细 修改信息 查询信息 医药字典 库存信息一览 图4-1 库存管理系统功能结构图 4.1

 出库页面设计 出库管理页面列出了已有的出库记录,用户可以通过查询浏览出库信息。另外,用户可以单击出库明细信息按钮来查看该出库信息的明细内容,也可以选择想要删除的出库记录,然后单击“删除”按钮对选择的出库信息进行删除。出库管理的界面如图4-2所示:

 图 4-2出库管理页面 4.2

 库存页面设计 库存管理主要包括医药字典和库存信息一览两大部分,其中医药字典可以用来实现医药信息的增加和删除,库存信息可以用来显示当前库存以便用户进行查询和预览。具体页面如下图4-3和4-4所示:

 图4-3医药字典页面

 图4-4库存信息一览页面 4.3系统数据库设计 4.3.1

 数据库逻辑设计结构 库存信息

 药品编号 出库人 出库时间 出库数量 出库价格 进货信息

 药品编号 药品名称 采购数量 销售信息

 药品编号 药品名称 销售原因 销售量 销售时间 销售员 库存管理数据库的主要数据表包括库存信息列表、进货信息列表和销售信息表。数据库表的关系如图4-5所示: 图 4-5 数据库表的关系 在图中所示的数据逻辑结构中,包括库存信息、进货信息和销售信息三个实体,库存信息用来保存出库产品的相关信息,进货信息用来提示采购的的名称、数量等信息,销售信息主要用来显示售出的信息。进货信息与库存信息通过药品形成一对多关系。库存信息与销售信息通过药品编号形成一对一的关系。 4.3.2

 数据库的物理结构设计

 根据库存管理系统数据库的逻辑结构设计,可以得到系统的SQL server 物理结构,包括销售信息表、库存信息和进货信息表。为了便于系统实现,在逻辑结构设计的基础上,还需要增加几个辅助数据表,主要用来保存添加出库信息时选择的产品。以下对这几个表进行简单介绍。 (1)出库信息列表显示出库产品的基本信息,包括出库编号、出库时间、出库人、出库原因。数据库表如表4-1所示: 表4-1出库信息数据设计表 字段名 字段类型 值约束 对应中文名 EmergeNumber varchar(10) Not Null 出库编号 EmergeDate datetime Not Null 出库时间 EmergePeople varchar(10) Not Null 出库人 EmergeReson varchar(50) Not Null 出库原因 (2)药品信息是库存管理中建立的药品基本信息,主要包括药品的编码、名称、规格、单位和单价,如表4-2所示: 表4-2药品信息数据设计表 字段名 字段类型 值约束 对应中文名 mid int Not Null 药品编号 mname varchar(20) Not Null 药品名称 mspec varchar(20) Not Null 药品规格 munit varchar(20) Not Null 药品单位 pid int Not Null 药品价格 (3)入库记录是进货入库的信息,在进行货品入库登记时,需要记录是那种货品,入库数量是多少,以及入库的具体日期,如表4-3所示: 表4-3入库信息数据设计表 字段名 字段类型 值约束 对应中文名 LairageNumber varchar(10) Not Null 入库编号 LairageTime datetime Not Null 入库时间 LairagePeople varchar(10) Not Null 入库人 LairageReson varchar(50) Not Null 入库原因 (4)库存货品是动态的货品库存信息,它可以通过入库记录和出库记录的汇总数据得到。当需要查看货品库存时,只需输入编号即可查询当前库存,如表4-4所示:

  表4-4库存信息数据设计表 字段名 字段类型 值约束 对应中文名 StockApplyListNumber varchar(10) Not Null 库存帐台编号 StockNumber varchar(10) Not Null 库存编号 MID int Not Null 药品编号 StockAmount int Not Null 库存数量 4.4 系统实现 4.4.1

 出库管理的基本操作 出库信息的基本操作是通过单击出库管理页面上的“添加、修改、删除、查询”按钮打开的,出库信息的基本操作主要是提供用户实现出库产品的基本操作功能。 (1)出库数据信息添加事件:在页面的各个文本框中添加需要的信息后,按添加按钮将输入的信息传到数据库中,经过判断输入信息正确以后完成添加功能,并将添加的信息及时反映到出库明细中。具体执行过程请参照以下代码:

  private void toolStripButton13_Click(object sender, EventArgs e)

  {

  Emerge eee = new Emerge();

  eee.EmergeNumber1 = txtNumber1.Text;

  eee.EmergeDate1 = DateTime.Parse(dateTimePicker1.Text);

  eee.EmergePeople1 = txtPeople.Text;

  eee.EmergeReson1 = txtReson.Text;

  id = txtNumber1.Text;

  txtEmergeNumber.Text = id;

  l.Add(eee);

  bool b = eb.addEmerge(eee);

  if (b)

  {

  //txtNumber1.Text = eee.EmergeNumber1.ToString();

  MessageBox.Show("恭喜您,添加成功!");

  tabControl1.SelectTab(tabPage2);

  //转到第二个选项界面

  }

  else

  {

  MessageBox.Show("哦耶,您添加失败!");

  }

  //更新界面

  l = eb.findEmerge();

  dataGridView1.DataSource = null;

  dataGridView1.DataSource = l;

 } (2)出库数据信息删除事件,选中要删除的信息后,将选中的信息和数据库中的信息匹配如果存在该信息,则根据提示判断该信息是否正被使用,若没有使用则可正常删除,反之则不能删除。具体实现过程如下:

  private void toolStripButton10_Click(object sender, EventArgs e)

  {

  if (dataGridView1.SelectedRows.Count > 0)

  {

  DialogResult d = MessageBox.Show(this, "你真的要删除吗?", "提示", MessageBoxButtons.OKCancel);

  if (d == DialogResult.OK)

  {

  int i = dataGridView1.SelectedRows[0].Index;

  Emerge e1 = l[i];

  bool b=eb.RemoveEmerge(e1);

  if (b)

  {

  MessageBox.Show("删除成功!");

  //更新界面

  l = eb.findEmerge();

  dataGridView1.DataSource = null;

  dataGridView1.DataSource = l;

  }

  else

  {

  MessageBox.Show("删除失败,该条信息正被引用!");

  }

 }

  }

  }

 (3)出库数据的信息修改:选中要修改的信息后,单击修改按钮在文本框中输入要修改的信息并传送给数据库进行匹配如果信息格式正确则修改成功,反之修改失败,具体执行过程如下所示:

  private void toolStripButton1_Click_2(object sender, EventArgs e)

  {

  if (dataGridView1.SelectedRows.Count > 0)

  {

  int a = dataGridView1.SelectedRows[0].Index;

  Emerge em = l[a];

  em.EmergeNumber1 = txtNumber1.Text;

  em.EmergeDate1 = (DateTime)dateTimePicker1.Value;

  em.EmergePeople1 = txtPeople.Text;

  em.EmergeReson1 = txtReson.Text;

  bool b1 = eb.ModifyEmerge(em);

  if (b1)

  {

  MessageBox.Show("恭喜您,修改成功!");

  }

  else

  {

  MessageBox.Show("哦耶,您修改失败!");

  }

 }

  }

  4.4.2

 库存管理的基本操作 库存管理主要包括库存信息预览和医药字典信息。医药字典主要是为了方便用户查询当前库存的医药种类及其基本信息,库存预览显示了当前库存情况。 (1)医药字典的添加和删除:与出库信息的添加和删除相似只是在此由于权限的限制,用户不能对药品信息进行修改。以下是医药字典信息的添加和删除操作代码: private void btnAdd_Click(object sender, EventArgs e)//添加药品

  {

  Med mm = new Med();

  mm.Mname = txtMName.Text;

  mm.Mspec = txtMSpecs.Text;

  mm.Munit = txtMUnit.Text;

  string sid = comboBox2.SelectedItem.ToString();

  object oo = mb.fineMedmid(sid);

  int id = (int)oo;

  mm.Pid = id;

  mb.addMed(mm);

  MessageBox.Show("添加成功!");

  lm = mb.findAllMed();

 //更新界面

  dataGridView1.DataSource = null;

  dataGridView1.DataSource = lm;

  txtMName.Text = null;

  txtMSpecs.Text = null;

  txtMUnit.Text = null;

  } //删除信息代码

  private void btnDel_Click(object sender, EventArgs e)//delete

  {

  if (dataGridView1.SelectedRows.Count > 0)

  {

  int i = dataGridView1.SelectedRows[0].Index;

  Med objmed = new Med();

  objmed = lm[i];

  DialogResult r= MessageBox.Show(this,"你确定要删除吗?","删除提示",MessageBoxButtons.OKCancel);

  if (r == DialogResult.OK)

  {

  int mid = int.Parse(objmed.Mid.ToString());

  if (mid > 9)

  {

  mb.removeMed(objmed);

  MessageBox.Show("删除成功!");

  lm = mb.findAllMed();

  dataGridView1.DataSource = null;

  dataGridView1.DataSource = lm;

  }

  else

  {

  MessageBox.Show("药品类别不能删除!");

  }

  }

 }

  } (2)库存信息一览:设置一个字符串类对象,调用findAllMed函数,将其信息返回到字符串类对象中然后通过刷新将数据库中的信息完整的显示到窗口中以便用户查询,预览下面是具体代码:

  private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e)//select

  {

  string s = toolStripComboBox1.SelectedItem.ToString();

  if (s == "所有药品")

  {

  lm = mb.findAllMed();

  dataGridView1.DataSource = null;

  dataGridView1.DataSource = lm;

  }

  else

  {

  object o = mb.fineMedmid(s);

  int mid = (int)o;

  lm = mb.findMedbypid(mid);

  dataGridView1.DataSource = null;

  dataGridView1.DataSource = lm;

  }

  }

  private void btnUpdate_Click(object sender, EventArgs e)//update

  {

  if (dataGridView1.SelectedRows.Count > 0)

  {

  int i = dataGridView1.SelectedRows[0].Index;

  frmMedUpdate obj = new frmMedUpdate(lm[i].Mid, lm[i].Mname, lm[i].Mspec, lm[i].Munit);

  obj.Show();

  obj.FormClosed += new FormClosedEventHandler(obj_FormClosed);

 } 4.5 架构设计 根据前面介绍已知本课题用到了.net三层架构,下面简单介绍一下每一层的具体实现方法: (1)商业逻辑层:毋庸质疑的是商业逻辑层是系统最重要、最复杂、也最核心的部分,应用层的工作实际上可以理解为是界面的设计和表示,更多的是美工方面的工作。而商业逻辑层则是应用系统核心、每一种应用的最大的区别严格的说也就是在商业逻辑层上。商业逻辑层处于应用层和通用层之间,它接收用户的请求,对用户的请求进行分析,根据业务逻辑的需要从通用层提取数据并对数据进行过滤、整理和汇总,在格式化以后,发送给应用层。具体实现代码如下: <ProjectDefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>

  <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

  <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>

  <ProductVersion>8.0.50727</ProductVersion>

  <SchemaVersion>2.0</SchemaVersion>

  <ProjectGuid>{3A69C71E-5AB9-438B-8290-0701BEF59E0A}</ProjectGuid>

  <OutputType>Library</OutputType>

  <AppDesignerFolder>Properties</AppDesignerFolder>

  <RootNamespace>Bussiness</RootNamespace>

  <AssemblyName>Bussiness</AssemblyName>

  </PropertyGroup> (2)数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问。简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。具体实现代码如下: <ProjectDefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>

  <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

  <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>

  <ProductVersion>8.0.50727</ProductVersion>

  <SchemaVersion>2.0</SchemaVersion>

  <ProjectGuid>{5DB9E559-8053-40E8-943E-A1D2A2E408FC}</ProjectGuid>

  <OutputType>Library</OutputType>

  <AppDesignerFolder>Properties</AppDesignerFolder>

  <RootNamespace>DataAccessConmon</RootNamespace>

  <AssemblyName>DataAccessConmon</AssemblyName>

  </PropertyGroup> (3)应用层:应用层主要是指界面的设计和美化以及调用其他两层的基本代码来实现界面中基本的增、删、改、查的基本操作。具体代码如下: <ProjectDefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>

  <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

  <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>

  <ProductVersion>8.0.50727</ProductVersion>

  <SchemaVersion>2.0</SchemaVersion>

  <ProjectGuid>{9C610617-2716-4D40-AE2A-A87B8897A94C}</ProjectGuid>

  <OutputType>WinExe</OutputType>

  <AppDesignerFolder>Properties</AppDesignerFolder>

  <RootNamespace>MedicineApplication</RootNamespace>

  <AssemblyName>MedicineApplication</AssemblyName>

  </PropertyGroup>

 5

 系统测试 5.1 系统测试 系统测试,英文是System Testing,是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。系统测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。 在完成了程序的编写工作后:接下来将进行软件的测试,这里说的软件,并不单单是指程序本身,还包括其他方面.测试和开发一样,也是一项技术性很强的工作,有着很多的技巧。与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤地继续。大型软件系统通常由若干个子系统组成,每个子系统又由许多模块组成。因此,系统测试流程图如图5-1所示:

 图5-1 系统测试流程图 测试的目的在于将软件设计时设计者与程序开发者之间理解不一致的地方,功能与需求不一致的地方,不符合逻辑思维的情况都反映给质量控制部门,由质量控制部门调配需求部门统一作出一个明确解答,再由开发人员进行修改和补充。 5.2 白盒测试 白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。 白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。其中运用最为广泛的是基本路径测试法。基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。 白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖,发现错误的能力呈由弱至强的变化。语句覆盖每条语句至少执行一次。判定覆盖每个判定的每个分支至少执行一次。条件覆盖每个判定的每个条件应取到各种可能的值。判定/条件覆盖同时满足判定覆盖条件覆盖。条件组合覆盖每个判定中各条件的每一种组合至少出现一次。路径覆盖使程序中每一条可能的路径至少执行一次。 5.3 综合测试 时常有这样的情况发生,每个模块都能单独工作,但这些模块集成在一起之后却不能正常工作。主要原因是,模块相互调用时接口会引入许多新问题。综合测试是组装软件的系统测试技术,按设计要求把通过单元测试的各个模块组装在一起之后,进行综合测试以便发现与接口有关的各种错误。因为测试时可能发现一大堆错误,为每个错误定位和纠正非常困难,并且在改正一个错误的同时又可能引入新的错误,新旧错误混杂,更难断定出错的原因和位置。下面讨论两种增量式集成方法。 5.3.1

 自顶向下集成 以出库管理页面为例具体步骤为: (1)以出库管理系统为主空模块作为擦拭驱动模块,把对主控模块进行单元测试时引入的所有桩模块即出库信息模块和出库明细信息模块用实际模块替换; (2)一句深度优先,每次只替换一个桩模块; (3)每集成一个模块立即测试一遍; (4)只有每组测试完成后,才着手替换下一个桩模块; (5)为避免引入新错误,需不断进行回归测试(即全部或部分地重复已做过的测试)。 5.3.2

 自底向上集成 自底向上测试是从院子模块(即软件结构做底层的模块)开始组装和测试,因测试到较高层模块时,所需的下层模块功能均已具备,所以不再需要桩模块。 具体步骤为: (1)把底层模块组织成实现某个子功能的模块群; (2)开发一个测试用驱动模块,控制测试数据的输入和测试结果的输出; (3)对每个模块群进行测试; (4)删除测试使用的驱动模块,用较高层模块把模块群组织成为完成更大功能的新模块群。 5.4 需求测试 针对需求测试,是测试中很重要的一个环节.因为需求是在软件设计,开发乃至软件测试中重要的依据.要针对需求测试,首先就要对项目的需求和业务有一定的了解.这些需求很多时候是在实现增,删,查,改这些基本功能之上,针对项目和相关业务所作的一些逻辑上的控制.这就要求程序员在设计和编码的时候要去充分理解考虑需求。 性能测试在软件的质量保证中起着重要的作用..通常我们把性能指标全部归结到硬件,操作系统和开发环境上,而忽略了代码本身性能上的考虑.性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的。

  致谢 毕业论文暂告收尾,这也意味着我在XX学院的三年的学习生活既将结束。回首既往,自己一生最宝贵的时光能于这样的校园之中,能在众多学富五车、才华横溢的老师们的熏陶下度过,实是荣幸之极。在这四年的时间里,我在学习上和思想上都受益非浅。这除了自身努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。 三年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。四年的求学生涯在师长、亲友的大力支持下,走得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。伟人、名人为我所崇拜,可是我更急切地要把我的敬意和赞美献给一位平凡的人,我的导师——侯世中老师。我不是您最出色的学生,而您却是我最尊敬的老师。您治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”。

 感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意!

 同时也感谢学院为我提供良好的做毕业设计的环境。最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者。

  参考文献 [1] 周新会,傅立宏.ASP通用模块及典型系统开发-实例导航.人民邮电出版社,2006.5

 [2] 严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社,2008.3 [3] 程不功,龙跃进,卓琳.ASP.NET 2.0动态网站开发教程.清华大学出版社,2008.4 [4] 郝文化.ASP.NET与网站开发实践教程等编.清华大学出版社,2008.5 [5] 王东明,葛武滇.Visual C#.NET程序设计与应用开发.清华大学出版社,2009.6 [6] 张海藩.软件工程.人民邮电出版社,2009.5 [7] 吴辰,王春霞.ASP.NET 2.0数据库项目案例导航.清华大学出版社,2008.5 [8] 王选.软件测试方法.清华大学出版社,1992 [9] 曹军生.SQL数据库教程.北京理工大学出版社,2001 [10] 李红.数据库原理与应用.高等教育出版社,2003

 

推荐访问:毕业论文 进销存管理系统 药品
上一篇:【近期财务工作情况汇报】 财务工作建议和意见
下一篇:【2129+,2020年理论文章意见建议加快全民健身事业发展】mu2129

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有