1、商业销售系统建模商业销售系统建模商业销售系统次分析设计是针对一个商业销售系统中的几个主要业务进行建模。我们的设计对象是一个商场的商业销售系统。商场下设有业务部、仓库、若干柜台组及收银台等,业务部负责组织进货、保管及销售,仓库对购进的商品进行保管,而柜台则是进行商品零售的场所,收银台作为大厦财务出纳的收款点负责零售商品的收款。1. 现有系统描述该商场现有部门如下:家用电器经理部、家用电器大件柜、家用电器小件柜;五金交电经理部、小五金柜、电气材料柜;钟表眼镜经理部、钟表柜、眼镜柜;文化用品经理部、文化用品一柜、文化用品二柜;体育用品经理部、体育器材柜、体育服装柜;服装用品经理部、妇女服装柜、儿童服
2、装柜、男子服装柜;大件商品仓库,服装用品仓库、精细商品仓库、普通商品仓库。该商场的业务目前全部为手工处理,具体业务描述如下:业务部从有关厂家和批发商订购商品;订购商品到货时,由业务部的制单人填写商品入库通知单,通知仓库进行行验收入库;仓库保管员按入库单对到货进行验收入库;无论验收情况如何,都要填写验收单,通知业务部及财务进行做账;柜台需要库存商品上柜销售时,也由业务部的制单人填写商品调拨单分别通知仓库和柜台组;仓库按调拨单发货;柜台按调拨单提货到柜台;商品零售时,由售货员填写交款单给顾客,顾客拿交款单到收银台交钱,收款员按收款单的金额收款,然后在交款单上盖收款章,顾客凭盖章后的交款单到柜台取走
3、商品;而对批发业务来说,顾客直接到业务部进行洽谈,业务部的业务人员根据洽谈结果开售货单,顾客拿售货单到财务部出纳处交款,出纳收款后在售货单各联上加盖收款章;顾客交款后直接到仓库提货;仓库发货时按售货单发货,并将售货单的提货联留底。2. 对新系统要求2.1 经理业务部业务管理业务处理要求:要求新系统能支持各经理业务部通过开具入库单、调拨单、调价单商品批发销售单以及库存调整单来对商品流通各个环节进行管理和控制。数据处理要求:入库单、调拨单、调价单、销售单以及库存调整单都是属于原始凭证,在新系统中应保存这些原始凭证的如下基本信息:凭证号、凭证名称、填制单位、接受单位、日期、制表人;以及,如下明细信息
4、:入库编号、单位、数量、单价、摘要。2.2 仓库业务管理业务处理要求:商品的入库、出库、盘点及查询。商品入库主要是采购商品入库,入库时须按入库通知单对实物进行验收,并填写验收单。出库有两种情况:一种是按商品调拨单将商品调入柜台进行销售,另一种是批发销售,顾客拿提货联来提货。盘点主要是按库存账对实物进行盘查,查出各种实物的盈亏情况。商品入库、出库都要对库存账进行登记,盘点要做出盘点报表数据处理要求:仓库的商品库存账记录了仓库各种商品的库存数量及资金占用量等库存状态,应能反映如下信息:入库编号、商品名称、单位、数量、单价、入库日期、库位库存进出流水账记录仓库商品进出情况,这是一个随时间增加的流水账
5、,应能反映如下信息:凭证编号、进出(借贷)、数量、单位、单价、入库编号、商品名称、日期、摘要。入库验收单记录入库验收情况,应能反映如下信息:验收单编号、商品名称、入库编号、入库数量、验收数量、验收质量、单位、单价、入库单编号、验收日期、验收人、摘要。盘点记录表记录盘点情况,应能反映如下信息:盘点日期、入库编号、商品名称、账面数量、实际盈亏数量、单位、单价、摘要。2.3 柜台业务管理新系统应对以下业务进行处理:商品调柜处理、商品销售及柜台商品的统计查询。商品调入柜台进行销售时,要按商品调拨单从仓库中领取商品,同时要登记柜台商品帐。销售商品时先开售货单给顾客,顾客凭售货单去收银台交款后再将已盏收款
6、章的售货单交给售货员并取走商品,售货员须将已售出的货物进行登记。此外,查询主要查询柜台商品情况及销售情况。统计主要统计每天的销售情况,毛利润等信息。数据处理要求:1. 柜台商品的登记应该的两本账;一本是反映柜台商品状态的,另一本是反映柜台商品变动情况的流水账。2. 用于记录柜台现有各商品存货的情况的柜台商品账,应能反映如下信息:入库编号、商品名称、单位、数量、进价。3. 用于记录柜台商品的入库情况的柜台商品入库流水账,应能反映如下信息:凭证编号、入库编号、商品名称、数量、单价、单位、日期、摘要。4. 用于记录柜台商品的销售库情况的柜台商品销售流水账,应能反映如下信息:凭证编号、入库编号、商品名
7、称、销售数量、销售单价、单位、单位毛利、日期、摘要。5. 售货数据:售货单编号、入库编号、商品名称、数量、售价、单位、有效否、柜台名称、日期。6. 商品价格数据:商品名称、单位、价格、实行日期。2.4 收银台管理收银台的主要工作就是按售货单收取现金。系统应提供以下业务处理功能:收款员联机管理、收款登记,收款查询、销售日报表及现金日报表的生成打印。数据处理要求:1. 收款台账,记录了收款流水账,应能反映如下信息:售货单编号、日期、柜台、入库编号、商品名称、数量、单位、单价、收款员、付款方式(现金、支票)。2. 销售日报,记录了每天统计的销售情况,应能反映如下信息:日期、柜台号、入库编号、商品编号
8、、数量、单位、金额。3. 新系统至少应记录收款员如下一些信息:收款员姓名、口令、有效否、登记日期。2.5 商品三级账管理商品三级账管理的主要有:根据仓库验收单在商品账中登记入库记录,填调拨单时须检查库存是否有相应的商品,调拨单填完后要自动对商品账中的库存和柜台商品变动进行登记,根据销售日报表对柜台销售商品登账。数据处理要求:1. 商品存货账,记录商场备部门的存货情况:入库编号、商品名称、存货单位名称、单位、数量、单价。2. 商品变动流水账,记录商场各部门的存货的变动情况:入库编号、商品名称、科目编号、借贷、单位、数量,单价、日期、凭证号、摘要。3. 商品销售流水账,记录商品的销售情况:入库编号
9、、商品名称、销售部门、销售数量、单位、售价、进价、毛利、日期。2.6 编码要求新系统对诸如部门、人员、商品、厂家、各种凭证等分别制定一套简单易行的编码方案,以方便管理和使用。商场方面还要求该系统应是一个多层体系结构的分布式系统。系统设计说明本文档设计中,是把以上部门按功能把他们进行抽象成为四个管理系统。下图是Use Case Diagram View中对系统的一个描述。它虽然是个Use Case Diagram,但里面的内容只是Package,不包含具体Use Case Diagram的actor和Use Case.图1。系统的结构图单据管理系统设计说明Use Case应该是过程、操作而非一个
10、实体的对象。如图,Use Case 的所有对象(商品入库单、库存入库单、商品调整单、商品批发销售单、商品调拨单)都是实实在在存在的实体。它们不是一个过程,亦不是一个操作。因而Use Case Diagram如下: 图二、单据管理系统用例图。在单据管理系统中要求新系统能支持各经理业务部通过开具入库单、调拨单、调价单商品批发销售单以及库存调整单来对商品流通各个环节进行管理和控制。在画Sequence Diagram中,为了很好的对类和操作作很好的映射,提高Sequence Diagram的实际用途,采用了“二步法”来做。如下图,先是对用户所关心的东西作一个描述性的说明。在这里面,不对具体的实体对象
11、任何的描象,也不对类进行映射。图三、“二步法”画Sequence Diagram (1)图四、“二步法”画Sequence Diagram (2)图五、“二步法”画Sequence Diagram (3)和Sequence Diagram一样,Collaboration Diagram 也显示使用案例中特定的流程。Sequence Diagram与Collaboration Diagram中的信息相同,但Collaboration Diagram显示了不同的流程视图。在Collaboration Diagram中,更容易看出对象之间的关系。Collaboration Diagram表示协作,在
12、Collaboration Diagram中包含了一组由对象扮演的角色,以及一个特定的上下文中的关系。对最终得出的Sequence Diagram作转化,成为如图六所示的Collaboration Diagram:图六、Sequence Diagram 转为Collaboration DiagramC1ass框图显示系统中的类与类包,提供系统组件及其相互关系的静态图形。类是包装信息和行为的项目。习惯上,我们把系统的信息放在数据库”一方,行为放在应用程序一方。面向对象方法的特点之就是将一小组息和影响信息的行为连接在起。我们将一小组信息和影响信息的行为连接在一起,包装成类。一个系统通常要生成几个C
13、Iass框图。有些显示类及其关系的子集,有些显示类的子集,包括属性和操作,还有些显尔类包及包之间的关系。接着上面的这个制单例子,对图八中所映射的类添加一些必要的属性和操作,并反相关的类分类后打包为三个包:图七、把类分类后打包图八、包“界面”下属类图九、包“后台数据库”下属类图十、包“中间件”下属类 当然,也有对整个单据管理系统所有类及类之间关系的描述:图十一、单据管理系统类及类之间的关系组件是代码的物理模块。组件可以包括代码闸和运行文件。例如,如果使用C+,则每个个.CPP和.H文件是单独的组件。编译代码后生成的EXE文件也是组件。生成代码之前,将每个文件映射相应组件。在C+中,每个类映射两个
14、组件,一个表示类的.CPP义件,个表示.H的文件。组件生成之后,加进Component Dragram中,并画出其间关系:图十二、组件包之间的关系图十三、组件之间的关系其它功能模块设计上面已对单据管理系统的设计进行了详细说明。从技术角度来说,仓库管理系统、销售管理系统、账目管理系统的实现过程、步骤和方法都是一样的。为了避免不必要的冗余,以下部份直接给出图例,不再加于累述。图十四、仓库管理系统用例图图十五、销售管理系统用例图图一六、帐目管理系统用例图图一七、报表管理顺序图商业销售系统类图汇总图一八、后台数据库类图汇总图一九、界面类图汇总图二、中间件类图汇总图二一、商业销售系统类图汇总图二二、商业
15、销售系统类图汇总组件图汇总尚未解决的问题1若此高场有进出口贸易,刚对进出口商品的管理没有细分。 2界面的完全实现。 3高级管理者与普通用户拥有优先的权利没有体现出来。附录一、数据库建表代码use mastergoif exists (select * from dbo.sysdatabases where name = vendition) drop database venditionGOcreate database venditiongouse venditiongoif exists (select * from dbo.sysobjects where id = object_id(
16、Ndbo.TravelService_Loan) and OBJECTPROPERTY(id, NZreceiverInfo) = 1)drop table dbo.TravelService_LoanGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.TravelService_Loan) and OBJECTPROPERTY(id, NDorder) = 1)drop table dbo.TravelService_LoanGOif exists (select * from dbo.sysobjects
17、where id = object_id(Ndbo.TravelService_Loan) and OBJECTPROPERTY(id, NCcheckOrder) = 1)drop table dbo.TravelService_LoanGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.TravelService_Loan) and OBJECTPROPERTY(id, NZgoodDailyOrder) = 1)drop table dbo.TravelService_LoanGOif exists (s
18、elect * from dbo.sysobjects where id = object_id(Ndbo.TravelService_Loan) and OBJECTPROPERTY(id, NSgainTotal) = 1)drop table dbo.TravelService_LoanGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.TravelService_Loan) and OBJECTPROPERTY(id, NCstorageInfo) = 1)drop table dbo.TravelSe
19、rvice_LoanGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.TravelService_Loan) and OBJECTPROPERTY(id, NCinStorage) = 1)drop table dbo.TravelService_LoanGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.TravelService_Loan) and OBJECTPROPERTY(id, NCprepareOrder) =
20、1)drop table dbo.TravelService_LoanGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.TravelService_Loan) and OBJECTPROPERTY(id, NZmoneyDailyOrder) = 1)drop table dbo.TravelService_LoanGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.TravelService_Loan) and OBJECT
21、PROPERTY(id, NSpayforOrder) = 1)drop table dbo.TravelService_LoanGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.TravelService_Loan) and OBJECTPROPERTY(id, NSpayforOrder) = 1)drop table dbo.TravelService_LoanGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.Trav
22、elService_Loan) and OBJECTPROPERTY(id, NSgoodsTotal) = 1)drop table dbo.TravelService_LoanGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.TravelService_Loan) and OBJECTPROPERTY(id, NDorderItem) = 1)drop table dbo.TravelService_LoanGOif exists (select * from dbo.sysobjects where i
23、d = object_id(Ndbo.TravelService_Loan) and OBJECTPROPERTY(id, NCpickUpGoodsOrder) = 1)drop table dbo.TravelService_LoanGOCREATE TABLE ZreceiverInfo ( ReceiverID INTEGER NOT NULL, ReceiverName VARCHAR ( 255 ) NOT NULL, ReceiverPassW SMALLINT NOT NULL, Gender SMALLINT NOT NULL, ApplyDate datetime NOT
24、NULL, LastLoginDate datetime NOT NULL, CounterID SMALLINT NOT NULL, Others SMALLINT NOT NULL, ZreceiverInfo_ID INTEGER NOT NULL, CONSTRAINT PK_ZreceiverInfo11 PRIMARY KEY (ZreceiverInfo_ID) );CREATE TABLE Dorder ( OrderNumber INTEGER NOT NULL, OrderName VARCHAR ( 255 ) NOT NULL, OrderFillUnit VARCHA
25、R ( 255 ) NOT NULL, OrderRequreUnit VARCHAR ( 255 ) NOT NULL, OrderDate datetime NOT NULL, OrderFillDate datetime NOT NULL, OrderLister VARCHAR ( 255 ) NOT NULL, Dorder_ID INTEGER NOT NULL, CONSTRAINT PK_Dorder4 PRIMARY KEY (Dorder_ID) );CREATE TABLE CcheckOrder ( CheckNumber INTEGER NOT NULL, Check
26、Person VARCHAR ( 255 ) NOT NULL, CheckResult SMALLINT NOT NULL, COL_0 SMALLINT NOT NULL, Dorder_ID INTEGER NOT NULL, GoodName VARCHAR ( 255 ) NOT NULL, InStorageOrderID INTEGER NOT NULL, CONSTRAINT PK_CcheckOrder21 PRIMARY KEY (Dorder_ID) );CREATE TABLE ZgoodDailyOrder ( ZmoneyDailyOrder_ID INTEGER,
27、 SgoodsTotal_ID INTEGER, Dorder_ID INTEGER NOT NULL, CONSTRAINT PK_ZgoodDailyOrder24 PRIMARY KEY (Dorder_ID) );CREATE TABLE SgainTotal ( Date datetime NOT NULL, GoodOrderID INTEGER NOT NULL, OrderId INTEGER NOT NULL, SgainTotal_ID INTEGER NOT NULL, TotalCash SMALLINT NOT NULL, CONSTRAINT PK_SgainTot
28、al18 PRIMARY KEY (SgainTotal_ID) );CREATE TABLE CstorageInfo ( GoodPlace VARCHAR ( 255 ) NOT NULL, Dorder_ID INTEGER NOT NULL, CinStorage_Dorder_ID INTEGER NOT NULL, CONSTRAINT PK_CstorageInfo19 PRIMARY KEY (Dorder_ID) );CREATE TABLE CinStorage ( InStorageTime SMALLINT NOT NULL, CpickUpGoodsOrder_ID
29、 INTEGER, Dorder_ID INTEGER NOT NULL, CONSTRAINT PK_CinStorage20 PRIMARY KEY (Dorder_ID) );CREATE TABLE CprepareOrder ( Dorder_ID INTEGER NOT NULL, CONSTRAINT PK_CprepareOrder22 PRIMARY KEY (Dorder_ID) );CREATE TABLE ZmoneyDailyOrder ( OrderId INTEGER NOT NULL, TotalCash DOUBLE PRECISION NOT NULL, D
30、ate datetime NOT NULL, GoodOrderId INTEGER NOT NULL, ZmoneyDailyOrder_ID INTEGER NOT NULL, SgainTotal_ID INTEGER, CONSTRAINT PK_ZmoneyDailyOrder14 PRIMARY KEY (ZmoneyDailyOrder_ID) );CREATE TABLE SpayforOrder ( Dorder_ID INTEGER NOT NULL, CONSTRAINT PK_SpayforOrder25 PRIMARY KEY (Dorder_ID) );CREATE TABLE ZgatheringOrder ( PayForm VARCHAR ( 255 ) NOT NULL, CounterID INTEGER NOT NULL, ZmoneyDailyOrder_ID INTEGER, Dorder_ID INTEGER NOT NULL, CONSTRAINT PK_ZgatheringOrder23 PRIMARY KEY (Dorder_ID) );CREATE TABLE SgoodsTotal (
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1