演化原型法的基本思想是,通过概略的系统分析与设计,在先进的IS开发工具的支持下,快速地实现一个能反映用户当前最迫切需求的原型,然后与用户一起运行并逐步改进,基本满足这个需求后,再逐步扩充其功能。
因此,首先要把系统划分为相对独立的而又容易把握的若干个小系统,并选定其中一个作为第一期工程,然后在首轮开发中快速地得到其初始原型。
本节以数据库(DB)设计为中心,使用Visual FoxPro(VFP)6.0,对某商业企业以其仓库的进、销、存信息系统为第一期工程,讨论用原型法开发首轮原型的具体过程。
这里把系统分析与设计做得比较规范,叙述也是直线推进,是为使学生把握全貌。
原型法的各轮开发都是只要做概略分析与设计就动手实现,并且是不断反复而非直线推进的。
讨论中假定读者已经学过并熟悉VFP6.0。
因此,有关VFP6.0的知识和程序设计这里不再重复,不熟悉的读者可参见有关的书籍。
11.4.1 系统首轮概要分析仓库进、销、存(进货、销售、存储)管理是商业企业经营管理中的核心环节,也是一个企业能否取得效益的关键。
建立仓库进、销、存信息系统的目的是使企业能做到合理进货、及时销售、库存量最小、周转灵活、没有积压,使企业取得最好的经济效益。
一. 需求初步分析1.组织结构概况通过调查研究,得出该商业企业的组织机构图如图11.3所示,图中只简单地给出与仓库进、销、存业务相关部分的结构层次图。
供应部负责进货业务;销售部负责销售业务;仓储部下有三个仓库,负责存储各类商品。
图11.3某商业企业仓库的进、销、存组织机构图2.业务流程概况业务流程分析简述如下:J.进货管理接受供应部门交来的进货单,审查,有错退回,无错则与已到货物核对,单物不符则退回,相符则把货物入库,在库存台帐各相关帐页中登入进货栏并修改库存栏。
P.盘存管理接受仓储部门交来的盘存通知,审查,有错退回,无错则依库存台帐盘点货物,填写盘存明细表,按处理意见,登记库存台帐相应货物页,对使现存量少于最小存量者,登记进货要求单,交供应部门。
T.提货管理接受销售部门交来的订货单,审查,有错退回,无错则与库存台帐核对,缺货项填缺货单交销售部门,并登记进货要求单交供应部门;有货项则填入提货单,交经办人提货,并登记库存台帐相应货物页的提货栏,修改其库存栏;当现存量少于最小存量时,登记进货要求单交供应部门。
从系统业务流程分析可得到系统的业务流程图如图11.4所示。
图11.4进销存信息系统的现状业务流程图3.信息需求调查与分析从业务流程图中找出相关单证、票据、帐簿、报表、文档等原始资料,从中抽出反映信息需求的相关事项。
下面以本系统中最有代表性的库存台帐为例(图11.5)。
为节省篇幅,其它单证帐表,如进货单、提货单、盘存明细表、仓库月报表等就不一一列举。
从原始资料中抽出各栏目名称等系统要保存使用的相关事项,去掉组合项、导出项、泛指项得到基本项(不能在系统内生成、来自外部的项),就是要组织数据库基表中的信息。
列举如下:货号,货名,型号,规格,计量单位;部门号,部门名,部门类型,位置,电话;员工号,姓名,性别,生日,职务,住址,电话;客户号,客户名,地址,信誉度,联系人,邮编,电话;供应商号,户名,信誉度,联系人,邮编,电话;货物所存库号,库存价,期初存量,现存量,最低存量,最高存量,采购批量;员工所属部门号,聘用日期;部门主管工号,任职日期;提货单号,日期,时间,经手员工号,提货客户号,所提货号,售价,提货数量;进货单号,日期,时间,经手员工号,进供供应商号,所进货号,进价,供应数量;盘存单号,日期,盘存库号,清点员,对帐员,审查员,所盘货号,实存量,处理意见。
图11.5库存台帐格式示意图4.处理功能现状调查分析在以数据库为中心的原型法中,按业务流程图划分功能,通常只要展开一两层就可以了。
本例划分为进货、提货、盘存3个子系统,功能层次图如图11.6所示。
图11.6 进销存信息系统现状功能层次简图二、数据库初始概念设计由系统的基本数据项,按照由基本项构思E-R图的四条原则,并根据系统的基本功能要求,导出三个初始局部E-R子图,并改进,然后综合成系统全局E-R草图,再经过优化,消除重复的实体与重复的联系;或者引进所需的联系体,把多元联系转换为多个二元联系,最终得到系统的全局E-R图。
1.初始局部E-R图的构思由基本数据项,得到提货、进货、盘存三个子E-R图如下(实体的属性为列出):图11.7进销存信息系统初始局部E-R图2.初始局部E-R图的改进从图11.7按从ERD导出一般关系的四条原则,得到提货关系框架(图11.8)。
图11.8 提货关系框架从提货关系表中可以发现两个问题,一是主键(复合主键)太复杂,不便于查询;二是当客户一次提取多种货物时,日期、时间、客户号、经手员工号必定多次重复。
因此,提货关系模式不是BCNF(BCNF是修正的第三范式,有时也称为扩充的第三范式)。
究其原因是:当考虑多次提货时,客户、经手员工、货物之间是多对多联系;但是当考虑客户的一次提货(提取多种货物时)与经手员工、客户之间是对一的联系,而与货物依然是对多联系。
解决的方法是在提货E-R子图中引进联系虚体(简称联系体)提货单。
它描述的是提货联系,本质上不是实体,只是为了化简提货这个复杂的多元联系而引进的一个中间替身。
从而把提货转化为员工与提货单之间的经手联系(一对多)、客户与提货单之间的购买联系(一对多)、提货单与货物之间的所提联系(多对多)等三个二元联系。
引进联系体后的提货E-R子图如图11.9。
从图11.9可得提货单关系与所提货物关系(图11.10),这两个关系模式都属于BCNF。
对进货E-R子图也可作同样的处理,可得完全类似的结果。
同理,对盘存E-R子图作同样的处理,可得图11.11。
3.综合成全局E-R图员工实体与人事管理共享,在人事管理中员工与部门联系,而仓库是仓储部属下的子部门,所以在全局E-R图中应引入部门实体。
供应商与作为购买商的客户是属性相同的实体,可以看成是客户实体的两个子类。
全局E-R图的基本结构如图11.12。
图11.9 引进联系体后的提货E-R子图图11.10提货单关系与所提货物关系图11.11引进联系体盘存单后的盘存ER子图图11.12进销存信息系统全局E-R图的基本结构图11.13进销存信息系统引进联系体后的全局E-R图三、数据存储组织的初步考虑依据四条原则从全局ERD导出一般关系框架,作为数据存储组织的初步考虑,可以检验ERD 的构思是否规范,可为以数据库为中心进行业务流程再造提供依据。
本例从引进联系体的ER图(图11.13)导出系统的10个一般关系模型(二维表)如图11.14。
这些关系模式都是3NF 或BCNF,可见该ERD的规范化程度是满足基本结构要求的。
图11.14从引进联系体的E-R图导出的一般关系模型四、以数据库为中心的进销存业务流程再造假设用原型法开发仓库进销存业务系统为起点系统,其它相关业务都还是手工作业,它们与本系统的信息交换还是用纸介质。
为相关业务计算机化并联网后系统集成需要,本系统所有接收送出的票据帐表都存入临时文件;当然,系统渐进集成时要从更大范围考虑数据库重构和业务流程再造。
作为以数据库设计为中心的原型法起点的业务系统开发中的业务流程再造,很难完全着眼于企业经营链的全局,只能尽可能考虑全局,重点放在本系统业务的降低成本和提高收益上。
本案例主要考虑三个方面:一是以数据库为中心,尽可能用计算机处理业务,集成业务流程,减少业务环节,提高效率与质量;二是及时向相关部门公布进销存明细和统计分析结果,以便及时进货,适时销售,合理库存,提高效益;三是建立并及时改进市场模型和库存模型,提高其运行频率,有效控制进货和库存,提高资金运用效率,创造经济效益。
为了尽快研制出实用原型,首轮主要考虑第一方面,适当兼顾第二方面。
人工流程有些环节是隐含模糊的,计算机处理流程则不能这样。
下面是再造的进货管理、提货管理、盘存管理、统计分析等业务流程。
J.进货管理接受供应部门提供的进货单,人工审查,有错退回。
无错则加上实到货量栏,输入进货临时文件,按进单户名查客户关系,找到则把客户号填入进货临时文件,否则人机结合在临时文件中确定客户号,把新客户信息登录到客户关系。
从进货临时文件打印出相应的进货单,核对所到货,货单不符合记录实到货量,打印有错进货表,交供应部门;相符的则入库并登记到进货单关系及所进货关系,若是新货则登记货物信息到货物关系,否则只修改货物关系中的现存量和库存价。
P.盘存管理仓储部门按计划编制盘存通知,人工审查,有错修改,无错则输入盘存临时文件。
从货物关系按盘存通知中库号查找相应的货物记录,加上清点工号、对帐工号、审查工号、实存量、盘盈量、处理意见等空白字段,组成盘存明细记录到盘存临时文件中,打印出盘存单及其盘存明细表,据此盘点库存,记录上述空白字段的值,输入到盘存临时文件中并打印盘存结果。
依据盘存临时文件登记盘存单关系及所盘货物关系;按实存量和处理意见修改货物关系中的现存量。
若修改后的现存量低于最小存量,则调用“进货要求生成”,生成进货要求记录,存入进货要求临时文件,定期打印进货要求单交供应部门。
T.提货管理接受销售部门订货单,人工审查,有错退回,无错则输入订货临时文件。
按订单户名查客户关系,找到则把客户号填入进货临时文件,否则人机结合在临时文件中确定客户号,把新客户信息登录到客户关系。
与货物关系核对,若是新货,则把现存量为0的新货记录登记到货物关系;把(订货数量—货物关系中的现存量)登记到订货临时文件中的缺货量字段中。
缺货量>0的为缺货项,登记到缺货临时文件,打印出缺货单交销售部门,并调用进货要求生成,登记进货要求记录到进货要求临时文件。
有货的订货项目则登记到提货单关系及所提货物关系,打印出提货单,交仓管员发货,并登记经手工号,输入提货单关系。
按(现存量=现存量—提货数量)修改货物关系的现存量,若改后现存量低于最小存量则调用进货要求生成,生成进货要求记录,存入进货要求临时文件。
定期打印进货要求单交供应部门。
F.统计分析可以通过统计分析编制多种图表,支持相关决策。
这里仅考虑进销存明细帐、月报表,盘存明细表,进货统计表,提货统计表,库存金额降序排列的前20%种(即A类)货物的库存金额与提货金额对比直方图等。
这里给出新的提货业务流程图(图11.15),其它的业务流程图就留作练习。
五、系统首轮实现的功能分析系统首期除了要实现进货管理、盘存管理、提货管理、统计分析等基本业务,还要实现系统初始化、查询等常规功能。
对系统本身的管理维护功能是常规的,原型法首期往往也不急于实现,这里不讨论。
本例系统首期功能层次图如图11.16。
图11.16本例系统首期功能层次图11.4.2 系统首轮概略设计一、概略的总体设计1. 一般关系模型设计:根据系统分析中构思的以数据库为中心的新业务流程图和新功能层次图,回头修改ERD,然后再依据从ERD导出一般关系模型的四条原则得到一组关系框架。