【问题标题】:UML diagrams + Android classesUML 图 + Android 类
【发布时间】:2015-09-15 23:16:06
【问题描述】:

我已经开发了一段时间的 Android 应用程序,但我并没有从任何特定的图表开始。现在是时候做一些真实的图表了,但我不知道怎么做。不是因为我不熟悉 UML,而是因为 Android 及其组件。

例如,我的应用要求用户必须登录才能看到菜单。从那里用户可以选择他想要的选项。用户也可以进行注册。

虽然这可能是一个愚蠢而简单的例子...重点是...我没有使用任何带有 getter 和 setter 的名为“Person”的类;或任何带有 getter 和 setter 以及其他方法的名为“Request”的类。 我的应用使用“Login.class”、“SignIn.class”、“MenuActivity.class”、“HistoryActivity.class”等类。

我的问题是...如何将 UML 用于 Android 应用程序? 我的意思是我不能有一个概念模型图,上面写着“Person”-----“Request”,对吧?

提前致谢。

【问题讨论】:

  • 也许概念模型会指导您将听起来像过程代码的内容重构为 OO 代码。 getter 和 setter 与此无关。拥有反映现实世界的课程确实如此。

标签: java android uml staruml


【解决方案1】:

我认为您对不同类型的 UML 图类型感到困惑,

有,

结构 UML 图

  1. 类图
  2. 封装图
  3. 对象图
  4. 组件图
  5. 复合结构图
  6. 部署图

行为 UML 图

  1. 活动图
  2. 时序图
  3. 用例图
  4. 状态图
  5. 通讯图
  6. 交互概览图
  7. 时序图

还有更多,我认为您在谈论类图。由于类图是技术性的,并且是针对开发团队的,所以在类图中包含所有这些 Login.class、SignIn.class、MenuActivity.class、HistoryActivity.class 是完全可以的。

但是您可以在其他 UML 图中(例如用例)中使用诸如 Person、Request 等概念性的东西。因为在这些图中,这是针对许多用户而不仅仅是开发人员,所以使用 MenuActivity 没有任何意义。使用概念实体是要走的路。

祝你好运

【讨论】:

  • 是的,我的意思是类图。因此,如果我理解我可以使用这些概念性术语(Person、Request),即使它们根本不是任何具有这些名称的类......它们被用作示例对吗?但是以类图为例,我需要说明操作(又名方法)是什么......我该怎么做?我是根据真实的类给出真实的例子还是告诉操作应该做什么?
  • 不,你不应该使用不是类的类。如果你想在你的类图中包含 Person、Request 实体,你应该在你的代码中作为类。正如我之前所说,类图是给开发人员的,而不是给利益相关者的。这将有助于开发人员进行交流。如果您渴望拥有人员和请求实体。使用用例图或序列图。
【解决方案2】:

您的示例表明您正在尝试捕获某种用例。在这种情况下,您可能需要activity diagram 来演示更高级别的视图,或者如果您更关心更详细的视图,则需要communication diagram

UML 不关心编程语言、平台等。它的主要目的是提供一种符号,可以用来交流思想,而不必涉及太多细节。因此,您首先需要考虑的是为什么首先需要图表以及什么您想与他们交流。回答完这些问题后,您将清楚您需要什么样的图表。

有“4+1模型”之类的东西,旨在将软件模型分成几个视图。这些视图显示软件的不同方面并关注不同级别的细节。例如,在统一流程中,建议从解决方案的“顶部”到“底部”建模,从用例和主要特性的高级概述到实际的实现细节。 UML 也支持提供不同类型的图表。

因此,如果我理解我可以使用这些概念性术语(Person、Request),即使它们根本不是任何具有这些名称的类......它们被用作示例对吗?

您确实可以,但不能在具有活动等低级功能的图表中。您可能希望构建一个域类图,其中将包括与您的应用程序相关的人员和其他实体,但不会真正在代码中表示。

【讨论】:

    猜你喜欢
    • 2015-11-05
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多