1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,1-1,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,1-1,练习:请对,超市进销存,系统进行UML建模,系统需满足基本需求以下:,1、销售:,售货员接收用户订购,输入用户购置商品,计算总价,用户付款并接收清单,售货员保留用户购置商品统计
2、2、库存:,库存管理员天天进行盘点,库存管理员天天发觉库存商品有损坏时,及时到相关部门报损,供给商商品到货时,超市人员首先检验商品是否合格,并将合格商品入库处理,经理、统计分析员依据需要进行相关商品含糊查询或详细查询,3、订货:,订货员用新商品供给商信息更新供给商数据库信息,订货员统计库存商品是否低于库存下限,然后制作订货单,4、经理:,经理在促销期间或节日期间,注明相关商品促销价格和伎俩,经理按市场情况经常变动商品价格,第1页,练习:请对,超市进销存,系统进行UML建模,绘出整个用例图,绘出几个用例次序图,绘出基于上述次序图得出类图,给出“订货单”对象状态图,第2页,分析1,1、销售:,售
3、货员接收用户订购,,输入,用户购置商品,,计算,总价,用户,付款,并接收清单,售货员,保留,用户购置商品统计,1、销售:,1.售货员接收用户订购,2.售货员,输入,用户购置商品,3.售货员,计算,总价,4.用户,付款,5.用户接收清单,6.售货员,保留,用户购置商品统计,第3页,问题:,1.接收用户订购是什么意思?就是打开相关业务处理界面,开始一次新业务,2.,输入,商品是能够屡次重复,3.,计算,总价系统计算,4.用户,付款,系统接收或确认付款,5.用户接收清单清单哪里来?应该是前面某一步骤中打印出来(付款后),第4页,分析1,销售:,1.打开业务界面,开始一次新销售;,2.,输入,用户购置
4、商品(可重复屡次),3.,计算,总价,4.接收,付款,5.打印清单并交给用户,6.,保留,购置统计?,第5页,1、销售,本场景中,可能,比较特殊步骤:,1.付款,系统会支持什么样支付方式未知,假如只收现金,则系统中只需要售货员确认已收款,假如支持刷卡,系统需要有支付接口,详细情况,2.保留购置统计,第6页,1、销售,可能特殊步骤,与重复步骤一样,可用包含关系列出:,第7页,1、销售,本场景中可能存在实体类有:,商品,:应该会有ID、名称、单价等属性,总价:应该是清单和购置统计一项数据。,清单:,给用户看纸,购置统计,:与,清单,内容应该是一致(是一致,不是一样),第8页,最终止果:商品,购置统
5、计,第9页,2、库存,需求描述:,库存管理员,天天进行,盘点,库存管理员,天天,发觉,库存商品有损坏时,及时到相关部门报损,供给商商品到货时,,超市人员,首先,检验,商品是否合格,并将合格商品,入库,处理,经理,、统计分析员依据需要进行相关商品含糊,查询,或详细查询,提到业务:,1.盘点(库存管理员),盘点时,假如发觉有损坏则报损,2.入库(超市人员?也可能就是库存管理员),入库时先检验商品是否合格,3.查询(经理、统计分析员),以上三种业务相对独立,第10页,2、库存,第11页,3、订货,需求描述:,订货员,用新商品供给商信息更新供给商数据库信息,订货员,统计库存商品是否低于库存下限,然后制
6、作订货单,提到业务:,1.更新供给商数据库,2.订货,条件:某商品库存低于下限,制作订货单是一个步骤,应该会有选择供给商这个步骤,以上两种业务即使相关联,但相对独立,第12页,3、订货,相关类:供给商数据库,订货单,第13页,4、统计,需求描述:,经理,在促销期间或节日期间,注明相关商品促销价格和伎俩,经理,按市场情况经常变动商品价格,提到业务:,1.促销:,条件:特殊时期,2.调整商品价格,条件:依据市场变动,促销有可能也是调整商品价格一个,不过还有个“伎俩”不详,所以暂按二者是不一样业务来处理,第14页,4、统计,结合刚才已定义查询业务:,第15页,初步类图,第16页,“销售”场景时序,已
7、知参加者:售货员,已知实体:商品,购置统计,需要结构一个边界类:销售UI,可输入商品,可计算总价,可确认用户已付款,可打印清单,第17页,“销售”场景时序,第18页,“销售”场景时序,假如要求边界类与控制类分离,则:,再增加一个控制类;,读取商品信息和保留购置统计这两项要求不应由UI直接向实体类提出,而是向控制类提出,由控制类再调用实体类操作。,第19页,“销售”场景时序,第20页,“订货”场景时序,相关业务:,条件:某商品库存低于下限即需要先,统计各商品数量,制作订货单,是一个步骤,应该会有,选择供给商,这个步骤,已知参加者:订货员,已知实体:供给商DB,订货单,商品,第21页,问题:库存数
8、量,怎么得知某商品库存数量?,最简单有效方法:“商品”类增加一个“数量”属性;,“商品”类还应该有一个“统计库存”操作,功效是把库存数低于某数量商品都找出来。,第22页,问题:库存数量,哪些业务与此属性相关?,订货时,要参考此属性;,货到后,,入库,,要对应增加数量;,每日,盘点,,发觉损坏,要对应降低数量;,销售,时,售出商品要对应降低数量;,以上可总结为同一操作!-更新库存(),第23页,问题:库存数量,哪些业务与此属性相关?,入库,,,盘点,,,销售,这三个用例都要用到“更新库存”操作,可考虑提取出一个子用例。,销售,时,售出商品要对应降低数量,所以,前面时序图中,应该加上此项操作。,第
9、24页,更新用例图,第25页,更新“销售”时序图,第26页,回到“订货”场景,已知参加者:订货员,已知实体:供给商DB,订货单,商品,需要结构一个边界类:订货UI,可,要求,统计商品库存,并列出库存低于下限商品;,对满足条件商品,能够,要求,制作(,创建,)订货单;,针对商品可列出供给商,供订货员选择。,可结构一个控制类,来跟相关实体类打交道。,第27页,“订货”场景时序,第28页,研究一下“订货单”状态,对象-订货单:,订货时,创建,,创建后到提交给供货商之间,都能够改变(更换供货商,更改订货数量等),提交,后,等候所订商品到货;,到货,后,检验并办理入库手续;,入库完成后,该订单完成。,待
10、定状态,等货状态,入库中,已完成,第29页,研究一下“订货单”状态,对象-订货单:,订货时,创建,,创建后到提交给供货商之间,都能够改变(更换供货商,更改订货数量等),提交,后,等候所订商品到货;,到货,后,检验并办理入库手续;,入库完成后,该订单完成。,当然,入库时若发觉有问题,可能还会有个“投诉状态”或是“退货状态”之类,第30页,“订货单”,所以,“订货单”类应该有一个“状态”属性,第31页,相关活动,第32页,加上对象流,第33页,此时类图,第34页,对实体类进行数据库设计(1),商品:,商品编号,名称,类别,单价,数量,供给商:,需增加一个OID-供货商编号,名称,地址,商品编号,价
11、格,订货单:,需增加一个OID订单编号,商品编号,数量,供货商编号,状态,第35页,商品编号,名称,类别,单价,库存数量,P,商品:,供货商编号,名称,地址,商品编号,价格,P,F,供给商:,订单编号,商品编号,数量,供货商编号,状态,P,F,F,订货单:,第36页,对实体类进行数据库设计(2),购置统计:,需要增加一个对象OID统计编号,“所购商品”有多个商品,能够另开一个表“购置清单”:,统计编号,商品编号,数量,统计表与清单表是一对多关系,第37页,统计编号,日期时间,总数量,总价,P,购置统计:,购置清单:,流水号,统计编号,商品编号,数量,P,F,F,统计编号,商品编号,数量,P,或:,第38页,






