
1.1仓储管理系统开发背景
1开发背景
在市场经济的大环境下,越来越多的人士逐渐认识到用计算机技术进行各类管理,交流的便捷,库存数据库管理系统是一个为适应当前各个行业对库存信息管理的迫切需求而设计开发的软件,经济和科学技术发展加速,各个领域对于计算机和科学技术的运用要求也越来越高,各个企业的竞争归根结底就是技术和管理的竞争,他们为了争取获得利益最大化,必须拥有一套完善的管理系统来管理本企业,以适应时代潮流和发展的需要。作为一家规模较大且经营时间较长的公司,随着信息处理量的快速放大,工作量越来越多,这就要求企业各方面的工作更全面、先进、高效。纯办公软件无论从准确度还是及时性都已无法满足公司需要。因此开发一个界面友好,易于操作的较为完善的库存管理系统来管理货品,对整个公司的所有物资的管理和查询等自动化处理变得十分重要。
2重点难点
库存管理对企业来说是一项繁琐复杂的工作,每天要处理大量的单据数据。为及时结清每笔业务,盘点库存和货物流动情况,保证企业生产用料以及货物安全,库管人员要花费大量人力物力和时间来做数据记录统计工作。
在世界发达国家,库存管理的计算机化水平已经很高了,尽管我国的生产企业在这方面也有了很强的意识和长足的进步,但仍存在这样、那样的一些问题。
表现之一:有的企业单位的库存管理部分目前仍为手工、半手工操作。从供应单位办理入库登记开始,到使用单位输领料出库手续为止,所有操作基本上都是由仓库管理人员笔写,加上算盘、计算器来完成。这不仅繁锁,效率低,而且缺乏库存管理的一些基本手段,如库存状况统计,查询经济订货量计算等,这给企业在一定程度上造成了管理上的落后,及经济利益上的损失。
表现之二为:有的单位的库存管理部已上了微机,但对微机的利用效率极低,有的在用它打游戏,有的仅把它当计算器或打字机来用。
表现之三为:有的企业单位既有了微机同时也有了库存管理软件,但硬件上去了,软件上不去。因为他们用的库存管理软件,大多为自己的工作人员及其他一些非专业人员所开发的简单的管理程序,很难称得上是“库存管理信息系统软件”这些程序的弱点多表现为:1) 系统开发时无科学的理论支持。2) 开发过程中调研不全面。3) 软件编写时模型不清晰完整。4) 所用开发工具落后。
1.2仓储管理系统目标
1目标概述
社会在不断进步,科学技术和管理也在迅速发展,这使得每个企业得到了前所未有的发展机遇,但同时也必须面对市场竞争的严重挑战,在日趋激烈的竞争环境下,企业要求生存、发展,就必须对企业进行科学的管理。而用计算机来处理企业内部信息间的流通和使用,既可以实现数据信息的共享,控制好数据的冗余度,并使企业有统一的管理,提高信息的利用率;又可以实现整体数据的结构化,表示大量数据相互间的多种联系,这样就可以大大的提高企业生产动作的效率。本次设计即是对商品在库存管理方面所做的分析,商品的大量出入仓库,使得每一个大型制造企业每年要花费的人力,投资,设施,费用去计划和控制存货,存货的周转率是标志着企业运营效率的重要指标,对企业的资产收益率起着重要的决定作用。所以近年来,企业管理者开始重视存货管理的重要性,存货管理主要是对商品的管理,它强调的是对商品货物的存储和传送,数量和状态变化信息的管理,其目标是在于降低库存成本,减少库存资金占用的同时,保证商品货物按计划流动,保证生产过程中的物料需求,保证生产的正常运行,从而使商品满足顾客和市场上的需求,库存控制就是要权衡库存费用(包括商品价值,订货费用,短缺等),使总费用最低。仓储管理系统的职能大体上包括订单管理、入库管理和出库管理。所以库存管理人员已经成为仓库的计划员,他们的工作也受到了高度的重视,他们和市场部门及生产部门协同工作并成为整个企业组织的重要组成部分。因此,商品货物信息必须具有高度的准确性,这就需要有好的管理系统,能简明的反映实际情况。以上所述就是本次仓储管理系统开发的依据和目标。
2主要功能
(1)基本信息管理,指对供应商信息,客户信息,货品信息的管理。
(2)基本信息查询管理,指对供应商信息,客户信息,货品信息的查询管理。
(3)退货管理,指对退货信息的管理。
(4)退货查询,指对退货信息的查询操作。
(5)采购管理,指对采购信息的管理操作。
(6)采购查询,指对采购信息的查询操作。
(7)销售管理,指对销售信息的管理操作。
(8)销售查询,指对销售信息的查询操作。
(9)短线管理,指对短线信息的管理操作。
(10)超储管理,指对超储信息的管理操作。
(11)报表管理,指对收入报表,支付报表,利润报表的管理操作。
(12)注册管理和退出系统。
2. 系统分析
2.1组织结构分析
从行政管理和职能分工角度来看,公司库存管理信息系统的组织机构如下图所示:
2.2业务流程分析
公司的库存管理信息系统的执行主要由部门完成,其采购部由采购人员组成,企划部由企划人员组成,财务部由财务人员组成,销售部由销售人员组成,物资部由仓库管理员和质检人员组成,运营部由运营人员组成。具体的业务是由多个部分组成,我把这些业务也都设计到我们的系统中了。普通的库存管理系统只要是统计好库中所要入库和出库的商品数量就可以了,我们不光进行了数量上的统计还进行了金额方面的统计,这样按月、季、年来进行财务方面的入货、出货,具体库存的分类金额统计,生成相应的分类报表,这些报表可以汇总到财务部,为财务核算提供资料。
由业务流程图可以了解到库存管理信息系统中具体每一方面的业务进展情况,每一个实体与系统逻辑处理之间的紧密联系,也可以看出系统在运作过程中所生成的文件资料报表信息的传递流程。下面是对业务流程的分析:
首先根据市场的调研由企划部制定出详细的需求报表,经采购部的审批后生成订货单报表,并存储订货单,将订货单报表提供给供应商,由供应商供货,所供货物经质检员检查后,生成质检报表并存储,将不合格货物制定出退货单提供给供应商,合格货物入库。
销售部根据客户订单制成发货通知单,通过库存信息查询具体库存,最终由仓库管理员填写提货单,并生成提货单报表。若收到客户退货申请,进行退货登记并生成退货单报表,所退货物重新入库,生成新的库存报表。根据订货单报表制作出本月购货单报表,根据提货单报表制作出本月销货单报表,由这两份报表进行利润计算生成利润表提交财务部。
业务流程图符号说明如下:
下面是仓储管理系统的数据流程图:
2.3 数据流程分析
2.3.1数据流程图
数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况;是在对系统调查阶段绘制的业务流程图进行分析的基础上,从系统的科学性、管理的合理性、实际运行的可行性角度出发,将信息处理功能和彼此之间的联系自顶向下、逐层分解,从逻辑上精确地描述新系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向。
数据流程图的基本符号说明如下:
进程处理
数据流 1
数据存储
外部实体
首先将系统的顶层图画出,说明了系统的总的处理功能和输入输出的数据流,包含的外部项有物资部、采购部、销售部、财务部,物资部查看货品信息、超储信息和短线信息的各项具体情况,由库存管理系统返回相关结果;采购部查看采购信息的录入、修改和查询,由系统返回各项结果;销售部查看货品销售信息和退货信息然后由系统返回结果;最后综合三方面的处理信息,系统将财务报表返回给财务部。
物资部是库存管理历史库存部分的分管部门,对于库存的各项货品的基本信息向系统发出录入的请求,系统判断后返回结果,物资部人员就可以在系统中录入基本货品的信息了;当然货品基本信息的处理还包括修改、删除、查询的处理;最后生成的货品信息表储存到货品资料中;
采购部是货品进入仓库的入口部分,每一个公司都会对市场进行总体的调查,分析市场需求,当收到具体的需求表时,采购部会把采购回来的货品进行处理,向系统发出新货品的录入请求,系统接受请求后进行录入处理,并更新货品存储数据库,同样的采购处理还有修改货品信息、查询货品信息的功能;最后生成的表储存到采购资料中;
销售部是货品从仓库流通到市场的关卡,当收货单位向我们发出提货通知时,系统接受请求,返回结果,执行出库模块,在数据处理过程中会出现两种情况:1、正常销货;2、退货;在我们发出的货品不合乎规格时,收货方发出退货请求,在判断退货请求合理后,系统进行退货处理,生成退货资料;
仓库都会有原始库存的管理,当采购回来的货品信息储存到数据库后,系统会对货品的数量进行综合的统计,如果超过了原定的存储量,系统会自动发出超储警报,生成超储信息传递给仓库管理员予以确认;当销售完货品时,原有的货品数量已经满足不了下一次的货品输出时,系统也会发出短线警报,生成短线信息,提醒仓库管理员应该即时补充库存;
在这几方面的配合下,系统会把多方面的信息汇总,进行财务分析处理,把本年度或者本季度的供货单位的供货金额进行统计,还有收货单位的收货金额经行统计,自动对账生成损益表,这个部分是系统财务处理的部分。
下面是数据流程图的顶层图:
顶层图
由顶层的数据流程图我们可以大致了解各部门之间的联系,下面按自顶向下、逐层分解的方法,画出下一层的数据流程图即一层图。
一层图中包括了基本信息管理,基本信息查询管理,采购管理,采购查询,销售管理,销售查询,退货管理,退货查询,报表管理,用户管理。
一层图
其中,基本信息查询又分为供应商信息查询,客户信息查询,货品信息查询。基本信息管理又分为
二层图
2.3.2数据字典
数据字典的作用是给数据流程图上的每个成分以定义和说明。库存管理系统的数据流程图加上数据字典,能给出一个具有详细的、具体的文字内容和图形的系统逻辑模型,形成一个完整的说明。
一:数据项
| 编号 | 名称 | 类型/长度 | 备注 |
| I01 | 货品编号 | C/6 | |
| I02 | 货品名称 | C/20 | |
| I03 | 货品所在位置 | C/20 | |
| I04 | 入库日期 | C/10 | |
| I05 | 供应商编码 | C/6 | |
| I06 | 供应商名称 | C/20 | |
| I07 | 供应商简称 | C/20 | |
| I08 | 供应商地址 | C/30 | |
| I09 | 银行编码 | C/6 | |
| I10 | 银行帐号 | C/10 | |
| I11 | 客户编码 | C/6 | |
| I12 | 客户名称 | C/20 | |
| I13 | 客户简称 | C/20 | |
| I14 | 客户地址 | C/30 | |
| I15 | 采购编码 | C/6 | |
| I16 | 采购日期 | C/10 | |
| I17 | 销售编码 | C/6 | |
| I18 | 销售日期 | C/10 | |
| I19 | 货品超储上限 | I | |
| I20 | 报警日期 | C/10 | |
| I21 | 超储数量 | I | |
| I22 | 货品短线底限 | I | |
| I23 | 短线数量 | I | |
| I24 | 货品数量 | I | |
| I25 | 退货编码 | C/6 | |
| I26 | 退货日期 | C/10 | |
| I27 | 用户编码 | C/6 | |
| I28 | 用户姓名 | C/20 | |
| I29 | 用户权限 | C/20 | |
| I30 | 用户密码 | C/6 | |
| I31 | 超储编号 | C/6 | |
| I32 | 短线编号 | C/6 | |
| I33 | 货品单价 | I | |
| I34 | 货品总金额 | I | |
| I35 | 报表时间 | C/10 | |
| I36 | 利润 | I |
| 编号 | 名称 | 组成 | 备注 |
| S01 | 供应商信息 | I05+I06+I07+I08+I09+I10 | |
| S02 | 客户信息 | I11+I12+I13+I14+I09+I10 | |
| S03 | 货品信息 | I01+I02+I03 | |
| S04 | 采购信息 | I15+I01+I16+I05 | |
| S05 | 销售信息 | I17+I01+I18+I11 | |
| S06 | 超储信息 | I31+I01+I02+I24+I19 | |
| S07 | 短线信息 | I32+I01+ I02+I24+I22 | |
| S08 | 超储报警信息 | I01+I02+I24+I21+I20 | |
| S09 | 短线报警信息 | I01+I02+I24+I23+I20 | |
| S10 | 货品库存信息 | I01+I02+I03+I05+I16+I24 | |
| S11 | 用户信息 | I27+I28+I29+I30 |
| 编号 | 名称 | 组成 | 来源 | 去出 | 备注 |
| F01 | 基本信息管理请求 | F02+F03+F04+F05+F06+F07 | 物资部 | 基本信息管理 | |
| F02 | 录入的供应商信息 | S01 | 物资部 | 供应商文件 | |
| F03 | 录入的客户信息 | S02 | 物资部 | 客户文件 | |
| F04 | 录入的货品信息 | S03 | 物资部 | 货品资料 | |
| F05 | 修改的供应商信息 | S01 | 物资部 | 供应商文件 | |
| F06 | 修改的客户信息 | S02 | 物资部 | 客户文件 | |
| F07 | 修改的货品信息 | S03 | 物资部 | 货品资料 | |
| F08 | 供应商查询信息 | I05 | 物资部 | 供应商文件 | |
| F09 | 供应商查询结果 | S01 | 供应商文件 | 物资部 | |
| F10 | 客户查询信息 | I11 | 物资部 | 客户文件 | |
| F11 | 客户查询结果 | S02 | 客户文件 | 物资部 | |
| F12 | 货品查询 | I01+I04 | 物资部 | 货品资料 | |
| F13 | 货品查询结果 | S03 | 货品资料 | 物资部 | |
| F14 | 采购查询信息 | I15 | 采购部 | 采购文件 | |
| F15 | 采购信息查询结果 | S04 | 采购文件 | 采购部 | |
| F16 | 销售查询信息 | I17 | 销售部 | 销售文件 | |
| F17 | 销售信息查询结果 | S05 | 销售文件 | 销售部 | |
| F18 | 采购信息管理请求 | F19 | 采购部 | 采购管理 | |
| F19 | 录入采购信息 | S04 | 采购部 | 采购文件 | |
| F20 | 录入采购信息 | S04 | 采购部 | 库存文件 | |
| F21 | 货品库存信息 | S10 | 货品库存文件 | 短线管理 | |
| F22 | 短线信息 | S07 | 短线文件 | 短线管理 | |
| F23 | 短线报警信息 | S09 | 短线管理 | 销售部 | |
| F24 | 货品库存信息 | S10 | 货品库存文件 | 超储管理 | |
| F25 | 超储信息 | S06 | 超储文件 | 超储管理 | |
| F26 | 超储报警信息 | S08 | 超储管理 | 采购部 | |
| F27 | 销售信息管理请求 | F28 | 销售部 | 销售管理 | |
| F28 | 录入销售信息 | S05 | 销售部 | 销售文件 | |
| F29 | 录入销售信息 | S05 | 销售部 | 库存文件 | |
| F30 | 退货请求信息 | S04+I25+I26 | 销售部 | 退货文件 | |
| F31 | 退货更新销售文件 | I15+I16 | 销售部 | 销售文件 | |
| F32 | 退货查询信息 | I25 | 销售部 | 退货文件 | |
| F33 | 退货查询结果 | S04+I25+I26 | 退货文件 | 销售部 | |
| F34 | 注册信息 | I27+I28+I30 | 用户 | 用户管理 | |
| F35 | 权限信息 | I29 | 用户管理 | 用户 | |
| F36 | 用户信息权限 | S11 | 用户管理 | 用户文件 | |
| F37 | 超储查询信息 | I31 | 物资部 | 超储文件 | |
| F38 | 超储查询结果 | S06 | 超储文件 | 物资部 | |
| F39 | 短线查询信息 | I32 | 物资部 | 短线文件 | |
| F40 | 短线查询结果 | S07 | 短线文件 | 物资部 | |
| F41 | 收入报表 | S06+I24+I33+I34+I35 | 收入报表管理 | 收入报表文件 | |
| F42 | 支付报表 | S06+I24+I33+I34+I35 | 支付报表管理 | 支付报表文件 | |
| F43 | 利润报表 | S06+I24+I33+I34+I35+I36 | 利润报表管理 | 利润报表文件 |
| 编号 | 名称 | 组成 | 关键字 | 备注 |
| D01 | 采购文件 | S04 | I15 | |
| D02 | 销售文件 | S05 | I17 | |
| D03 | 收入报表文件 | S06+I24+I33+I34+I35 | I35 | |
| D04 | 销售报表文件 | S06+I24+I33+I34+I35 | I35 | |
| D05 | 利润报表文件 | S06+I24+I33+I34+I35+I36 | I35 | |
| D06 | 退货文件 | S04+I25+I26 | I25 | |
| D07 | 用户文件 | S11 | I27 | |
| D08 | 供应商文件 | S01 | I05 | |
| D09 | 客户文件 | S02 | I11 | |
| D10 | 货品资料 | S03 | I01 | |
| D11 | 超储文件 | S06 | I31 | |
| D12 | 短线文件 | S07 | I32 | |
| D13 | 货品库存文件 | S10 | I01 |
3.1物流配置方案设计
系统运行环境设计为在WindowsXP以上平台运行,程序设计语言选择C#程序设计语言,数据库选择SQLServer数据库。
系统的硬件要求为英特尔的奔腾系列微型计算机,256M以上内存,80GB以上外存。
3.2系统总结构体设计
3.2.1:系统功能模块图
下面用HIPO技术将系统的数据流程图的各个处理模块进行逐层分解,确定系统的次结构关系,从而将上一阶段的新系统逻辑模型转变为物理模型。
HIPO图分层图用一个方块代表一个模块,方块内为模块的功能或模块名。模块之间的调用关系用联结两模块的直线表示。采用自顶向下扩展的方法先画综合性较强、层次较少的模块结构,然后再根据需要一步一步扩充,直到每个模块的处理功能和规模符合系统分解的原则。
3.2.2功能的详细说明
本系统大致分为11个功能模块:
(1)基本信息管理
本模块分为供应商录入管理,供应商修改管理,客户信息录入管理,客户信息修改管理,货品录入管理,货品修改管理。
供应商录入管理主要是指对供应商的基本信息的录入,包括供应商的名称,供应商编号,供应商地址,银行编码等供应商基本信息。
供应商修改管理主要是指对供应商的基本信息的修改,包括供应商的名称,供应商编号,供应商地址,银行编码等供应商基本信息。
客户信息的录入管理主要指对客户的基本信息的录入,包括客户的名称,客户编号,客户地址,银行编码等客户基本信息。
客户信息的修改管理主要指对客户的基本信息的修改,包括客户的名称,客户编号,客户地址,银行编码等客户基本信息。
货品信息的录入管理主要指对货品的基本信息的录入,包括货品的名称,货品编号,货品所在位置等基本信息。
货品信息的修改管理主要指对货品的基本信息的修改,包括货品的名称,货品编号,货品所在位置等基本信息。
(2)基本信息查询管理
本模块分为货品查询,供应商查询,客户查询,超储查询,短线查询五个模块。
货品查询主要是指货品信息的查询包括货品的名称,货品编号,货品所在位置等基本信息。
供应商查询主要是指供应商信息的查询,包括供应商的名称,供应商编号,供应商地址,银行编码等供应商基本信息。
客户查询主要是指客户信息的查询,包括客户的名称,客户编号,客户地址,银行编码等客户基本信息。
货品查询主要是指货品信息的查询,包括货品的名称,货品编号,货品所在位置等基本信息。
超储查询主要是指对超储货品信息的查询,包括货品编号,货品名称,货品存储上限,超储编号,库存数量。
短线查询主要是指对短线信息的查询,包括货品编号,货品名称,货品存储底线,短线编号,库存数量。
(3)销售查询
销售查询主要是指对销售信息的查询,包括销售编号,货品编号,货品名称,销售日期,销售数量等基本销售信息。
(4)销售查询
采购查询主要是指对采购信息的查询,包括采购编号,货品编号,货品名称,采购日期,采购数量等基本采购信息。
(5)采购管理
本模块分为采购处理和超储管理两个模块。
采购处理主要是指对采购货品信息的添加,包括采购编码,采购日期,货品名称,采购数量,供应商名称。
超储处理主要是指对超储信息的添加,包括货品编号,货品名称,货品存储上限,超储编号,库存数量。
(6)销售管理
本模块分为销售处理和短线管理两个模块。
销售处理主要是指对销售货品信息的添加,包括销售编码,销售日期,货品名称,销售数量,客户名称。
短线处理主要是指对短线信息的添加,包括货品编号,货品名称,货品存储底线,短线编号,库存数量。
(7)退货查询
退货查询主要是指对退货信息的查询,包括退货编码,退货日期,采购编码,采购日期,货品名称,采购数量,供应商名称。
(8)退货管理
退货管理主要是指对退货信息的录入管理,包括退货编码,退货日期,采购编码,采购日期,货品名称,采购数量,供应商名称。
(9)报表管理
本模块主要包括利润报表管理,收入报表管理,支付报表管理。
收入报表管理主要是指收入报表信息的录入,包括销售编号,货品编号,货品名称,销售日期,销售数量,货品单价,货品总金额,报表日期等报表信息。
支付报表管理主要是指支付报表信息的录入,包括采购编号,货品编号,货品名称,采购日期,采购数量,货品单价,货品总金额,报表日期等报表信息。
利润报表管理主要是指利润报表信息的录入,包括货品编号,货品名称,货品数量,货品单价,货品总金额,货品利润,报表日期等报表信息。
(10)注册管理
注册管理主要是指对用户信息的注册,包括用户编码,用户姓名,用户密码,用户权限。
(11)退出系统
此模块为退出系统。
3.3代码设计
本节主要是对数据库涉及到各表的关键字段进行编码,使它转变为计算机能够识别的字符。
对货品编号,仓库编号,均用顺序码。
货品编号的一般格式为5位,如00001,这个主要在数据库货品信息表中为一条货品编号为00001的记录,前两位是货品所在仓库的编号,后三位是根据货品类别的顺序编号而确定的编号如01表示该货品是第一个进入该仓库的,假如000是标准库,而01是标准库里的第一件货品的编号,这样也是为了仓储部的人员容易管理各个仓库里的货品,以后其它仓库的货品的编号就通过和这一样的编码类型。一方面便于对货品信息进行管理,另一方面也降低了处理货品信息的工作强度,实现了合理的人机功能划分。
000 01
仓库里的货品编号
仓库编号
对供应商,客户采用字母代码。
3.4数据库设计
数据库设计也是管理信息系统设计的重要组成部分,到目前为止几乎所有的管理信息系统中的数据都被组织成数据库的形式。具体设计过程如下:
第一步:需求分析
通过对系统得到的数据字典中的数据存储进行分析,我们得到如下要做记录信息的非形式描述:
货品的基本信息
库存货品的基本信息包括货品编号,货品名称,货品所在位置,货物数量,货品超储上限,货品短线底限;各种信息都会汇集到货品基本信息中,形成一个全方位的货品信息管理,每一种货品都有各种信息说明他的各种情况。
货品采购销售信息
采购信息主要包括货品编号,供应商编码,采购编码,采购日期,客户编码,销售编码,销售日期包括这些方面,详细登记货品采购销售时各项基本信息,及时更新数据库中的各项信息,使库管人员得到最及时地库存信息。
货品的库存信息
货品的历史库存信息包括货品编号,货品名称,货品所在位置,采购日期,货品数量,这些内容基本囊括了库存货品的全部信息,策划部可以根据这些库存来正确的判断企业的物资需求,来及时地补充货品和增添新品种的货品。
用户
经办人的项目主要有用户编码,用户姓名,用户权限,用户密码;
第二步: 实体联系的建模
通过需求分析,我们取得了记录信息的非形式描述,但这只是一个概要描述,很笼统,也很抽象,还需要做进一步的分析,以尽量消除数据的冗余,确定数据间正确的联系。通过分析,得到下列实体、属性和联系的清单,它们表示待建数据库的非形式描述:
1.实体集:超储信息,包含属性;货品编号,货品名称,货品超储上限,超储编号,货品数量,报警日期,超储数量。
2.实体集:短线信息, 包含属性:货品编号,货品名称,货品短线底限,货品数量,短线编号,报警日期,短线数量。
3.实体集:货品库存,包含属性:货品编号,货品名称,货品所在位置,采购日期,货品数量。
第三步: 建立E-R图
实体 属性
E-R图图例
具体的E-R图如下:
销售实体E-R图
采购实体E-R图
库存实体E-R图
实体与实体间的关系E-R图如下所示:
实体与实体间的关系E-R图
第四步:转换成关系模式
按照转换规则从E-R图产生数据库的关系模式集,转换过程如下:
1)对于实体类型,可将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。
2)对于联系类型,要视1:1,1:M和M:N三种不同情况做不同的处理。
3)若实体间的联系是1:1的,可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式中作为外键。
4)若实体间的联系是1:M的,则将一个实体所对应的那个主键放入多所对应的那个实体中作为外键,同时将联系的属性也作为多所对应的那个实体的属性。
5)若实体间的联系是M:N的,将产生新的关系模式,将该联系对应的两个实体的主键放入其同作为新关系模式的主键,两者也分别是该关系模式的外键,同时将联系的属性作为新关系模式的属性。
所以,按照上述转换规则,可得到下列关系模式:
供应商(供应商编码,供应商名称,供应商简称,供应商地址,银行编码,银行帐号)
客户信息(客户编码 ,客户名称,客户简称,客户地址)
货物信息(货品编号,货品名称,货品所在位置,货物数量)
采购信息(货品编号,供应商编码,采购编码,采购日期)
销售信息(货品编号,客户编码,销售编码,销售日期)
超储信息(货品编号,货品名称,货品超储上限,超储编号,货品数量)
短线信息(货品编号,货品名称,货品短线底限,货品数量,短线编号)
超储报警(货品编号,货品名称,报警日期,超储数量,货品数量)
短线报警(货品编号,货品名称,报警日期,短线数量,货品数量)
库存信息(货品编号,货品名称,货品所在位置,采购日期,货品数量)
用户信息(用户编码,用户姓名,用户权限,用户密码)
货品信息表
| 字段名 | 数据类型 | 字段长度 | 是否为空 |
| 货品编码 | 文本 | 5 | 否 |
| 货品名称 | 文本 | 10 | 否 |
| 货品所在位置 | 文本 | 10 | 否 |
| 货物数量 | 数字 | 长整型 | 否 |
| 字段名 | 数据类型 | 字段长度 | 必填字段 | 是否为空 |
| 货品编码 | 文本 | 5 | 否 | 否 |
| 货品名称 | 文本 | 10 | 否 | 否 |
| 货品数量 | 数字 | 长整型 | 否 | 否 |
| 存放仓库 | 文本 | 8 | 否 | 否 |
| 报警日期 | 日期/时间 | 否 | 否 | |
| 超储上限 | 数字 | 长整型 | 否 | 否 |
| 超储数量 | 数字 | 长整型 | 否 | 否 |
| 超储编号 | 数字 | 长整型 | 否 | 否 |
短线货品表
| 字段名 | 数据类型 | 字段长度 | 必填字段 | 是否为空 |
| 货品编码 | 文本 | 5 | 否 | 否 |
| 货品名称 | 文本 | 10 | 否 | 否 |
| 报警日期 | 日期/时间 | 否 | 否 | |
| 存放仓库 | 文本 | 8 | 否 | 否 |
| 短线底限 | 数字 | 长整型 | 否 | 否 |
| 短线数量 | 数字 | 长整型 | 否 | 否 |
| 短线编号 | 数字 | 长整型 | 否 | 否 |
| 字段名 | 数据类型 | 字段长度 | 必填字段 | 是否为空 |
| 货品编码 | 文本 | 5 | 否 | 否 |
| 货品名称 | 文本 | 20 | 否 | 否 |
| 存放仓库 | 文本 | 10 | 否 | 否 |
| 采购日期 | 日期/时间 | 否 | 否 | |
| 货品数量 | 数字 | 长整型 | 否 | 否 |
| 字段名 | 数据类型 | 字段长度 | 是否为空 |
| 用户编码 | 文本 | 10 | 否 |
| 用户姓名 | 文本 | 6 | 否 |
| 用户权限 | 文本 | 10 | 否 |
| 用户密码 | 文本 | 10 | 否 |
| 字段名 | 数据类型 | 字段长度 | 必填字段 | 是否为空 |
| 货品编码 | 文本 | 5 | 否 | 否 |
| 货品名称 | 文本 | 20 | 否 | 否 |
| 供应商编码 | 文本 | 10 | 否 | 否 |
| 客户编码 | 文本 | 10 | 否 | 否 |
| 采购编码 | 文本 | 10 | 否 | 否 |
| 销售编码 | 文本 | 10 | 否 | 否 |
| 采购日期 | 日期/时间 | 否 | 否 | |
| 销售日期 | 日期/时间 | 否 | 否 |
(1)基本信息
输入:供应商编号,供应商名称
输出:供应商信息 处理周期 每月多次
| 项目号 | 项目名称 | 长度 | 备注 |
| 1 | 供应商编码 | C/6 | |
| 2 | 供应商名称 | C/20 | |
| 3 | 供应商简称 | C/20 | |
| 4 | 供应商地址 | C/30 | |
| 5 | 银行编码 | C/6 | |
| 6 | 银行帐号 | C/10 |
输出:客户信息
| 项目号 | 项目名称 | 长度 | 备注 |
| 1 | 银行编码 | C/6 | |
| 2 | 银行帐号 | C/10 | |
| 3 | 客户编码 | C/6 | |
| 4 | 客户名称 | C/20 | |
| 5 | 客户简称 | C/20 | |
| 6 | 客户地址 | C/30 |
输出:货品信息
| 项目号 | 项目名称 | 长度 | 备注 |
| 1 | 货品编号 | C/6 | |
| 2 | 货品名称 | C/20 | |
| 3 | 货品所在位置 | C/20 |
输入:销售编码,客户编码
输出:销售信息
| 1 | 货品编号 | C/6 | |
| 2 | 客户编码 | C/6 | |
| 3 | 销售编码 | C/6 | |
| 4 | 销售日期 | C/10 |
输入:短线编号 货品短线底限
输出:短线信息
| 1 | 货品编号 | C/6 | |
| 2 | 货品名称 | C/20 | |
| 3 | 货品短线底限 | I | |
| 4 | 货品数量 | I | |
| 5 | 短线编号 | C/6 |
输入:超储编号 货品超储上限
输出:超储信息
| 1 | 货品编号 | C/6 | |
| 2 | 货品名称 | C/20 | |
| 3 | 货品超储上限 | I | |
| 4 | 货品数量 | I | |
| 5 | 超储编号 | C/6 |
输入:退货编码 货品编号
输出:退货信息
| 1 | 退货编码 | C/6 | |
| 2 | 退货日期 | C/10 | |
| 3 | 货品编号 | C/6 | |
| 4 | 供应商编码 | C/6 | |
| 5 | 采购编码 | C/6 | |
| 6 | 采购日期 | C/10 |
输入:货品名称 货品编号
输出:收入报表信息
| 1 | 货品编号 | C/6 | |
| 2 | 货品名称 | C/20 | |
| 3 | 货品超储上限 | I | |
| 4 | 货品数量 | I | |
| 5 | 超储编号 | C/6 | |
| 6 | 货品单价 | I | |
| 7 | 货品总金额 | I | |
| 8 | 报表时间 | C/10 |
输出:销售报表信息
| 1 | 货品编号 | C/6 | |
| 2 | 货品名称 | C/20 | |
| 3 | 货品超储上限 | I | |
| 4 | 货品数量 | I | |
| 5 | 超储编号 | C/6 | |
| 6 | 货品单价 | I | |
| 7 | 货品总金额 | I | |
| 8 | 报表时间 | C/10 |
输出:利润报表信息
| 1 | 货品编号 | C/6 | |
| 2 | 货品名称 | C/20 | |
| 3 | 货品超储上限 | I | |
| 4 | 货品数量 | I | |
| 5 | 超储编号 | C/6 | |
| 6 | 货品单价 | I | |
| 7 | 货品总金额 | I | |
| 8 | 报表时间 | C/10 | |
| 9 | 利润 | I |
输入:用户编码 用户姓名
输出:用户信息
| 1 | 用户编码 | C/6 | |
| 2 | 用户姓名 | C/20 | |
| 3 | 用户权限 | C/20 | |
| 4 | 用户密码 | C/6 |
输入:货品名称 货品编号
输出:货品库存信息
| 1 | 货品编号 | C/6 | |
| 2 | 货品名称 | C/20 | |
| 3 | 货品所在位置 | C/20 | |
| 4 | 供应商编码 | C/6 | |
| 5 | 采购日期 | C/10 | |
| 6 | 货品数量 | I |
输入:货品编号 采购编号
输出:采购信息
| 1 | 货品编号 | C/6 | |
| 2 | 供应商编码 | C/6 | |
| 3 | 采购编码 | C/6 | |
| 4 | 采购日期 | C/10 |
输入:货品编号 销售编码
输出:销售信息
| 1 | 货品编号 | C/6 | |
| 2 | 客户编码 | C/6 | |
| 3 | 销售编码 | C/6 | |
| 4 | 销售日期 | C/10 |
由于本系统采用模块化开发方法,所以在完成代码设计、输入输出设计后还要进行模块处理过程设计,以对每个程序模块中的详细处理过程设计,设计的工具有很多,这里采用的主要是程序流程图。
用户登陆程序流程图 录入信息流程图
4.系统实施
4.1程序设计
采用C#程序设计语言,具体设计不在此赘述。
4.2系统测试
系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法 为了发现缺陷并度量产品质量,按照系统的功能和性能需求进行的测试 一般使用黑盒测试技术 一般由的测试人员完成 对于模块之间交互性比较强的软件,还会有单独的集成测试,用来发现模块接口之间的错误。系统测试的对象是整个应用软件系统,包括需求分析、系统总体设计、详细设计各阶段的文档以及源程序。系统测试的目的是精心选取那些易于发生错误的测试数据,以十分挑剔的态度,找出软件中的错误,并改正错误。
测试原则:
1)由于这是个人力量开发的系统,所以测试的主要任务还是在开发人员身上,为避免这种自己开发自己测试的不足,可考虑请别人对系统进行试用。
2)设计测试方案时,不仅要包括确定的输入数据,而且应包括从系统功能出发,预期的测试结果,然后将运行结果与预期测试结果进行对比以发现有无错误。
3)测试用例不仅要包括合理有效的输入数据,还要包括无效的或不合理的输入数据。
4)不仅要检验软件是否做了该做的事,还要检查软件是否同时作了不该做的事。
5)保留测试用例,作为软件文档的组成部分。
测试计划:
第一步:模块测试。这一部分工作主要在做项目的过程中完成,以保证每个模块作为一个单元能够正确运行。
第二步:组装测试。在各个模块完成后,再将各相关模块连接起来,进行组合测试,以保证各单元模块能从整体上协调运行。
第三步:经过组装测试,软件已装配完毕,接下去进行确认测试,进一步检查软件是否达到预期的全部要求,这一阶段除对整个软件的功能、性能进行测试外,还要对配置进行审查,看构件的全部构成成分是否齐全,质量是否合乎要求。
第四步:经过确认测试后,软件已经测试完毕,然而软件只是信息系统的一个组成部分,还要与系统中的其分部分配套运行,所以最后要进行系统测试。就是将信息系统的所有组成部分包括软件、硬件、用户以及环境等综合在一起进行测试,以保证系统的各组成部分协调运行。系统测试要在系统的实际运行环境现场,在用户的直接参与下进行。
测试概述:
对于系统是否能完成预定的功能,我们对系统进行了如下的总体系统测试:
首先是系统的用户管理。其中对于设定用户我们选取了三组数据,分别为用户名空、密码空、以及输入密码不统一。通过三组数据的测试,已经达到我们预期功能。在出错情况下会出现对话框提示。用正确用户名及密码重新登陆,系统显示身份验证正确,安全进入。
接着是对三个主要模块库存管理、采购管理、销售管理的测试。这是整个库存管理系统的关键部分。具体测试参见设计小组中各人模块中的详细测试。
为使用户使用方便本系统添加了附项分类。经办人员管理中调用经办人员表,从这张表可以清楚出入库的经办人员名单,对于货品出入库后所产生的问题,能够迅速根据此表明确责任。
供货单位管理中调用了供货单位表,从此表可以看出入库货品中供货单位的情况。对于入库货品来源明确。也同时可以保证货品质量。进货单位管理中调用了进货单位表,从此表可以看出出库货品中进货单位的情况。对于出库货品去处明确。也同时可以保证货款及时回收。仓库信息管理中调用仓库信息表。从此表可以看到仓库分类,对于货品仓储地点清楚。
财务处理:为了更好的使用系统,并使财务部能够使用。本系统添加了打印功能。在该功能中可以打印报表:入库单、出库单、经办人以及损益表。
除此之外,为方便使用,还将常用的按钮放置在主窗体上。
为使系统数据安全,我们特意增添了数据备份、数据恢复功能。由数据备份功能,用户可以将数据备份在存储设备上。数据恢复功能是在系统出现错乱时,能恢复到之前的数据。
详细测试说明:
以下是对库存管理、采购管理和销售管理三大模块功能测试的具体说明。
库存管理模块下设有货品信息处理、货品库存、超储货品和短线货品等四方面的功能。进入货品信息管理下的货品信息,调出数据库中的货品信息表,由此可得到库中货品的具体信息情况;而货品维护则是当货品入库和货品出库发生时,货品基本信息库要在第一时间得到双方面的更新,这就是此窗体的功能;货品库存调用的是数据库中的货品库存表,从而我们可以得知库存货品的编码、名称、期初库存、本期出库、本期入库等具体库存货品信息,以便于查询和管理;超储货品调用了数据库中的超储货品表,从而可以得知是哪些货品超储了,货品的编码、名称、存放仓库等详细信息,以便于下次销售;短线货品是在货品销售后,若没有达到安全库存的要求,则要进行采购,从此窗体调出的短线货品表可以得知那些短线货品的具体信息,便于立即采购;以上是对库存管理模块各功能测试的具体说明。
测试用例:
测试工作不可能采用彻底的穷举测试方法,必须以尽量少的测试数据来发现尽可能多的错误,以达到最佳测试效果。根据本系统的实际情况,本系统的测试主要以实际模拟的方式进行。按照设计时做出的层次模块图,把它们连接起来,进行组装测试,以检验各模块能否协调运行。在这一阶段,又进行了大量的测试,测试仍以实际模拟的方式进行。我们设计了如下场景:
| 被测试模块 | 输入 | 预期的输出 | 实际输出 | 结论 |
| 货品超储信息查询 | 货品超储查询条件 | 货品超储情况 | 货品超储情况 | 两者输出一样 |
| 货品短线信息查询 | 货品短线查询条件 | 货品短线情况 | 货品短线情况 | 两者输出一样 |
| 货品基本信息录入 | 货品基本信息 | 更新后的货品基本信息 | 更新后的货品基本信息 | 两者输出一样 |
| 货品基本信息修改 | 要修改的信息 | 更新后的货品基本信息 | 更新后的货品基本信息 | 两者输出一样 |
| 货品基本信息查询 | 查询条件 | 货品基本信息情况 | 货品基本信息情况 | 两者输出一样 |
| 退货信息查询 | 查询条件 | 退货信息情况 | 退货信息情况 | 两者输出一样 |
| 财务处理 | 相关财务资料 | 财务报表 | 财务报表 | 两者输出一样 |
请参考相关文档。
