• 软考下午第三题-用例图和类图


     

     

     这的做法和数据流图相似,我们先观察3-1这个用例图,我们先寻找A1、A2、A3这三个外部实体,

    首先我们看到A1与创建订单和收货确认用例有关联,我们去说明(1)和说明(6)中寻找和外部实体相关的语句

    ,"创建订单。顾客(Customer)在线创建订单(Order)"、"当订单处理人员收到签收过的运货单后,会和顾客进行一次再确认。"

    这俩者都与外部实体顾客有关联,所以我们可以推断出A1就是外部实体 顾客

    而A2和收货确认、处理订单有联系,我们可以继续从说明中寻找,

    "当订单处理人员收到签收过的运货单后,会和顾客进行一次再确认。"

    "订单处理人员接收来自系统的订单;根据订单内容,安排配货,制定 送货计划。"

    这俩个用例说明中都有订单处理人员的存在,所以A2实体应该为订单处理人员

    而A3与送货用例有关联

    "派送人员将货物送到顾客指定的收货地址。"

    而顾客已经为A1实体了,还剩一个派送人员实体与送货用例有关联,所以我们可以推断

    A3为派送人员.

    还剩填补用例U1-U2,

    我们可以先将图中已经有的用例从范围中去掉

    用例有:创建订单、提交订单、处理订单、派单、送货、收货、收货确认

    去掉已有的用例剩下的是:派单、收货.

      "派单。订单处理人员将己配好货的订单转交给派送人员。"

      派单与订单处理人员和派送人员有关联,所以可以判断U2是派单用例

      "派送人员将货物送到顾客指定的收货地址。当顾客收货时,需要在 运货单(delivery slip)上签收。签收后的运货单最终需交还给订单处理人员。"

      收货用例与顾客、订单处理人员、派送人员都有关联,所以我们可以判断U1是收货用例

    A1:顾客 A2:订单处理人员 A3:派送人员

    U1:收货 U2:派单

     首先我们先看向填补类名C1~C3,这里还要求使用说明中给出的英文词汇,所以我们可以知道,这里的类名必定是只有说明中给出英文词汇的,

    我们可以先将给出英文词汇的列出来,然后再去掉图中已有的类名,再根据关系逐一选择

      顾客(Customer)订单(Order)商品(Product)数量 (quantities)姓名(name)收货地址(address)付款方式(form of payment)

      订单量(volume)名称(Name)造价(cost price)售价(sale price) 包装体积(cubic volume)发货日期(delivery date)

      限时发送要求(Delivery Time Window)运货单(delivery slip)

     剩下:

      顾客(Customer)订单(Order)商品(Product)付款方式(form of payment)

      订单量(volume)名称(Name)造价(cost price)售价(sale price) 包装体积(cubic volume)发货日期(delivery date)

      限时发送要求(Delivery Time Window)运货单(delivery slip)

    C1:观看他的属性只有name和address,我们可以看到只有顾客实体同时并且只拥有name和address属性,所以我们可以暂时推断C1为Customer类

    C3:他的属性只有name,并且和C2有聚合,即C3是C2的一部分,并且C3可以离开C2单独存在,并且他们的关系之中还有额外添加"Order Product Quantity",

    属性有QUantity(数量),所以我们可以推断出来C1和C3是订单和商品.

      Customer类与Order类,一个顾客同时能关联多个订单,而一个订单同时只能关联一个顾客,所以(1)是1,(2)是*

      Order类与Product类之间有聚合关系,一个订单能够关联多个(至少1个)商品,而一个商品能同时关联多个(最少0个)订单(即一个商品被多个人购买,生成多个订单),所以(3)是*   (4)是1..*

    (1)1

    (2)*

    (3)*

    (4)1..*

     这题我们需要先观察说明中对它们的描述

      "还必须 记录每种商品的名称(Name)、造价(cost price)、售价(sale price)以及单件商品的包 装体积(cubic volume)。" 

    所以Product类中的属性除了name还需要有costprice、sale price、cubic volume

     "在提交订单时,顾客需要提供其姓名(name)、 收货地址(address)、以及付款方式(form of payment)(预付卡、信用卡或者现金)。为 了制定送货计划以及安排送货车辆,系统必须确定订单量(volume)"

      顾客的姓名和收货地址不需要在Order类中,因为Order类已经与Customer类关联了,所以Order类中的属性还需要有form of payment、volume.

    "处理订单。订单处理人员接收来自系统的订单;根据订单内容,安排配货,制定 送货计划。在送货计划中不仅要指明发货日期(delivery date),还要记录每个订单的限时 发送要求(Delivery Time Window)。"

      还需要有delivery date属性,这的Delivery Time Window 已经将它抽象为类了,所以不需要作为Oder的属性.

    C2:form of payment、volume、delivery date

    C3:cost price、sale price、cubic volume

  • 相关阅读:
    课程引言作业一
    多态与异常处理动手动脑
    大道至简第七八章阅读笔记
    继承与接口动手动脑
    大道至简第六章阅读笔记
    数组课后作业
    第5章 Linux网络编程基础
    第六章 高级I/O函数
    第4章 TCP/IP通信案例:访问Internet上的Web服务器
    第3章 TCP协议详解
  • 原文地址:https://www.cnblogs.com/youjunhui/p/15493774.html
Copyright © 2020-2023  润新知