转载自http://www.uml.org.cn/oobject/201403061.asp
[TOC]
1. 问题描述
1.1需求描述
超市采购系统需要实现对超市采购的管理,系统需要方便易用,辅助超市员工对超市的采购的信息进行管理,提高超市员工的工作效率,进而提高超市的收益。
本系统实现对进货单的添加、修改、删除、查询功能,对每一笔进货单都进行备案,存入数据库中,可以按货单号和进货日期多种方式进行查询,对数据库中无用的进货单执行删除操作。对每一笔进货单中的货物的详细信息进行记载,将货物的详细信息载入数据库中,方便查询和对货物信息的管理。本系统还需要对柜存信息实行管理,是超市工作人员能随时查看柜存情况,及时提醒采购员对缺货商品的采购。
1.2开发环境描述
本系统采用Rational Rose做UML建模,使用Microsoft公司的Visulbasic6.做为前台开放工具,使用Microsoft公司的ACCESS做为数据库的开发环境,在WINOWS XP操作系统环境下进行开发并测试。
1.3可行性研究
1.3.1经济可行性研究
本系统需要超市负担的费用主要是本系统的开发及维护费用,对超市人员使用本系统的培训费用,以及本系统开放完成后,由于工作方式的改变增加的其他开支。
本系统实现的收益主要来自减少采购管理中的人力,提高工作效率产生的额外的效益。
1.3.2技术可行性
本系统属于小型管理软件,对开发环境的要求和运行的环境的要求不苛刻,需要运行计算机的最低配置:
2. 用例模型及分析类图的描述
2.1用例模型本系统以管理员对数据库的操作为主,实现用例图如下:
图2-1用例视图
根据对用例的分析,做出用例图如上,管理员主要利用本系统,实现对进货信息和对柜存信息的管理。系统采用VB环境开发,实现C/S结构,管理员对各个信息的修改都直接写入数据库,把前台界面和数据库分开存放,提高了程序的可扩展性。
2.2类图
分析系统,本系统主要包含数据库类和操作类。
数据库类包括有进货信息数据库、物品信息数据库、柜存信息数据库。其中进货信息数据库和物品信息数据库是人工创建,手动输入数据,然后存入库中;柜存信息数据库是根据接到的进货单的信息,自动生成的数据库,其中主要保存着货物的数量,查询该数据库可以让管理员及时提醒采购员对缺货商品进行采购。
操作类主要是对数据库的操作,包括有添加进货单、添加物品详细信息两个操作。其中添加进货单可以对进货信息数据库执行添加,修改,删除的操作,添加物品信息可以?物品信息数据库执行添加修改删除的操作。
操作类还包含对数据的查询操作,查询进货单查询是对进货信息数据库的查询,可以根据货单号和进货时间两个关键字进行查询;物品信息查询是对物品信息数据库执行的查询操作,主要以物品编号和物品名称做为关键字进行查询;归村信息查询功能是对货物在活柜上的存放情况进行查询。
分析以上各个类,作出类图如下:
图2-2类图
3. 详细设计描述
3.1系统功能描述
分析系统的用例后,列出系统的功能模块,设计功能模块的E-R图:
图4-3查询进货信息图2
3.2系统时序图
根据以上功能模块,设计顺序图,管理员的每一步操作都是对数据库的修改,程序顺序图如下:
3.2.1管理员登录
管理员登录界面主要是验证登录信息,当输入的登录信息不正确时,提示用户并且重新返回登录界面。
3.2.2管理员添加进货单
管理员添加进货单的操作,管理员填写好相应的进货单项之后,系统自动把进货单信息写入数据库中,修改了进货单数据库中的内容,同时数据库也自动的修改了柜存信息中的内容。
图3-3管理员添加进货单顺序图
3.2.3管理员修改进货单
管理员通过修改操作对进货单信息中的表项进行修改,然后更新数据库,同时数据库会自动修改柜存信息中的相应项。
图3-4管理员修改进货单顺序图
3.2.4管理员删除进货单
管理员执行删除操作删除进货信息中的信息,更新进货信息中的表单,同时数据库自动修改柜存信息中的相应项。
图3-5管理员删除进货单顺序图
3.2.5管理员添加物品信息
管理员添加物品信息的操作,管理员填写好相应的物品信息之后,系统自动把物品信息写入数据库中,修改了物品信息数据库中的内容。
图3-6管理员添加物品信息顺序图
3.2.6管理员修改物品信息
管理员通过修改操作对物品信息中的表项进行修改,然后更新数据库。
图3-7管理员修改物品信息顺序图
3.2.7管理员删除物品信息
管理员执行删除操作删除进货信息中的信息,更新进货信息中的表单
图3-8管理员删除物品信息顺序图
3.2.8管理员查询进货单
管理员按照要求字段,输入查询信息,系统自动访问数据库,显示出管理员需要查询的信息。
图3-9管理员查询进货单顺序图
3.2.9管理员查询物品信息
管理员按照要求字段,输入查询信息,系统自动访问数据库,显示出管理员需要查询的信息。
图3-10管理员查询物品信息顺序图
3.2.10管理员查询柜存信息
管理员按照要求字段,输入查询信息,系统自动访问数据库,显示出管理员需要查询的信息。
图3-11管理员查询柜存信息顺序图
3.3状态图
状态图主要描述了系统在各个状态之间的转换关系。在系统登陆成功之后,通过点击系统管理界面上的各个菜单跳转到各个不同的子功能中,添加、修改、删除操作都是对数据库中的数据进行操作,然后更新数据库中的表单,查询操作主要是访问数据库中的数据,然后把查询结果显示出来,各个操作执行完成之后都可以直接返回到系统操作界面,执行其他操作。
图3-12状态图
3.4设计数据库
本系统各个环节都是对数据库的操作,应该设计一个合理的数据库,分析该系统,为数 据库创建三张表格:
3.4.1进货信息
包含有进货时间,进货单号,产品号,产品名称,客户号,产品数量,产品单价几个字段
图3-13进货信息数据表
3.4.2物品信息
包含有产品号,产品名称,产品类型,产品重量,产品单位,产品日期,产品价格几个字段。
图3-14物品信息数据表
3.4.3柜存信息 包含产品号,产品名称,产品数量几个字段。
图3-15柜存信息数据表
3.5用户界面设计
3.5.1登录界面设计
图3-16登录界面
输入设计:在用户名文本框中,输入管理员ID。 在密码框中,输入管理员密码。
3.5.2系统界面的设计
图3-17系统界面
3.5.3添加进货单界面的设计
输入设计:直接在空白表单的相应项里输入相应数据,进货单号、产品号、客户号中输入 编号,进货时间栏中输入时间,在产品数量中输入整数,产品单价中输入浮点小数。 输出设计:执行相应操作后,输出的结果直接显示在表单中。
图3-18添加进货单界面
3.5.4添加物品新系界面的设计
图3-19添加物品新系界面
输入设计:在产品号中输入编号,产品重量和产品单价栏中输入浮点小数,在产品名称、 食品类别和产品单价栏中输入文本,在生产日期栏中输入时间。
输出设计:执行相应操作后,输出的结果直接显示在表单中。
3.5.5查询进货单界面的设计
图3-20查询进货单界面
输入设计:在进货单后的文本框中输入编号,在进货时间文本框中输入时间。
输出设计:点击查询后,在上面的表但中显示出查询的结果,按数据表中的表项内容显示。
3.5.6查询柜存信息界面的设计
图3-21查询柜存信息界面?
输入设计:在产品编号后的文本框中输入编号,在产品名称后的文本框中输入文本。?输出设计:在库存数量后的文本框中显示正整数。
3.5.7查询物品详细信息界面的设计
图3-22查询物品详细信息界面
输入设计:在产品号后的文本框中输入编号,在货物名称后饿文本框中输入文本。
输出设计:点击查询后,在上面的表但中显示出查询的结果,按数据表中的表项内容显示。
本系统的界面采用VB程序语言编写,使用ACCESS做数据库。界面设计好了之后,使用DATA控件将界面和数据库进行连接,在界面上直接对数据库内的数据进行修改和操作。
4. 给出软件的测试方法和测试结果
4.1登录系统测试
系统设置默认管理员ID是ADMIN,默认密码是123456,正确输入后会跳转到系统界面,如果输入错误,例如输入密码为111111,则出现如图情况:
图4-1登录系统测试
4.2添加进货单
在3.5.3添加进货信息界面的表单中输入进货单信息,点击“添加”按扭,就把输入表单的数据写入了数据库中。
删除进货信息时,只要选中表单中的一行,点击“删除”按扭,就可以把数据库中的信息删除。
4.3添加物品信息
在3.5.4添加物品信息界面的表单中输入物品详细信息,然后点击“添加”按扭,就把输入在表单中的数据写入了数据库。
删除物品信息时,只要选中表单中的一行,点击“删除”按扭,就可以把数据库中的信息删除。
4.4查询进货信息
在查询进货信息界面,按货单号查询,输入货单号点击“查询”按扭,在上面的表
但汇总酒会显示希望查询的信息。输入0001,然后点击查询,会显示页面如下:
图4-2查询进货信息图1
输入2005-5-20,然后点击查询,会显示页面如下:
图4-3查询进货信息图2
4.5查询物品信息
物品信息可以根据“产品号”和“货物名称”两个字段进行查询?输入0110,然后点击查询会显示如下页面:?
图4-4查询物品信息图1
输入恰恰香瓜子,然后点击查询会显示如下页面:
图4-5查询物品信息图2
4.6查询柜存信息
柜存信息的查询是对货物的柜存数量进行查询,可以从货物名称和物品编号两个字段进行查询。?当输入0110,然后点击查询会显示如下页面:
图4-6查询柜存信息图1
当输入恰恰香瓜子,然后点击查询,会显示如下页面:
图4-7查询柜存信息图2
5. 总结心得
本系统使用VB开发,和ACCESS数据库能有很好的连接。
利用UML建模的方法很快就能分析出本程序的各个要点出来,利用VB开发好界面以后,然后为各个控件分别编写代码,完成整个程序。
但是我觉得这个程序中还有很多不完善的地方。在这个程序中查询功能实际上只是对数据库的一次搜索,没有实现模糊查询的功能,无法对部分字符匹配做查询。还有对数据库的备份方面做的不够好,该系统无法自动对数据库进行备份,必须有管理员手动备份数据库,这不能保证数据库的即时备份。应该设计数据库每当数据增加一定量后就自动对数据库进行依次备份,这样可以最大下怒的保证数据库安全。在系统的日志方面做的也有缺陷,应该在系统的后台创建日志文件,对每次的管理员登录,以及登录后的各种行为写人日志文件,以便在系统出现问题或者数据出现异常情况的时候查看日志文件可以发现问题的根源。由于是采用的ACCESS数据库开发该系统,当超市的业务增大是,ACCESS数据库可能不能胜任,需要升级到SQL?Server这样的大中型数据库。
本程序的实现主要是添加、修改、删除的操作,程序中有大量代码重复的地方,主要是连接数据库和使用SQL语言对数据库进行修改,在VB中使用DATA控件将VB的强台界面与数据库相连,即可对数据库进行响应的操作了。
本程序在设计时碰到一个难点,在查询柜存信息的时候,需要查询物品的柜存数量,但是在进货单信息中,可能对同一种类的商品有多次的进货,查询的时候需要知道的是这种货物的总的数量,而不是每比进货单中这种货物的进货量,那么就需要对该类商品的数量做出统计,直接使用SQL语言查询是无法实现该功能的。通过在网上查找到的资料,发现可以获取一个表单中的各个列中的数值,于是想到,先建立一个表单,这个只用存放进货单里同一种商品的进货数量,然后利用DataGrid1.Text函数,获取表但中的数值,先把表但的第一项附给一个空文本,然后此文本中饿值依次与表但后面几项值相加,直到把所有表项都加完为止,那么最后该文本中的值则是该种类物品的数量的统计值。
通过本次课程设计让我对UML建模有了进一步的认识,让我了解了使用UML建模对开发程序有很大的帮助,在UML模型中能清晰的反映出程序的所有行为,为程序的开发以及维护,查错都有很大的帮助。