一个三层架构的进销存管理系统设计文档格式.docx
- 文档编号:22214612
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:21
- 大小:263.63KB
一个三层架构的进销存管理系统设计文档格式.docx
《一个三层架构的进销存管理系统设计文档格式.docx》由会员分享,可在线阅读,更多相关《一个三层架构的进销存管理系统设计文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
可靠性
数据库系统必须是安全可靠的分布式数据库系统,能确保数据的一致性和完整性,并使系统免受病毒感染,提供完善的数据备份方案和系统工程崩溃后的恢复手段.
可维护性
系统提供强有力的网络,数据库管理,维护和监测功能,能有效地进行网络系统和数据库系统的管理,维护,监视和故障恢复,使系统保持良好的性能,以方便用户的使用和维护.
可扩充性
应用软件实现模块相互独立,控制程序和执行程序相分离,具有高度的程序独立性和数据独立性,使机构和业务变化的影响至最小,方便了扩充和修改.
安全保密性
系统在系统级,数据库级和应用级提供三级权限控制功能,检查用户是否具有合法身份和权限,以防止非用户的入侵或数据的不合法使用,有效地保护数据的安全性。
应用系统的设计应充分地,合理地利用系统提供的多种机制和功能,把商业销售与管理系统建成一个高安全性的系统。
实用性
用户界面直观,友好,各类人员只需经过简单培训即可上手操作。
其他
考虑到大多数大件商品零售企业在企业信息化方面都有不同程度的投资,从保护现有投资的角度出发,客户端应该具有相对较低的平台要求。
1.2实现目标
销售数据的及时汇总
进销存业务全部电脑化,提高办公效率和工作质量。
强化以库存为中心的管理模式,严格控制库存量,降低运作成本。
以库存,销售,供货商信息为基础,动态地自动产生订货单,既降低库存,又避免缺货。
以库存,销售信息为基础,动态地自动产生调拨单,确保卖场不断货。
提供完善合理的供货商结算机制,解决结算难问题
及时提供多种统计报表,为管理人员经营决策提供可靠的分析数据。
严格的数据保密机制,所有用户均须根据权限进行有限的操作,提高系统安全性。
保护商业机密。
三层架构的进销存管理系统是一个采用三层客户机/服务器结构的网络应用程序。
具有如下优势:
Ø
数据库服务器集中管理企业数据,克服了单机应用的很多弊端。
系统的应用逻辑由应用程序服务器集中处理,可高效地访问数据库和管理客户连接,并有效地对客户端实施监测。
工作站的工作量较轻,可以利用已有PC机运行,保护了各企业已有的投资。
在程序设计技术方面,三层架构的进销存管理系统向读者展示了高级用户界面设计等Windows程序开发技术的应用,读者可以在阅读中充分体会。
二、系统概要设计
2.1平台要求
操作系统:
客户端和服务器端均可运行于Windows2000和WindowsXP平台的各个版本上。
开发工具:
含MFC支持的MicrosoftVisualStudio6.0。
SQLserver2000
2.2软件体系结构
本系统服务器,客户端都设计成单文档/视图结构。
服务器端包括一个主模块和通信模块,数据库访问模块,在主模块中处理系统业务,对通信模块和数据库访问模块的调度.
客户端的结构和服务器端结构类似。
客户端程序的各项功能都是这样添加到文档/视图结构的框架中的。
三、系统详细设计
3.1客户端详细设计
3.1.1客户端的功能
1.前台收银系统
✓支持多种形式经营模式
✓支持多种形式促销方式,如打折,变价,赠送等
✓支持商品组销售
✓支持会员制销售方式
✓商品,库存查询功能
✓单键商品定义功能
✓前台统计
✓用户权限管理、
✓营业员业绩考核
2.后台管理系统
✓业务子系统
✓维护子系统
✓统计子系统
✓供货商结算子系统
✓领导查询号子系统
3.1.2设计细节
(1)协议设计
本系统的协议设计按照逐级划分的办法编码,协议命令的每一位用一个阿拉伯数字表示该命令对应的类别。
编码规则如下:
第一位:
1表示发送,2表示接收
第二位:
大类的编号
第三位:
小类的编号
第四位:
小类的操作命令
第五位:
返回值
有关的协议命令的格式和流程如下。
◆采购及订货管理
自动订货管理
1120:
发送查询销售量大于一定数量和小于一定数量的商品及其现有存货量的请求。
2120:
返回商品名称,销售量,存货量,生产厂家等
缺货超储商品管理
1130:
发送查询存货量小于一定值和超过一定值的商品的请求。
2130:
返回商品名称,存货量。
◆入库、验收、出库及退货管理
入库:
1210:
发送存储供应商资料、商品分类资料、单品资料到“入库单”的请求。
2210:
返回存储成功或失败标志
1211:
发送查询入库单最大编号的请求
2211:
返回入库单最大编号
1212:
发送根据商品编号查询商品基本资料的请求
2212:
返回商品基本资料
验收:
1220:
发送查询最大验收单号请求
2220:
返回查询结果
1221:
发送查询入库单的请求
2221:
1222:
发送存储验间单的请求
2222:
返回存储成功或失败的请求
1223:
发送更新入库单的请求
2223:
返回更新成功或失败标志
出库:
1230:
发送查询出库单最大编号的请求
2230:
返回查询号结果
1232:
发送存储出库单的请求
2232:
1233:
发送查询送货或收款凭据的请求
2233:
退货:
1240:
发送“库房退货”请求,减少商品库存账
2240:
1241:
发送“商场退货”请求,减少商品库存账。
2241:
返回存储成功或失败标志。
1242:
发送“损坏商品退货出库”请求,减少损坏商品数量和金额。
2242:
正常销售
1311:
发送存储“送货单”请求
2311:
1312:
发送为送货和约查询“收款凭证”的请求
2312:
1313:
发送根据送货单号查询送货明细的请求
2313:
1314:
发送根据编号查询“收款凭证”字段给送货和约的请求
2314:
1315:
发送查询“送货单”的请求
2315:
1316:
发送修改“送货单”的请求
2316:
返回修改成功或失败标志
预定销售
1320:
发送存储“订货和约”请求
2320:
13201:
发送查询订货和约最大编号的请求
23201:
返回查得的最大编号值
1321:
发送查询“订货合约”部分字段的请求
2321:
返回结果字段
1322:
发送存储“收款凭证”请求
2322:
13221:
发送查询收款凭证最大编号的请求
23221:
返回查得的发送查询“送货单”的请求
1323:
发送查询“订货合约”全部字段的请求
2323:
13111:
发送查询送货单最大编号的请求
23111:
尾款收取
1331:
发送查询“收款凭证”的请求
2331:
1332:
发送修改收款凭证”的请求
2332:
提货
1340:
发送查询最大调拨单号的请求
2340:
1341:
发送存储“商品调拨单”的请求
2341:
销售情况查询
1350:
发送根据关键字模糊查询“送货单”请求
2350:
盘点管理
1410:
发送查询剩余商品的请求
2410:
1411:
2411:
报表查询
1510:
发送根据起止日期查询部门销售业绩的请求
2510:
1511:
发送根据起止日期查询营业员销售业绩的请求
2511:
1512:
发送根据起止日期查询供货员销售业绩的请求
2512:
1513:
发送根据起止日期查询号供货商销售业绩的请求
2513:
1514:
发送根据起止日期查询商品销售明细的请求
2514:
1515:
发送根据起止日期查询商品进货明细的请求
2515:
1516:
发送根据起止日期和排行关键字查询商品销售排行的请求
1517:
发送库存盘点请求
2517:
返回盘点结果
1518:
发送滞销商品统计请求
2518:
返回统计结果
1519:
发送预付统计请求
2519:
营业员管理
1610:
发送查询销售金额的请求
2610:
返回总金额的一定百分比
经理管理
1620:
发送查询负责的所有营业员销售金额的请求
2620:
安装工管理
1630:
发送查询安装数量的请求
2630:
返回结果
(2)模块主流程
客户端应用程序主模块的主要功能是构建应用程序框架、控制用户权限和管理通信块以及各个功能模块。
主模块的工作流程如下:
①客户端程序在服务器端启动后启动,程序首先弹出一个登录对话框,提示用户输登录名和登录密码,经服务器端确认后进入程序的运行界面。
②客户端应用程序是服务的主动请求方。
用户通过菜单或工具栏的快捷按钮激活功能模块,功能模块直接调用通信模块和服务器端联系。
③用户退出功能模块后,主模块重新获得程序的控制权,等待下一个功能模块被激活和操作,直到用户退出客户端程序。
(3)类设计
和服务器端程序类似,客户端程序主模块由MFC文档/视图结构的基本类组成。
CJXCApp类
CJXCApp类是客户端的应用程序类,派生自CwinApp,它主要负责维护程序状态和应用程序运行的消息循环。
CMainFrame类
CMainFrame类是客户端应用程序的主窗口类,它派生自CframeWnd,其主要作用是维持客户端的用户界面。
CJXCDoc类
CJXCDoc类是客户端主模块文档/视图结构的文档类,它派生自COleServerDoc类,主要负责处理来自服务器端的命令和一些主菜单命令。
CJXCView类.
CJXCView类是客户端主模块文档/视图结构的视图类,它派生自Cview类,其主要作用是处理各种和客户端程序功能密切相关的菜单命令,这些菜单命令大体上分为功能模块操作和报表打印命令两大类。
下图是客户端主模块类图:
图2客户端主模块类图
(4).通信模块设计
和服务器端通信模块类似,客户端通信模块包括一个数据包格式的表示类Cmessage和一个通信套接字类CSerViceSocket,CMessage类和服务器端的CMessage类完全相同,且CSerViceSocket类也具有和服务器端的CServiceSoclcet类似的声明形式。
主模块和其它各个功能模块需要和服务器通信时,都直接调用本模块。
(5)商品基本资料管理模块设计
本模块在功能上包括商品基本资料管理和供货商资料管理两部分。
(1)表设计
商品基本资料管理模块是查询、增删、更新商品和供货商等资料的一个客户端功能模块。
该模块主要是对数据库中"
商品基本资料"
表和"
供货商资料"
表的操作。
图3是系统数据库中这两个表的设计。
图3:
“商品基本资料”表和“供货商资料”表的设计
(2)模块主流程
商品基本资料管理和供货商资料管理有着类似的工作流程。
因此,这里以商品基本资料为例说明:
客户端用户在程序主菜单中触发商品基本资料管理的菜单命令,由主模块的视图类CJXCView处理,处理函数创建商品基本资料管理对话框类的实例,然后以模态对话框的方式显示。
商品基本资料管理对话框在初始化时向服务器发送请求所有"
表的记录的命令,并将返回的结果显示到对话框中。
商品基本资料管理对话框中有关于查询、添加、删除、更新记录的按钮以及查询条件的编辑框,不同的按钮触发相应的操作:
添加、删除操作只有在更新操作执行后才有效。
用户按下退出按钮,对话框结束,客户端主模块重新获得程序的控制权。
基本资料管理模块是由若干个对话框类组成的,其中最主要的两个是CDlgJBZL-SP和CDlgJBEd-JGZK类,它们分别表示商品基本资料管理和供货商资料管理主界面的对话框。
3.2服务器端详细设计
3.2.1服务器端的功能
3.2.2设计细节
(1)功能概述
服务器端的功能包括:
接受并验证客户端连接,并维持连接的正确性。
接收用户请求,解释协议命令,接着执行相应的数据库操作,并将操作结果返回到客户端。
监视客户端的活动和数据库操作。
(2)业务逻辑主模块设计
1)模块主流程
在总体设计部分,定义了主模块的功能是处理业务逻辑和调度通信模块及数据库访问|模块。
由于服务器端的被动服务的特性,可以确定如下的模块主流程:
①服务器端必须先于客户端启动,并在己知的端口上提供服务。
②通信模块在收到来自客户端的命令后通知主模块,业务逻辑主模块解析命令的类型|和操作参数,如果需要访问数据库,接着传入操作参数,并调用数据库访问模块的方法执行相应的数据库操作,接着返回操作结果到主模块。
③业务逻辑主模块将操作结果格式化成系统协议的数据包格式,接着调用通信模块的方法发送操作结果回客户端。
2)类设计
业务逻辑主模块的类事实上就是文档/视图结构中的基本类,它们共同构建了服务器端应用程序的框架。
cserverApp类
cserverApp类是服务器端的应用程序类,派生自CwinApp,它主要负责维护程序状态和应用程序运行的消息循环。
由于进销存系统服务器端需要访问数据库,因此,在cserverApp中还包括COM/DCOM子系统的初始化工作。
CMainFrame类是服务器端应用程序的主窗口类,它派生自CframeWnd,主要保存了服务器的配置信息。
CServerDoc类
CServerDoc类是主模块的文档类,它派生自Cdocument类,主模块的主要功能—处理业务逻辑和调度通信模块的功能都在CServerDoc类中实现。
CserverView类
CServerView类是主模块的视图类。
CServerView类有两个作用,一是显示客户端操作,二是调度数据库访问模块,向CServerDoc类提供数据库调用接口。
下图是服务器端主模块类图:
图2服务器端主模块类图:
3)通信模块设计
(1)数据包格式、..
本例的进销存管理系统设计了一种和上一章的远程控制系统不同的数据包格式。
数据包的格式是:
[命令号][字符串数据][发送方][接收方]
数据包各个部分间用特定的分隔符隔开:
字符串数据如果包含有多个信息,也使用分隔符分隔。
如果数据包表示数据库查询操作的结果,那么字符串数据中要包含行数和列数。
例如,如果设计了分隔符是"
#@"
在根据关键字查询商品基本资料表时,如果只有一条记录符合要求,那么返回的数据应该具有如下的格式:
2712#@[行数]#@[列数]#@[商品编码]#@[名称]#@[规格]#@[单位]#@[型号]#@[供货商]#@[生产厂商]#@[进价]#@[售价]#@[最小库存]#@[商品分类]#@[商品编码]#@·
-·
#@发送方#@接收方。
返回多条记录时的格式也是类似的,只须把记录格式化为用分隔符连接的形式再用分隔符连接多条记录即可。
cserverDoc:
:
Stringseg()函数的作用就是把这样的数据包分解成若
干条基本信息。
采取这样的字符串表示数据,其优点在于所有的协议命令都具有统一的数据包格式,便于统一处理和协议扩充。
(2)类设计
通信模块要解决的问题包括数据包的表示和数据包的收发。
因此,本模块由一个表示数据包内容的类CMessage和套接字类CAcceptsockert、CServicesocket组成。
Cmessage类
Cmessage类封装了本系统通信数据包的表示,它派生自Cobject。
CAcceptSocket类
CAcceptSocket类是通信模块的监听套接字类,它派生自Csocket类,是服务器端的监听套接字类。
CServerSocket类
CServerSocket类是通信模块的数据套接字/服务套接字类,它派生自CSocket类。
4)数据库访问模块设计
数据库访问模块是服务器端一个相当重要的模块,它为主模块提供了系统数据库访问接口,这样的访问接口有两个好处:
一是有利于代码的复用:
二是可以充分控制对数据库的访问方法。
数据库访问模块的工作流程如下:
①服务器端启动时,直接建立和数据库的连接。
..
②有客户端的数据包到达时,通信模块回调主模块的业务逻辑处理函数,主模块在业务逻辑处理函数中调用数据库访问模块函数(如果需要的话)。
③服务器端结束时,程序终止和系统数据库的连接。
四、软件实现过程
使用MicrosoftVisualStudio6.0进行开发,开发过程严格按照概要设计和详细设计进行。
4.1客户端窗体
连接服务器端界面如图4.1.
图4.1
进入主界面如图4.2
图4.2
4.2服务器端设置窗体
服务器端设置窗体如图4.3所示。
图4.3
五、软件测试过程
软件测试是保证软件质量的关键步骤,是对软件规格说明、设计和编码的最后复审,其工件量约占总工作量40%以上(对于人命关天的情况,测试相当于其它部分总成本的3~5倍)。
5.1运行环境测试
5.1.1任务
测试软件对的可移植行,对运行环境的要求。
5.1.2测试过程
在Windows98/me/2000/NT/XP等版本进行安装运行,测试软件的每项功能。
5.1.3测试结果
软件可在Windows98/me/2000/NT/XP环境下安装运行,每项功能运行正常。
5.1.4评价
软件对Windows环境支持良好,但是不能跨平台使用。
可移植行不太好。
5.2软件功能测试
5.2.1任务
对软件的功能进行逐个测试,发现每个功能中的问题。
5.2.2测试过程
采用实际数据进行测试,让用户参与。
让用户对软件的每个功能进行使用,录入实际数据。
5.2.3测试结果
基本上符合要求,个别功能需要修改。
5.2.4评价
软件没有严重设计问题和技术问题。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一个 三层 架构 进销存 管理 系统 设计