版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要通过信息化手段进行仓库管理是企业信息化的一个重要组成部分。如何实现一个好的管理信息系统是目前重点研究的对象。在中小企业管理过程中,库存管理一直通过纸笔表格完成,仓库管理系统具有很大的应用前景。而传统的系统架构往往在实际应用中不能恰好满足企业需求,与此同时,敏捷开发日益受到业界的重视。本文将在对中小企业仓库管理系统进行需求分析的基础上,重点阐述系统模块分解、原型设计和多层架构设计这三个在总体设计时需要集中考虑的方面。并积极实践,设计并实现了更利于快速开发的单一功能分层架构。关键字:中小企业仓库管理系统,单一功能分层架构AbstractWarehousemanagementbyusinginformationtechonologieshasbeenanimportantpartofenterpriseinformationization.Howtorealizeawell-workedmanagementinformationsystemhasbeenthekeyobjectofstudyatpresent.IntheprocessofSmallandMedium-sizedEnterprisemanagement,Warehousemanagementhasbeenbeingfinishedbyfillingtableswithpensandpapers.ThereisagoodapplicationprospectinthedevelopmentofWarehousemanagementinformationsystem.Regularly,Traditionalarchitecturesdon'tfittherequirementofproductsinthepracticalapplication.Atthesametime,agiledevelopmenthasbeenundertheattentionoftheindustryincreasingly.OnthebasisoftherequirementanalysisoftheWarehouseManagementInformationSystemforSmallandMedium-sizedEnterprise,thistextmainlycoversthreeparts,includingsystemmoduledecomposition,prototypedesignandmulti-layerarchitecturedesign.Afteractivepractice,Wehavedesignedthemulti-layerarchitecturewithsinglefunctiontomeettheactualdemand,whichhasanadvantageinagiledevelopment.Keywords:WarehouseManagementInformationSystemforSmallandMedium-sizedEnterprise,themulti-layerarchitecturewithsinglefunction目录TOC\f\t"标题一,1,标题二,2,标题三,3"\h\u11756485021引言 112400278131.1中小企业仓库管理系统的研究意义 119602248721.2C#3VisualStudio2010和SQLServer2005 214725450262系统分析 319786144752.1可行性分析 39912236252.2需求分析 311680690883模块分解与原型设计 817311738323.1模块化与快速原型 819925714583.2建账管理及其原型设计 109426441433.3保管明细账管理及其原型设计 1110584577643.4添加入库信息及其原型设计 1112744117883.5管理入库信息及其原型设计 1313927472203.6全部材料入库明细表及其原型设计 1417399793493.7材料入库分类汇总表及其原型设计 157385277213.8供货单位供货明细表及其原型设计 163089896543.9添加出库信息及其原型设计 179060049953.10管理出库信息及其原型设计 1912751353613.11全部材料出库明细表及其原型设计 202108906423.12材料出库分类汇总表及其原型设计 211173548663.13产品材料耗用汇总表及其原型设计 2210529149974架构设计 245568715714.1单一功能分层架构的特点 243804861154.2单一功能分层架构的优缺点 254616535554.3单一功能分层架构在本项目中的应用 2619456226565数据库设计 2812868734235.1实体-联系图 2816373020575.2关系数据模型 2810381668216编码风格 2910996146477结束语 31191107746参考文献 321引言1.1中小企业仓库管理系统的研究意义一直以来,在中小企业的仓库管理中,出入库登记一直靠纸笔填表格的方式完成。缺点很多:首先,人力成本较高,需要雇用更多的人力进行仓库管理;其次,手工录入容易出现差错,而且纸质账簿保存时被损坏的风险较高;更值得一提的缺点是,如果想得到一份详细的库存汇总信息,需要统计大量数据,花费大量时间。长期以来,这样的问题阻碍了很多中小生产企业的发展,在计算机信息化高速发展的今天,数据的存储、运算和汇总都可以通过程序自动完成,早已不是那个看着账本敲算盘的旧世纪,也已不是指着表格按计算器的年代。现在的管理信息系统正在中小企业管理中发挥着越来越重要的作用,就仓库管理系统而言,中小企业只需要出入库管理员录入出入库信息,中小企业管理者就可以坐在办公室里,通过电脑屏幕,查看关于库存的各种信息,规划企业发展。这极大地降低了中小企业管理的成本,减少了繁琐的流程,加快了工作效率,而且在一定程度上降低了员工的工作量。由于所有的数据均在系统内流动,只要数据由出入库管理员录入系统,每一步流动都可以记录,这也极大地减少了仓库管理的漏洞。而计算机强大的统计功能,可以在几秒内汇总一年、甚至几年的出入库数据,并可以将结果用图表的形式展示出来,通过一些统计模型,还可以预测未来的发展趋势,为中小企业管理者的决策带来了极大的便利。当前,云计算的迅速发展,使得数据存储可以放在云端,数据运算也可以分布到无数终端上。作为中小企业管理者,完全不必担心数据的丢失,只需要借助先进的技术,进行企业的管理,制定战略决策。本文将在对中小企业仓库管理系统进行需求分析的基础上,重点阐述系统模块分解、原型设计和多层架构设计这三个在总体设计时需要集中考虑的方面。1.2C#C#是一种多范式编程语言(multi-paradigmprogramminglanguage)。包含强类型(strongtyping)、命令式(imperative)、声明式(declarative)、函数式(functional)、过程式(procedural)、泛型(generic)、面向对象(object-oriented)和面向组件(component-oriented)等编程范式。它是由微软公司基于.NET平台开发并于2000年6月发布的面向通用语言架构(CLI)的新的编程语言。[1]C#是由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些复杂特性。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持而成为.NET开发的首选语言。[2]由于C++发展了C,Java舍掉C++中较为复杂的特性,并且在C++的基础上增加了更多适合工程开发的机制,而C#又在很大程度上借鉴了Java。所以,不管对于目前可以使用C、C++、Java三者中的哪一门语言的程序员,上手C#的难度都相对较低。因此,在限定工期较短并且团队成员只具备初级开发能力的情况下,C#理应作为开发管理信息系统优先选择的编程语言。1.3VisualStudio2010和SQLServer2005VisualStudio是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。VisualStudio2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。VisualStudio2010同时带来了.NETFramework4.0、MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview--CTP),并且支持开发面向Windows7的应用程序。除了MicrosoftSQLServer,它还支持IBMDB2和Oracle数据库。[3]MicrosoftSQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。MicrosoftSQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,可以构建和管理用于业务的高可用和高性能的数据应用程序。[4]为了获得较新的开发体验,我们选择了VisualStudio2010,而考虑到数据库平台仅仅用来存储数据,并且高版本的数据库平台较难被低版本的数据库平台兼容,并且团队开发环境使用的操作系统中,WindowsXP和Windows7均有涉及,所以我们选择了对目前来说,版本相对较低并可以在Windows7上正常运行的MicrosoftSQLServer2005。
2系统分析2.1可行性分析可行性分析的任务是确定系统在技术上能不能实现、做出来的东西用户能不能用以及是否需要太多的资金来实现这个系统。1.技术可行性:客户机可以运行WindowsXP及以上版本的操作系统,有足够大的硬盘空间存储数据。2.操作可行性:可以为出入库管理员进行使用培训,界面十分简洁,提示信息丰富,易用性可以满足使用的要求。3.经济可行性:只需要为出入库管理员配置一台电脑,并运行WindowsXP及以上版本的操作系统即可。从技术可行性、操作可行性和经济可行性三个角度进行可行性分析,开发这个中小型的仓库管理系统完全可行。2.2需求分析需求分析的任务是确定系统必须完成的工作,通过对需求文档的分析和建立原型,并不断和用户交流系统的设计方案,可以在一定程度上获得相对准确的用户需求。如果不进行需求分析,直接进行总体设计,我们无法知道到底该设计什么,或者我们设计的东西到底该什么样子。所以,需求分析在软件定义中占有很重要的地位。本系统作为一款中小企业仓库管理系统,主要完成材料出入库管理、账目管理、供货单位管理、产品耗材管理和一些数据汇总报表功能。主要完成以下几个功能:图2-1入库单样表图2-1入库单样表A)添加入库信息1.需要添加的信息包括:入库单编号、入库日期、供货单位、供货单号、制单人、入库材料类别、入库材料名称、入库材料规格、入库数目、入库金额。2.可以修改和删除入库信息。B)管理入库信息1.可以根据入库单编号、入库日期、供货单位、供货单号中的任意条件组合查询入库单信息。2.可以更改和删除入库单信息。图2-2出库单样表图2-2出库单样表C)添加出库信息1.需要添加的信息包括:出库单编号、出库日期、领用班组、生产计划号、产品名、经领人、批准人、制单人、出库材料类别、出库材料名称、出库材料规格、出库数目、出库金额。2.可以更改和删除出库信息。D)管理出库信息1.可以根据出库单编号、出库日期、领用班组、生产计划号、产品名中的任意条件组合查询出库单信息。2.可以更改和删除出库单信息。图2-3保管明细账样表图2-3保管明细账样表E)建账管理从无到有地将库存的初始数据导入数据库,数据包括材料类别、材料名称、材料规格、材料数目、材料金额。F)保管明细账管理汇总在某一时间段内,某种特定规格的材料的出入库和结存情况,反馈的数据包括日期、入库单编号、入库数量、入库单价、入库金额、出库单编号、出库数量、出库单价、出库金额、结存数量、结存单价、结存金额。图2-4供货单位供货明细表样表图2-4供货单位供货明细表样表G)供货单位供货汇总汇总在某一时间段内,某一特定的供货单位的供货情况,反馈的数据包括日期、材料类别、材料名称、材料规格、数目、单价、金额。图2-5产品材料耗用汇总表样表图2-5产品材料耗用汇总表样表H)产品耗材汇总汇总在某一时间段内,某一特定产品消耗材料的情况,反馈的数据包括材料编号、材料类别、材料名称、材料规格、数目、单价、金额。图2-6全部材料入库明细表样表图2-6全部材料入库明细表样表图2-7材料入库分类汇总表样表图2-7材料入库分类汇总表样表I)材料入库汇总1.全部材料入库明细表,汇总在某一时间段内的全部材料入库情况,反馈的数据包括日期、材料类别、材料名称、材料规格、供货单位、数目、单价、金额。2.材料入库分类汇总表,汇总在某一时间段内,某一特定类别的材料的入库情况,反馈的数据包括日期、材料名称、材料规格、供货单位、数目、单价、金额。图2-8全部材料出库明细表样表图2-8全部材料出库明细表样表图2-9材料出库分类汇总表样表图2-9材料出库分类汇总表样表J)材料出库汇总1.全部材料出库明细表,汇总在某一时间段内的全部材料出库情况,反馈的数据包括日期、生产计划号、产品名、材料类别、材料名称、材料规格、数目、单价、金额。2.材料出库分类汇总表,汇总在具体某一天的材料出库与产品生产的对应情况,反馈的数据包括材料类别、产品名、对应的出库金额。3模块分解与原型设计3.1模块化与快速原型模块化是把系统划分成独立命名且独立访问的模块,每个模块完成一个特定的子功能,把这些模块集成起来,构成目标系统,完成指定的功能以满足用户的需求。模块化使得系统可以为人所管理,便于控制系统行为。如果一个系统仅由一个模块组成,那么它将很难被人理解。所以我们要把复杂的问题分解成许多容易解决的小问题,各个击破,这样原来的问题也就容易解决了。然而,事实证明,过多的模块,划分过细,会极大增加系统的模块数目,导致过大的模块间通信开销,设计模块间接口所需要的工作量也将大量增加。所以,我们应在模块划分与系统功能之间建立联系,使得模块与功能一一对应,或者在可控范围内多个模块与一个功能对应。采用模块化开发方法,可以使系统结构清晰,不仅容易设计,而且容易阅读和理解。并且程序错误会被限定在涉及的模块之中,易于测试和调试,从而提高软件的可靠性。而添加功能只需修改其中的部分模块,增大了程序的可扩展性。只修改最底层代码,就可以让我们的系统运行在不同的数据库系统上,如果修改最上层代码,甚至可以让我们的系统运行在不同的操作系统上,提高了程序的可移植性。因此,我们按照系统需求分析中涉及的功能,将系统划分成如下几个模块:仓库管理系统仓库管理系统入库管理与汇总建账管理保管明细账管理出库管理与汇总入库管理与汇总建账管理保管明细账管理出库管理与汇总管理入库信息添加入库信息全部材料入库明细表材料入库分类汇总表供货单位供货明细表产品材料耗用汇总表材料出库分类汇总表全部材料出库明细表管理出库信息添加出库信息管理入库信息添加入库信息全部材料入库明细表材料入库分类汇总表供货单位供货明细表产品材料耗用汇总表材料出库分类汇总表全部材料出库明细表管理出库信息添加出库信息图3-1仓库管理系统模块分解图图3-1仓库管理系统模块分解图通过快速原型设计工具,可以迅速建立系统的原型,尽快向用户提供一个直观的目标系统的模型,有利于用户和开发者在目标系统“什么样子”和目标系统“能做什么”这两个的问题上尽可能快地达成共识。因此,可以忽略原型中不损害系统功能和行为的小瑕疵。并且原型容易修改,开发人员可以根据用户的意见迅速修改,构建更符合用户要求的版本,如果仍然存在问题,还可以再修改,不断靠近用户的实际需求。但要避免对无关系统功能和行为上的小瑕疵的不断更改,以免延误软件的开发时间。在本文中,我们使用Pencil作为我们的原型图绘制工具。Pencil是一款开源的原型图绘制工具,效果和手绘基本一致,十分有利于引起用户的视觉关注,增强用户参与系统开发的积极性。图3-2主窗体原型设计图3-2主窗体原型设计3.2建账管理及其原型设计添加建账从数据库中读取已有材料类别,根据材料类别,从数据库中读取材料名称,根据材料类别和材料名称读取材料规格。如果是新添加的材料类别、材料名称和材料规格,可以通过“新建类别”按钮、“新建名称”按钮和“新建规格”按钮,添加新的材料类别、新的材料名称和新的材料规格;填写材料数目和材料金额;点击“添加”按钮,读取界面上填写的数据,显示提示信息;传入数据到数据链接层;从数据库中读取添加后的建账数据,计算单价,返回到界面;显示添加的结果。B)更改建账修改表格中的数目或者金额,点击“更改”按钮,显示提示信息;将新的数据传入数据链接层;更改数据库中对应的数据;从数据库中读取更改后的建账数据,计算单价,返回到界面;显示更改的结果。C)删除建账选中表格中要删除的数据行,点击“删除”按钮,显示提示信息;将要删除的数据行编号传入数据链接层;删除数据库中对应的数据;从数据库中读取删除后的建账数据,计算单价,返回到界面;显示删除的结果。图3-3建账管理窗体原型设计图3-3建账管理窗体原型设计3.3保管明细账管理及其原型设计查看保管明细账从数据库中读取已有材料类别、材料名称和材料规格;选择查询的开始日期和结束日期;点击“查询”按钮;传入查询条件到数据链接层;根据查询条件查询数据库,计算入库单价、出库单价和结存信息,返回到界面;显示查询的结果。B)导出到Excel点击“导出到Excel”按钮;选择要导出的位置和文件名;按单元格读取表格的数据,拼接xml字符串,填入数据,得到预先确定好规格并填写好数据的电子表格。图3-4保管明细账窗体原型设计图3-4保管明细账窗体原型设计3.4添加入库信息及其原型设计添加入库基本信息产生入库单编号,获得入库日期;加载已有供货单位。如果是新添加的供货单位,可点击“供货单位”按钮,添加新的供货单位;添加供货单号和制单人;点击“下一步”按钮,传入数据到添加入库详细信息窗体。B)添加入库详细信息获取从添加入库基本信息中读取的基本信息;从数据库中读取已有材料类别,根据材料类别,从数据库中读取材料名称,根据材料类别和材料名称读取材料规格。如果是新添加的材料类别、材料名称和材料规格,可以通过“新建类别”按钮、“新建名称”按钮和“新建规格”按钮,添加新的材料类别、新的材料名称和新的材料规格;添加材料数目和材料金额;点击“添加”按钮,读取界面上填写的数据,显示提示信息;传入数据到数据链接层;从数据库中读取添加后的建账数据,计算单价,返回到界面;显示添加的结果。C)修改基本信息点击“修改基本信息”按钮;供货单位、供货单号和制单人变为可编辑状态;修改要修改的基本信息,点击“确定”按钮。D)更改入库信息修改表格中的数目或者金额,点击“更改”按钮,显示提示信息;将新的数据传入数据链接层;更改数据库中对应的数据;从数据库中读取更改后的入库数据,计算单价,返回到界面;显示更改的结果。E)删除入库信息选中表格中要删除的数据行,点击“删除”按钮,显示提示信息;将要删除的数据行编号传入数据链接层;删除数据库中对应的数据;从数据库中读取删除后的入库数据,计算单价,返回到界面;显示删除的结果。F)生成入库单点击“生成入库单”按钮;选择要导出的入库单文件的位置和文件名;按单元格读取表格的数据,拼接xml字符串,填入数据,得到预先确定好规格并填写好数据的电子表格。图3-5添加入库基本信息窗体原型设计图3-5添加入库基本信息窗体原型设计图3-6添加入库详细信息窗体原型设计图3-6添加入库详细信息窗体原型设计3.5管理入库信息及其原型设计查询入库单信息1.填写查询条件,按照下列查询规则返回查询结果。查询规则:如果填写了入库单编号,则优先根据入库单编号查询,日期、供货单位、供货单号无效;如果只填写供货单位或只填写供货单号,则按照供货单位或供货单号,且入库日期在前后三天范围内进行查询;如果只填写供货单号和供货单位,则按照供货单号、供货单位和日期进行查询;如果什么也不填入,则显示前后三天的入库记录。传入查询条件到数据链接层;返回查询的入库单结果,返回到界面。B)更改入库单信息选中要更改的入库单数据行,点击“更改”按钮;跳转到添加入库详细信息窗体,余下操作和添加入库详细信息一致,提交完数据后关闭添加入库详细信息窗体;点击“刷新”按钮;将原查询条件传到数据链接层;查询入库单更改后的结果,返回到界面。C)删除入库单信息选中表格中要删除的数据行,点击“删除”按钮,显示提示信息;将要删除的数据行编号传入数据链接层;删除数据库中对应的数据;将原查询条件传到数据链接层;查询入库单删除后的结果,返回到界面。图3-7管理入库信息窗体原型设计图3-7管理入库信息窗体原型设计3.6全部材料入库明细表及其原型设计查看全部材料入库明细表选择查询的开始日期和结束日期;点击“查询”按钮;传入日期条件到数据链接层;根据日期条件查询数据库,计算单价,返回到界面;显示查询的结果。B)导出到Excel点击“导出到Excel”按钮;选择要导出的位置和文件名;按单元格读取表格的数据,拼接xml字符串,填入数据,得到预先确定好规格并填写好数据的电子表格。图3-8全部材料入库明细表窗体原型设计图3-8全部材料入库明细表窗体原型设计3.7材料入库分类汇总表及其原型设计A)查看材料入库分类汇总表1.选择材料类别;2.选择查询的开始日期和结束日期;3.点击“查询”按钮;4.传入查询条件到数据链接层;5.根据查询条件查询数据库,计算单价,返回到界面;显示查询的结果。B)导出到Excel点击“导出到Excel”按钮;选择要导出的位置和文件名;按单元格读取表格的数据,拼接xml字符串,填入数据,得到预先确定好规格并填写好数据的电子表格。图3-9材料入库分类汇总表窗体原型设计图3-9材料入库分类汇总表窗体原型设计3.8供货单位供货明细表及其原型设计查看供货单位供货明细表1.选择供货单位;2.选择查询的开始日期和结束日期;3.点击“查询”按钮;4.传入查询条件到数据链接层;5.根据查询条件查询数据库,计算单价,返回到界面;6.显示查询的结果。B)导出到Excel点击“导出到Excel”按钮;选择要导出的位置和文件名;按单元格读取表格的数据,拼接xml字符串,填入数据,得到预先确定好规格并填写好数据的电子表格。图3-10供货单位供货明细表窗体原型设计图3-10供货单位供货明细表窗体原型设计3.9添加出库信息及其原型设计添加出库基本信息产生出库单编号,获得出库日期;添加领用班组、生产计划号、产品名、经领人、批准人和制单人;点击“下一步”按钮,传入数据到添加出库详细信息窗体。B)添加出库详细信息获取从添加出库基本信息中读取的基本信息;从数据库中读取已有材料类别,根据材料类别,从数据库中读取材料名称,根据材料类别和材料名称读取材料规格。添加材料数目和材料金额;点击“添加”按钮,读取界面上填写的数据,显示提示信息;传入数据到数据链接层;从数据库中读取添加后的出库数据,计算单价,返回到界面;显示添加的结果。C)修改基本信息点击“修改基本信息”按钮;领用班组、生产计划号、产品名、经领人、批准人和制单人变为可编辑状态;修改要修改的基本信息,点击“确定”按钮。D)更改出库信息修改表格中的数目或者金额,点击“更改”按钮,显示提示信息;将新的数据传入数据链接层;更改数据库中对应的数据;从数据库中读取更改后的出库数据,计算单价,返回到界面;显示更改的结果。E)删除出库信息选中表格中要删除的数据行,点击“删除”按钮,显示提示信息;将要删除的数据行编号传入数据链接层;删除数据库中对应的数据;从数据库中读取删除后的出库数据,计算单价,返回到界面;显示删除的结果。F)生成出库单点击“生成出库单”按钮;选择要导出的出库单文件的位置和文件名;按单元格读取表格的数据,拼接xml字符串,填入数据,得到预先确定好规格并填写好数据的电子表格。图3-11添加出库基本信息窗体原型设计图3-12添加出库详细信息窗体原型设计图3-11添加出库基本信息窗体原型设计图3-12添加出库详细信息窗体原型设计3.10管理出库信息及其原型设计A)查询出库单信息1.填写查询条件,按照下列查询规则返回查询结果。查询规则:如果填写了出库单编号,则优先根据出库单编号查询,日期、领用班组、生产计划号、产品名均无效。如果只填写生产计划号,则按照生产计划号且日期在出库日期前后三天范围内进行查询。如果只填写领用班组,则按照领用班组且在出库日期的前后三天范围内进行查询。如果只填写产品名,则按照产品名且在出库日期的前后三天范围内进行查询。如果只填写生产计划号、产品名和领用班组,则按照生产计划号、产品名和领用班组,且在出库日期前后三天范围内进行查询;如果只填写任意两项,则按照所填写的项和日期在出库日期前后三天范围内进行查询。传入查询条件到数据链接层;返回查询的出库单结果,返回到界面。B)更改出库单信息选中要更改的出库单数据行,点击“更改”按钮;跳转到添加出库详细信息窗体,余下操作和添加出库详细信息一致,提交完数据后关闭添加出库详细信息窗体;点击“刷新”按钮;将原查询条件传到数据链接层;查询出库单更改后的结果,返回到界面。C)删除出库单信息选中表格中要删除的数据行,点击“删除”按钮,显示提示信息;将要删除的数据行编号传入数据链接层;删除数据库中对应的数据;将原查询条件传到数据链接层;查询出库单删除后的结果,返回到界面。图3-13管理出库信息窗体原型设计图3-13管理出库信息窗体原型设计3.11全部材料出库明细表及其原型设计查看全部材料出库明细表选择查询的开始日期和结束日期;点击“查询”按钮;传入日期条件到数据链接层;根据日期条件查询数据库,计算单价,返回到界面;显示查询的结果。B)导出到Excel点击“导出到Excel”按钮;选择要导出的位置和文件名;按单元格读取表格的数据,拼接xml字符串,填入数据,得到预先确定好规格并填写好数据的电子表格。图3-14全部材料出库明细表窗体原型设计图3-14全部材料出库明细表窗体原型设计3.12材料出库分类汇总表及其原型设计查看材料出库分类汇总表选择查询日期;点击“查询”按钮;传入日期条件到数据链接层;根据日期条件查询数据库,返回界面;查询所有相关的材料类别,返回界面;查询所有相关的产品,返回界面;根据上述返回的信息,拼接查询结果;显示查询结果。B)导出到Excel点击“导出到Excel”按钮;选择要导出的位置和文件名;按单元格读取表格的数据,拼接xml字符串,填入数据,得到预先确定好规格并填写好数据的电子表格。图3-15材料出库分类汇总表窗体原型设计图3-15材料出库分类汇总表窗体原型设计3.13产品材料耗用汇总表及其原型设计A)查看产品材料耗用汇总表1.选择产品名;2.选择查询的开始日期和结束日期;3.点击“查询”按钮;4.传入查询条件到数据链接层;5.根据查询条件查询数据库,计算单价,返回到界面;6.显示查询的结果。B)导出到Excel点击“导出到Excel”按钮;选择要导出的位置和文件名;按单元格读取表格的数据,拼接xml字符串,填入数据,得到预先确定好规格并填写好数据的电子表格。图3-16产品材料耗用汇总表窗体原型设计图3-16产品材料耗用汇总表窗体原型设计4架构设计架构设计往往决定了系统开发中后期的进度。一个不好的架构,往往会让项目在后期演变成“边做边设计”,出现很多无谓的修改和时间的浪费。从理论上讲,软件开发应该是分析、设计、编码、测试、维护这五个大体的步骤。但是我们发现,到了测试阶段,发现错误,需要修改的时候,经常会修改设计。这样直接造成了较大的修改工作量,甚至可能使问题越改越多。很多人认为,用户需要什么功能,我们就实现什么功能,没必要花时间去设计软件架构。但当这些人发现,到了项目后期,重构代码几乎等于重写代码的时候,为时已晚。还有些人认为,既有的成熟架构已经很多,我们没必要自己设计,浪费时间,并且容易出问题。但这些人会发现,既有的架构很多时候不是太大,就是太小,团队学习既有架构的过程也会浪费系统开发的时间。良好的架构设计,不仅可以让我们的系统满足用户的需求,而且可以在用户需求改变的时候,我们可以用最小的代价满足用户需求的改变。除此之外,良好的设计架构意味着良好的可移植性、良好的可维护性、较高的开发效率等等。所以我们应该重视架构设计在软件开发中的作用。在本项目中,我们设计并使用了单一功能分层架构。对于传统三层架构中不适合本项目的地方进行了取舍,并加入了我们自己的设计理念。4.1单一功能分层架构的特点所谓单一功能分层架构,就是把整个项目分解为界面层、业务逻辑层、若干中间数据处理层和数据链接层。(待修改)中间的逻辑层,每一层实现且仅实现一个功能。相比较传统三层架构对数据业务逻辑处理这一略显宽泛含混的作用,我们的架构可以更清晰,并且增强了系统的功能内聚,使得每个模块的功能单一,降低了模块的规模,虽然增加了处理结构的深度,但其规模在可控范围之内。在系统开发过程中,团队分工可以更加明确,由于功能单一,团队成员上手的成本低,每个人仅需要完成若干功能中的一个或几个。下一小节,我们将重点阐述,单一功能分层架构的优缺点。图4-1单一功能分层架构图4-1单一功能分层架构4.2单一功能分层架构的优缺点单一功能分层架构的主要优点如下:分工明确,职责划分清晰明确的分工有利于团队成员各尽所能,有利于评价团队成员的贡献,避免利益上的冲突,避免争功,有利于维护团队的稳定。工作内容专一工作内容的专一使得团队成员可以专注于自己的模块,有利于加快项目开发速度,并可培养团队成员的一技之长,甚至多技之长,易产生工作积极性。可移植性、可扩展性好每一层只做一件事情,需要添加处理,就添加新的处理层;需要添加功能,就增加宽度。基本不需要改变太多当前项目的已有成果,便于扩展。而如果换数据库,只需更换数据链接层;换操作系统,只需更换界面层。有较强的可移植性,可以应对各种环境变化。(通过GTK#,在Windows上用C#开发的程序也可以移植到Linux操作系统上)不存在过度设计,简单可靠架构简单,不用花费太多时间在架构学习和架构维护上。模块功能单一,易查错,可测试性好,随之而来的,可维护性好。易上手,对团队成员的能力要求低同样是因为架构简单,对团队成员上手的要求较低,一个小时就足可以适应此架构。团队成员也容易知道自己对整个项目的贡献在什么地方。有利于形成开发热情。功能与文件对应,间接减少了关键路径占用的时间我们假设就一个模块的开发与传统三层架构进行对比:用户界面的开发时间是0.5小时数据链接层的开发是1小时传统三层架构:Model的开发是0.2小时业务逻辑层的开发是3小时(包括错误检验、数据压缩和数据加密...)单一功能分层架构:没有Model业务逻辑层的开发是0.3小时(只是传递参数)错误检验层的开发是0.3小时数据压缩层的开发是0.3小时数据加密层的开发是0.3小时0.3小时由于传统三层架构需要进行数据库的OR-Mapping和每个函数处理后对Model的封装,这部分时间我们算在了业务逻辑层的开发里。通过上述例子,我们很容易发现,传统三层架构在开发过程中,业务逻辑层由于要完成的处理步骤较多,需要耗费较长的时间,而对于使用VisualStudio的前台开发人员来说,用户界面的开发只需要很短的时间,而对于有熟练数据库经验的人来说,数据链接层的开发也十分简单。只有业务逻辑层,由于不同的模块的逻辑可能不同,需要耗费的时间必然会较其他两层更长。并且,由于开发过程中,一般情况下,一个代码文件不能被两个人同时读写,致使前台开发人员和数据链接层开发人员等待业务逻辑层开发人员的现象时有发生。而在我们的单一功能分层架构中,没有Model,不需要封装,在项目规模较小的情况下,函数接口中的变量数目可以接受,不需要浪费时间在OR-Mapping上。同时,克服了传统三层架构开发过程中的闲置问题,前台开发人员和数据链接层开发人员可以在自身工作完成的情况下,帮助完成处理层的各个模块,团队成员互补,有利于缩短工期。性能优化空间大,关键环节可根据对应平台换用动态链接库。解释型语言,如Python,程序的执行速度相对编译型语言要慢,那么我们可以把中间的处理层用C或C++编译成动态链接库,进行性能优化。划分多个处理层,使得动态链接库的功能和调用可以更清晰明了。Simpleisbetter一个架构的简洁对于这个架构的推广十分重要,如果一个架构的使用可以被写成一本将近百页的教材,我想这不是一个好的架构,至少不是一个敏捷开发的架构,也不是一个可以迅速被广泛应用的架构。不应为了面向对象而面向对象,不应为了设计模式而设计模式。开发的速度可以带来直接的经济效益,外加用户的满意度。用户想要的是尽快拿出方案、尽快看到原型、尽快交付使用。一个设计完善,可以沿用百年的架构固然理论上是好,但是过长的设计时间,较高的学习成本,都会阻碍系统开发的进程,降低用户的满意度。简单的是最好的。但我们不得不承认,在某些时候,单一功能分层架构存在一定的缺点:由于没有使用OR-Mapping,没有持久化层,所以代码的可重用性不高。由于没有封装Model,函数接口的参数个数在某些情况下会比较多。当对数据的处理步骤过多时,会带来过深的层次,对系统性能的影响会较大。4.3单一功能分层架构在本项目中的应用通过需求分析,我们可以看到,这个仓库管理系统的规模不是很大,要完成的功能的逻辑也较为清晰,而团队开发人员都相对缺少开发经验,都是在摸索中开发。所以,我们设计了单一功能分层架构。整个系统包括:用户接口层、业务逻辑层、错误检验层和数据链接层。用户接口层负责和用户的交互,包括用户的输入、控件的触发事件和数据的显示;业务逻辑层负责传送数据,并清晰展示所有调用的函数,方便对功能的控制;错误检验层负责检查用户输入的合法性;数据链接层负责对数据库进行增删改查。在实际开发过程中,一个人负责用户接口层编码,一个人负责数据链接层编码,另一个人负责错误检验层编码,之后先完成任务的人连接业务逻辑层。开发中通过局域网即时通信软件,共享函数接口。并在一台电脑上进行代码版本管理,每次开发均进行源代码备份和测试信息备份。在有序的开发过程中,充分体现了单一功能分层架构在迭代开发过程中的优势。并且较低的学习成本也带来了较高的工作积极性。每次构建均有新的模块完成,并保证系统可用,不断添加功能的成就感使得团队开发的积极性较高。5数据库设计信息管理系统实质上,就如同是为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美妆直播带货2025年五年营销策略报告
- 2026国家统计局仪征调查队招聘辅助调查员1人(江苏)考试参考试题及答案解析
- 2025广西南宁市兴宁区玉蟾路小学秋季学期工勤人员1人考试备考题库及答案解析
- 2026广西桂林市大河初级中学教师招聘1人笔试模拟试题及答案解析
- 2024年安徽绿海商务职业学院单招职业技能考试题库附答案解析
- 武汉市汉口重点初级中学招聘教师6人考试参考试题及答案解析
- 2025广西壮族自治区公务员考试常识判断专项练习题完整答案
- 2023年重庆文理学院单招职业适应性考试模拟测试卷附答案解析
- 2025年齐鲁工业大学辅导员考试笔试题库附答案
- 2023年青海省西宁市单招职业适应性测试题库附答案解析
- 《中华人民共和国危险化学品安全法》解读
- 2025年淮北市相山区公开招考村(社区)后备干部66人备考题库及一套完整答案详解
- 道路桥梁全寿命周期管理技术研究与成本优化研究毕业答辩汇报
- 2024司法考试卷一《法律职业道德》真题及答案
- 2026年江西冶金职业技术学院单招职业适应性测试题库及参考答案详解1套
- 智能生产线实训系统
- 静脉治疗专科护士理论考试题含答案
- 2025年农业农村部耕地质量和农田工程监督保护中心度面向社会公开招聘工作人员12人备考题库有答案详解
- 2026年及未来5年市场数据中国汽车车身电子控制行业全景评估及投资规划建议报告
- 水平定向钻施工组织设计方案(顶管组织设计)
- 房屋建筑和市政基础设施工程见证取样和送检工作指引(2025版)
评论
0/150
提交评论