【问题标题】:UML and analysisUML 和分析
【发布时间】:2011-10-10 09:43:51
【问题描述】:

我了解 UML,但我似乎无法进行一些基本分析。这是一个项目的例子:

目的是设计一个页面或 facebook 应用程序在哪里注册 用户可以购买另一个用户来拥有他们并修改他们的状态 消息。

每个用户以 1000 积分开始,并且可以购买另一个用户 500分。这可以防止其他用户购买一个用户半小时。 交易完成后,买家获得200积分, 购买的用户获得 200 积分。每次花费 100 点 20 获得积分。每次购买用户时,他们的价值都会增加 200. 每天给予 300 分。

成员可以通过搜索功能或列表找到其他成员。

管理员可以查看用户信息,获取游戏信息 并给予奖励积分。

我可以发现用例参与者 UserAdministrator。用例将是SearchBuyModify(对于用户)和View user informationView game informationGive bonus points(对于管理员)。当涉及到序列图时,我被困住了,确定需要哪些类和操作。

您可以提供什么建议或方法来开始使用此示例?我已经尝试阅读一些关于该主题的书籍,但我很困惑。

【问题讨论】:

  • 我希望编辑能稍微澄清一下这个问题。我在做这件事时遇到了很大的困难,而且我周围没有人可以提问。所以我很自然地转向了 SO。

标签: uml analysis use-case class-diagram sequence-diagram


【解决方案1】:

除非你有一些类,否则做序列图是没有意义的。

你听起来好像太沉迷于符号了。更担心你的问题。 UML 只不过是一种标准符号,用于捕捉您关于如何描述面向对象的软件系统的想法。重要的是想法,而不是符号。

更多地担心要获得一个很好的对象表示您正在尝试解决的问题。问题必须是首要的。如果你得到“我的系统需要做什么?”是的,没有人会问你用例图中的参与者是谁。

是的,看起来您将 User 和 Admin 作为两个参与者。我看到诸如“搜索用户”和“添加游戏点数”之类的操作。 (有没有“玩游戏”藏在某个地方?)

【讨论】:

  • 可能有一个“玩游戏”。我会问的。而且,是的,看来我过于关注符号了。我想我不习惯获取信息并将事情拼凑在一起。当你知道什么做什么时,它会容易得多。顺便说一句,既然这是要与现有网站集成,那么看看在实践中需要什么来获得一些想法会有什么问题吗?
  • 网站只是一个前端;我会担心首先获得正确的功能。显示将是分开的。如果你试图同时解决两个问题,你可能会陷入困境。把你的问题分解成小块,让它更容易。是的,UML 不是玩“假设”游戏的好方法,可以看看你是否更喜欢一种设计。但不要太挂断它。设计足以开始,然后编写一些代码。
【解决方案2】:

如果可以选择,您可能会考虑使用 SysML 而不是 UML。 SysML 是为系统分析/设计而设计的,因此没有所有建模元素来表示 UML 所具有的精细细节。但它确实有需求(UML 没有),当然还有用例、活动等。

然而,更重要的是,我认为您不能从一组用例中得出一个类设计。或者你可以,但很可能会很糟糕。

这是因为设计不是对分析的改进,它是一个性质不同的东西:分析被输入到设计中(即系统应该做什么?),但没有用例模型会告诉你什么您的代码应采用的错误报告策略。或者在您的情况下,排名第一的设计驱动程序实际上根本不是用例,而是您将在 Facebook API 上实现这一事实。

所以我能给出的最好建议是在进行分析时不要担心设计。忘记类并决定系统应该做什么,而不是应该如何实现。

【讨论】:

    猜你喜欢
    • 2014-11-26
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    相关资源
    最近更新 更多