实验室设备管理系统毕业设计.docx
《实验室设备管理系统毕业设计.docx》由会员分享,可在线阅读,更多相关《实验室设备管理系统毕业设计.docx(57页珍藏版)》请在冰豆网上搜索。
实验室设备管理系统毕业设计
本科毕业论文(设计)
题目实验室设备管理系统-出入库管理模块
学院计算机与信息科学学院
专业计算机科学与技术
年级200X级
学号
姓名
指导教师
成绩_____________________
200X年X月XX日
实验室设备管理系统-出入库管理模块
XXX
摘要:
本文详细介绍了实验室设备管理系统的工作流程:
设备入库、领用、报废、丢失、损坏、维修、调拨登记、例行统计报表,并对每个流程进行了概要设计与详细设计的描述。
本系统的开发采用B/S模式,以微软的VisualStudio2008作为开发平台,实现了三层架构(即业务逻辑层、数据访问层、用户界面层)的实验室设备管理系统。
该设备信息管理系统以设计模式为指导思想进行设计实现后,降低了层次之间、模块之间的耦合性,解决了重复开发、代码重用率低、功能模块移植工作量大等问题,提高了系统的稳定性、可扩展性、可维护性和可复用性。
关键词:
设计模式;AJAX;水晶报表;设备管理
THEMANAGEMENTSYSTEMOFLABORATORYEQUIPMENT
WEIQiang
ComputerandInformationScienceAcademy,SouthwestChinaNormalUniversity,Chongqing400715,China
Abstract:
Thearticleintroducestheworkflowoflaboratoryequipmentmanagementsystemindetail:
equipmentstorage,recipients,discard,lost,damaged,maintenance,allocationofregistration,routinestatisticalreports.Andthepreliminarydesignanddetaildesignofeachofprocessarealsodescribedinthearticle.
ThedevelopmentofthesystemusesB/S(Browser/Server)modeandMicrosoft'sVisualStudio2008asdevelopmentplatformtoachieveathree-tiersystem(thatis,businesslogictier,dataaccesslayer,userinterfacelayer)oflaboratoryequipmentmanagementsystem.
Afterachievingequipmentmanagementsystemdesignindesignpatterns,thecouplingwasgreatlyreducedbetweenthelayersandbetweenthemodules.Itsolvedtherepeateddevelopment,thelowcodereusablerate,heavyworkloadoffunctionalmoduletransplantationproblemsandsoon,andincreasedsystemstability,expansibility,reusabilityandmaintenance.
KeyWords:
DesignPatterns;AJAX;CrystalReport;EquipmentManagement
第1章引言
1.1研究背景
随着高校管理变革的逐步推进、实验室建设的进一步规范化、复杂化,高校设备管理在学校的正常教学活动中越来越重要。
为适应高等教育的发展,设备管理工作所涉及的设备计划、采购、验收入库、档案资料、调入调出、维修报废等各个环节,都应加大改革步伐,努力实现管理工作现代化,采用一些新的管理方法和技术手段,才能使设备管理工作更符合高校发展的需要。
在当前的形式下,学校一方面受到教育经费投入不足的影响,另一方面学校的现有资源不能被充分利用,许多学校还存在重复低水平购置,现有教学资源浪费严重的情况,造成这种情况的原囚是多方面的,其中一个重要的因素是学校实验室及设备的管理落后于学校的发展,提高学校实验室的管理水平,实现学校实验室及设备管理的计算机管理,是十分必要和迫切的。
1.2论文研究内容和意义
1.2.1论文研究内容
1)设计模式的使用:
通过设计模式的使用,可以降低各个模块之间的耦合度,从而解决了重复开发、代码复用率低、功能模块移植量大等问题,从而提高软件设计的质量,提高系统的稳定性、可维护性和可复用性。
2)水晶报表的使用:
Windows下输出报表很容易,也容易打印,但在Web环境下,输出打印报表就有一定的难度,利用VS.NET内嵌的CrystalReports进行报表开发,既能快速的开发报表,又能导出复杂的交互性图表,并动态的将报表导出.pdf,.doc,.xls,html,rtf等多种格式。
3)AJAX的使用:
AJAX是一种创建交互式网页应用的网页开发技术。
AJAX使得客户端可以在不刷新页面的情况下与服务器进行交互。
AJAX技术使得页面和服务器的直接通讯可以使用异步操作,从而不需打断用户的操作,使得页面具有更快速的响应能力,并且还减少了页面与服务器的通讯量,提高了系统的性能。
1.2.2论文研究意义
实验室工作是高等教学工作中不可分割的一部分,也是培养学生工程创新能力的重要途径。
只有运用科学的工具与手段来采集信息、进行数据处理,才能全面、综合地利用信息资源,设备管理人员才能及时准确地掌握各自管辖范围内各类设备的分布情况、新旧程度、使用状态和设备内部流动情况,才能以此推动实验室管理技术的进步,改善和加强实验室管理,辅助管理决策,全面提升实验室的管理水平。
随着我校招生规模的不断扩大,学校加大了对实验室设备的投入,设备仪器数量大增。
由于学校以前用的设备管理软件着重于对静态信息的管理,已不在满足当前的需求,且存在平台落后,标准不统一的问题,从而出现某些设备长期闲置,重复购置等现象。
为了提高学校的办公效率,减少资金浪费现象,我们以实现设备信息全过程管理为目的,结合学校实验室管理特点,基于.NET构架的通用实验室设备管理系统的体系结构、系统开发的主要技术、系统功能的实现及系统在学校的应用,进行了对基于WEB的高校实验室设备管理系统的研究和开发。
1.3论文组织结构
本文由五章组成,各章内容如下:
第一章:
引言。
主要说明研究背景,论文研究内容和意义。
第二章:
相关应用技术。
本章主要介绍B/S模式、设计模式、AJAX、水晶报表等相关知识。
第三章:
系统需求分析。
本章介绍了需求概况,模块涉及的DFD图,E-R图。
第四章:
系统总体设计。
本章介绍了系统总体结构、系统功能模块设计、数据库逻辑设计、系统体系结构、开发环境、开发工具及平台。
第五章:
系统详细设计与实现。
本章介绍了实验室设备管理系统的数据访问层、打印报表、出入库管理模块用户界面和业务逻辑层的设计和实现。
第六章:
总结与展望。
对本课题的工作做总结,并提出下一步的工作内容。
第2章相关应用技术
2.1B/S模式
B/S模式(Browser/ServerMode)即浏览器/服务器模式。
它是随着Internet技术的兴起,对C/S模式的一种变化或者改进的结构。
在这种模式下,用户工作界面是通过Web浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现,形成所谓三层模式。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。
它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
B/S与C/S模式相比,其优点在于:
1)不必开发专用的客户端软件,在用户端不需要增加任何代码,用户只需使用现行的浏览器,其操作十分方便,简单易学,界面统一,降低了用户学习新知识的难度,用户易于接受,这样既节省了开发时间,也减少了系统出错的可能性,降低了维护费用。
2)网络应用系统跨平台,兼容性好,保护原有的软硬件设施,原来的网络、
操作系统、数据库都可以很容易地加以利用,可使系统在最短的时间内发挥效益。
3)技术上相对成熟,投入费用少,系统维护简便,简单易用。
应用Web技术,OA系统只需在服务器上集中实现和配置的维护、管理,大大降低了用户用于软件系统维护和升级的难度和费用,使办公自动化更加容易实施,用户投资风险小。
4)系统运行稳定、安全、可靠,并可进行扩展。
5)软件移植容易,并可以进行严密的安全管理。
另外,B/S层次分离的优势体现在界面风格统一为浏览器,并具有统一的语言格式、统一的传输协议,系统管理简单,能够优化资源,可支持异种数据库和方便信息发布等。
B/S三层结构分传统的三层应用体系和基于WEB的三层体系结构。
传统的三层体系结构,克服了二层体系结构的一些限制。
三层体系结构将用户界面层与业务逻辑层分开,用户界面层放在客户端,而将业务逻辑层和数据存储层放在中间的应用服务器上,如图2-1所示。
客户端应用服务器数据库
图2-1传统的三层体系结构
Figure2-1traditional3-tierstructure
中间层服务器通过重用那些跨越多个客户的昂贵资源来改进可伸缩性,从而改善了性能。
这个体系结构也改进了安全和应用管理。
虽然三层体系结构消除了二层体系的一些缺陷,但它也有不足之处:
复杂性、应用缺乏可移植性、提供商的不兼容性以及与Web的不兼容性。
随着因特网的高速发展,WWW的广泛应用,传统的三层应用体系结构的局限越来越明显,这时基于Web的三层体系结构得到了广泛的应用。
基于Web的三层体系结构如图2-2所示。
中间件
图2-2基于Web的三层体系结构
Figure2-23-tiersystemstructurebasedonWeb
基于WEB的三层应用体系结构显示以下优点:
1)优化了系统结构:
将系统分为三层(或多层),业务逻辑放在应用服务层,软件的维护集中在应用服务层,实现了客户端的“零”维护,有利于软件维护及系统管理。
2)提高了应用系统的安全性:
将客户端与数据库隔离起来,有利于安全管理,有效防止恶意攻击。
还可利用中间件的安全管理特性进一步加强权限控制管理。
3)卓越的扩展能力:
若要提高系统性能、处理速度,可增加应用服务器,分担一部分应用服务工作即可,而原来的应用服务器几乎可以不动。
4)减少网络数据流量和提高数据库响应速度:
基于Web三层应用体系结构中,应用服务层的引入有效地解决了网络瓶颈和数据库连接数过多引起数据库性能下降的问题。
应用服务层往往有多台服务器,可有效地解决客户机访问服务层的瓶颈问题。
5)提高系统性能:
基于Web三层应用体系结构能更好地调整应用体系,还可利用中间件的特点来选择路由、平衡负载,提高整个系统的性能。
总的来说,三层应用体系结构使应用系统的性能、安全性、扩展性有了很大的提高,也方便了系统的维护和管理。
2.2设计模式
实验室设备管理系统基于设计模式设计实现,本章将讨论设计模式的概念、分类等知识,分析研究23种GoF设计模式意图、使用场合、组合技术及在系统设计开发中的选择和使用等应用方法。
2.2.1设计模式概述
软件模式的思想最初来源于建筑领域,建筑师ChristonpherAlexander首先提出一种基于模式进行建筑设计的新方法。
Alexander认为:
“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。
这样,你就能一次又一次地使用该方案而不必做重复劳动”。
这种模式的方法同样适用于软件研究。
本文中的设计模式是对被用来在特定的场景下解决一般设计问题的类和相互通信的对象的描述。
和面向对象技术比较而言,设计模式不是一种技术,而是一种软件设计的指导思想。
使用软件设计模式的好处:
●促进交流:
模式的名称简化了设计者之间对设计方案的讨论。
关于模式的优点、缺点和使用情况的共享知识使讨论和评估变得容易和快捷。
●简化文档:
命名著名模式的设计文档用几句户即可解释清楚模式的实现方式,而解释一个程序的形式和行为则需要好几页文档。
●提高开发效率:
支持或者纳入标准模式的语言和组件使设计和实现变得更为容易。
●支持软件重用:
针对问题领域选择模式并进行标准化,促进了软件的重用,从而提高了质量和生产率。
●提供设计思想:
模式可以充当设计的起点,或者充当改进设计的思想。
一个设计模式命名、抽象确定了一个通用设计结构的主要方面,这些设计结构能用来构造可复用的面向对象设计。
设计模式确定了所包含的类和实例,它们的角色、协作方式以及职责分配。
每一个设计模式都集中于一个特定的面向对象设计问题或设计点,描述了什么时候使用它,在另一些设计约束条件下是否还能使用,以及使用的效和如何取舍。
2.2.2设计模式分类
GoF设计模式共包含23种经典设计模式,见表2-1。
表2-1设计模式
Table2-1DesignPatterns
创建型
结构型
行为型
FactoryMethod
AbstractFactory
Builder
Prototype
Singleton
Adapter
Bridge
Composite
Decorator
Façade
Flyweight
Proxy
Interpreter
TemplateMethod
Chainofresponsibility
Command
Iterator
Memento
Observer
State
Strategy
Visitor
本系统在设计中主要涉及两种设计模式:
1)抽象工厂模式(AbstractFactoryPattern)
意图:
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
使用场合:
●一个系统要独立于其产品的创建、组合和表示时。
●一个系统要由多个产品系列中的一个来配置时。
●当你要强调一系列相关的产品对象的设计以便进行联合使用时。
●需要提供一个产品类库,而只想显示它们的接口,而隐藏其实现时。
抽象工厂模型图如图2-3所示:
图2-3抽象工厂模式
Figure2-3AbstractFactoryPattern
实现要点:
●抽象工厂将产品对象的创建延迟到它的具体工厂的子类。
●如果没有应对“多系列对象创建”的需求变化,则没有必要使用抽象工厂模式,这时候使用简单的静态工厂完全可以。
●系列对象指的是这些对象之间有相互依赖、或作用的关系,例如游戏开发场景中的“道路”与“房屋”的依赖,“道路”与“地道”的依赖。
●抽象工厂模式经常和工厂方法模式共同组合来应对“对象创建”的需求变化。
●通常在运行时刻创建一个具体工厂类的实例,这一具体工厂的创建具有特定实现的产品对象,为创建不同的产品对象,客户应使用不同的具体工厂。
●把工厂作为单件,一个应用中一般每个产品系列只需一个具体工厂的实例,因此,工厂通常最好实现为一个单件模式。
●创建产品,抽象工厂仅声明一个创建产品的接口,真正创建产品是由具体产品类创建的,最通常的一个办法是为每一个产品定义一个工厂方法,一个具体的工厂将为每个产品重定义该工厂方法以指定产品,虽然这样的实现很简单,但它却要求每个产品系列都要有一个新的具体工厂子类,即使这些产品系列的差别很小。
优点:
●分离了具体的类。
抽象工厂模式帮助你控制一个应用创建的对象的类,因为一个工厂封装创建产品对象的责任和过程。
它将客户和类的实现分离,客户通过他们的抽象接口操纵实例,产品的类名也在具体工厂的实现中被分离,它们不出现在客户代码中。
●它使得易于交换产品系列。
一个具体工厂类在一个应用中仅出现一次——即在它初始化的时候。
这使得改变一个应用的具体工厂变得很容易。
它只需改变具体的工厂即可使用不同的产品配置,这是因为一个抽象工厂创建了一个完整的产品系列,所以整个产品系列会立刻改变。
●它有利于产品的一致性。
当一个系列的产品对象被设计成一起工作时,一个应用一次只能使用同一个系列中的对象,这一点很重要,而抽象工厂很容易实现这一点。
缺点:
●难以支持新种类的产品。
难以扩展抽象工厂以生产新种类的产品。
这是因为抽象工厂接口确定了可以被创建的产品集合,支持新种类的产品就需要扩展该工厂接口,这将涉及抽象工厂类及其所有子类的改变。
2)外观模式(FacadePattern)
意图:
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
使用场合:
●当你要为一个复杂子系统提供一个简单接口时。
子系统往往因为不断演化而变得越来越复杂。
大多数模式使用时都会产生更多更小的类。
这使得子系统更具可重用性,也更容易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。
Facade可以提供一个简单的缺省视图,这一视图对大多数用户来说已经足够,而那些需要更多的可定制性的用户可以越过Facade层。
●客户程序与抽象类的实现部分之间存在着很大的依赖性。
引入Facade将这个子系统与客户以及其他的子系统分离,可以提高子系统的独立性和可移植性。
●当你需要构建一个层次结构的子系统时,使用Facade模式定义子系统中每层的入口点。
如果子系统之间是相互依赖的,你可以让它们仅通过Facade进行通讯,从而简化了它们之间的依赖关系。
外观模型图如图2-4所示:
图2-4外观模式
Figure2-4FacadePattern
实现要点:
●Facade模式对客户屏蔽了子系统组件,因而减少了客户处理的对象的数目并使得子系统使用起来更加方便。
●Facade模式实现了子系统与客户间的松耦合关系,而子系统内部的功能组件往往是紧耦合的。
松耦合关系使得子系统的组件变化不会影响到它的客户。
●如果应用需要,它并不限制它们使用子系统类。
因此你可以在系统易用性与通用性之间选择。
2.3AJAX
2.3.1AJAX概述
ASP.NETAJAX是一种实现异步(Asynchronous)网络应用的技术,是ASP.NET的一种扩展技术。
通过ASP.NET技术,开发人员可以将WEB服务器控件和客户端脚本结合起来,并在此基础上实现WEB页面的局部更新功能。
AJAX是AsynchronousJavaScriptandXML(异步JavaScript和XML)的缩写,它是一种创建交互式网页应用的网页开发技术。
其实AJAX并不是一种新技术,它只是由JavaScript、XML、XSLT、CSS、DOM和XMLHttpRequest等多种技术组成的。
在AJAX中,XMLHttpRequest是其最核心的技术,该对象由浏览器中的JavaScript创建,负责在后台以异步的方式让客户端连接到服务器。
它为页面中的JavaScript脚本提供了一种通讯方式,从而使得页面通过这些脚本能够与服务器发生交互。
页面内的JavaScript脚本可以再不刷新页面的情况下与服务器进行交互,即页面可以从服务器提交数据。
AJAX技术与传统的WEB技术相比,存在以下三个主要区别:
●能够更新页面中的部分内容,不需要刷新整个页面就能够与服务器通信。
●页面与服务器的直接通讯可以使用异步操作,从而不需要打断用户的操作,使得页面具有更加快速的响应能力。
●由于页面与服务器交互时,只需要页面的部分内容,因此减少了页面与服务器的通讯量,提高了应用程序的效率。
ASP.NETAJAX包括服务器端部分和客户端部分。
其中,ASP.NETAJAX服务器端部分提供了5个服务器端控件,通过这些控件,开发人员可以轻松实现异步网页和一个无刷新的WEB环境。
ASP.NETAJAX服务器端部分提供的5个服务器端控件如图2-5所示:
图2-5ASP.NETAJAX服务端控件
Figure2-5ASP.NETAJAXServiceControls
●ScriptManager控件:
管理页面的脚本。
●ScripManagerProxy控件:
管理页面的脚本。
●UpdatePanel控件:
和ScriptManager控件共同提供了一个无刷新的WEB环境。
●Timer控件:
定时器,它能定时触发用户自定义的操作。
●UpdateProgress控件:
显示整个或部分页面更新的过程。
ASP.NETAJAX服务器端的架构如表2-2所示。
ASP.NETAJAX服务器端控件
ASP.NETAJAX服务器端扩展控件
ASP.NETAJAX客户端脚本
ASP.NETAJAXWEB服务
ASP.NET框架
表2-2ASP.NETAJAX服务端架构
Table2-2ASP.NETAJAXServerArchitecture
ASP.NETAJAX客户端的架构如表2-3所示。
客户端组件或控件
ASP.NETAJAX基础框架/网络基础
表2-3ASP.NETAJAX客户端架构
Table2-3ASP.NETAJAXClientArchitecture
各个部分具体说明如下:
●客户端组件或控件:
主要包括处理和封装客户端控件的类或组件,使得开发人员能够轻松和方便地使用这些控件。
●ASP.NETAJAX基础框架/网络基础:
主要包括ASP.NETAJAX中与客户端相关的基础功能。
2.3.2ASP.NETAJAXControlToolkit介绍
ASP.NETAJAXControlToolkit是在ASP.NETAJAX基础之上构建的,是由社区和Microsoft共同开发的一个ASP.NETAJAX扩展控件包,其中包含了数十种基于ASP.NETAJAX的、提供某一专一功能的服务端控件。
构建在ASP.NET2.0AJAXExtensions之上,志在成为最大、最好的可用Web应用程序的组件集合。
ASP.NETAJAXControlToolkit是一个免费资源,它被微软ASP.NET官方网站所支持。
ASP.NETAJAXControlToolkit解决了三个需要。
首先,使网站开发人员有地方获取组件以更容易的构建他们的Web应用程序;第二,它给那些要编写客户端代码的开发人员一个强大的示例集;第三,它是一个使最好的脚本开发人员使工作更加突出的地方。
ASP.NETAJAXControlToolkit控件图示如图2-6所示:
图2-6ASP.NETAjaxControlToolkit控件
Figure2-6ASP.NETAjaxControlToolkitControl
在本系统中主要使用的ASP.NETAJAXControlToolkit控件说明如表2-4所示:
控件名
实现功能
Accordion
播放动画
AutoComplete
实现自