【问题标题】:Identifying class diagram classes from a use case specification?从用例规范中识别类图类?
【发布时间】:2017-01-18 20:47:33
【问题描述】:

我目前正在尝试为即将到来的考试学习类图的构建,尽管我很难知道如何根据用例规范(或任何类似的系统描述)来识别类。

我了解这里的人们可能不愿意帮助解决基于教育的问题,我只是想澄清一下,我并不是要求为我完成工作,我只需要指出正确的方向。

我正在查看过去的修订文件,其中包含在自动售货机上“购买冰淇淋”过程的用例规范。第一个问题是从这个规范中找出 9 个典型的类。

我知道一个类就像一个对象,通常用一个名词来标识,尽管我的困惑是我如何能够提取 9 个类,因为我似乎只能找到 6 个,也就是说,如果它们甚至是正确的:

客户、学生、员工、触摸屏、零钱机和会员卡。

这里是用例规范,对篇幅深表歉意:

Ben & Jerry 的公司刚刚在一家 大学;它有多种冰淇淋可供选择,格式为 不同口味的浴缸或迷你浴缸。产品有补贴 学生和教职员工,但不适用于其他用户;这样一个客户 可将会员卡插入读卡器,获得补贴奖品 显示选择的冰淇淋。你设计了一个用例 系统模型,并确定了一个用例(“购买一个 冰淇淋”),其中的主要参与者是顾客。

  • ID:VM1
  • 姓名:购买浴缸
  • 主要演员:
    1. 补贴客户(员工和学生)2 非补贴客户
  • 前提条件:
    1. 机器已开启,运行良好
    2. 饮料和硬币存货
    3. 机器中有足够的硬币存量,可以提供找零
    4. 产品库存充足
  • 主要流程:
    1. 机器显示欢迎消息
    2. 学生/工作人员插入会员卡
    3. 系统验证会员卡
    4. 客户通过按触摸屏选择浴缸
    5. 机器显示所选冰淇淋的补贴价格
    6. 重复直到输入足够的硬币:6.1 客户输入硬币 6.2 触摸屏显示到目前为止输入的金额
    7. 系统分配浴缸
    8. 如果输入的硬币过多,则会送出零钱
    9. 价格被添加到每周总金额中
    10. 机器重置
  • 发布条件:购买冰淇淋
  • 替代流程 1:
    1. 如果客户没有足够的硬币 6.1 客户按下返回按钮 6.2 系统退回输入的硬币
  • 替代流程 2:
    1. 如果验证不成功 3.1 消息通知用户 3.2 显示非补贴价格 3.3 用例继续主流程 4

如果有人可以提供帮助,我将不胜感激。谢谢

【问题讨论】:

    标签: uml class-diagram use-case


    【解决方案1】:

    您主要确定了一些演员,很少有自己的班级。要开始您的设计,请先问问自己所考虑的系统 (SUC) 是什么。显然是自动售货机。现在看看 UC 这个 SUC 是如何工作的。有几个提示:

    • 控制资源(温度、冰淇淋、浴缸等),
    • 控制收款,
    • 控制冰淇淋的分配。

    对于这些,您可以创建面向外部并采取相应措施的控制器类(读取温度 -> 打开冷却;数钱 -> 开始自动售货;等等)

    与客户互动的自动售货流程可能更加复杂(显示报价、选择、定价等)

    正如您已经猜到的那样,这不是教程点。但是,这些是开始设计的基本步骤。您可以继续创建序列图来验证单个类之间的协作(许多例外情况,例如:当 temp 确实上升太多时临时控制器开始大喊大叫)。

    【讨论】:

    • 感谢您的回复。那么所有的类都需要控制一些东西吗?例如,我可以将“自动售货控制器”作为一个类来计算总数或验证用户的会员卡吗?令我困惑的是,它要求 9 个班级,一个非常具体的数字,但似乎班级的数量可以有不同的解释。
    • 是的,数量取决于设计。可能你应该“至少”想出 9 个类。每个班级都有一定的责任。你在哪里画边界取决于你/你的设计。使用单个“doItAll”类完成是可能的,但不是建设性的......
    猜你喜欢
    • 2014-09-26
    • 2016-12-18
    • 2012-09-22
    • 2015-12-18
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 2022-08-12
    相关资源
    最近更新 更多