0

我了解 UML,但似乎在进行一些基本分析时遇到了麻烦。下面是一个项目的例子:

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

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

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

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

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

你可以给出什么建议或什么方法来开始这个例子?我试过读几本关于这个主题的书,但我很困惑。

4

2 回答 2

2

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

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

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

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

于 2011-10-10T09:55:13.907 回答
1

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

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

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

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

于 2011-10-11T10:56:18.543 回答