面向对象系统分析与设计作业四

作业4 时序图及综合

设计一个建材超市的系统,该系统的用例包括收银员收银、采购员采购物品、库存管理员入库登记、出库登记和盘存,实体类的类模型如图1所示。其中 Order 表示帐单类,一个账单对象表示一次购物,有该次购物的 dateTime 即日期时间、total 即总金额等属性;OrderItem 表示帐单项类,一个账单项对象表示一次购物中所购买的一种物品,包含所购买物品的 inventoryId 即物品条码、qty 即本次购买该物品的数量、price 即购买单价,共3个属性;Inventory表示物品类,一个物品对象表示超市里货架上的一种物品,有 inventoryId 即物品条码、desc 即物品名称描述、factory 即供货厂家、markedPrice 即物品标价、evenCost 即库存均价、qOH 即当前库存量等属性。超市货架上的每件物品都贴有物品条码,为某种物品的唯一编码,用光笔扫描可有效输入。 其中“收银员收银”用例的事件流描述如下:顾客选好物品后到收银台交给收银员,收银员为顾客建立一份帐单,逐一扫描每种物品上所贴的条码,核对此物品的库存名称描述,并输入此物品的本次购买数量,同时建立帐单项,计算账单项的小计金额,更新订单项物品的当前库存数量,直到所有物品的帐单项建立完成,得出累计总金额,顾客按金额缴纳现金,现金收讫后打印收据交顾客。

请在以上需求描述的基础上,完成下列设计:

1. 设计此建材超市系统的用例图;
2. 依据收银用例的事件流描述,设计其时序图,其界面对象和控制对象分别用一个对象表示,实体对象依据图1,要求写明完整详细的消息交互;
3. 细化结果2的界面对象和控制对象,写出此用例事件流的完整交互的时序图;
4. 设计此收银过程中,实体对象 inventory 的状态图,并给出库物品对象的方法函数,及其部分伪码。

图1 建材超市系统的部分实体类类图

解:

1. 用例图如下:

2. 时序图如下:

3. 更详细的时序图如下:

4. 状态图及部分伪码如下:

class Inventory {
    private int inventoryId;
    private String desc;
    private String factory;
    private double markedPrice;
    private double evenCost;
    private int qOH;

    public Boolean vertifyInformation() {
        // 检查库存是否符合情况
    }

    public Boolean updateInformation() (
        // 更新库存情况
    )

}

面向对象系统分析与设计作业四
http://fanyfull.github.io/2021/12/22/面向对象系统分析与设计作业四/
作者
Fany Full
发布于
2021年12月22日
许可协议