构建Android应用程序的类图

时间:2016-05-05 12:21:06

标签: android class uml diagram modeling

我的android应用程序中有大约30个类存放在7个包中:

enter image description here

我想为它制作一个类图和CRC(类责任合作)卡片。但我感到困惑,因为类图将是一个庞大而复杂的图表。根据这个Answer形成了前一个问题。我必须为像Fragment和服务等主类创建一个类图。

如果有人能就此提出建议。此外,我需要根据这个实现架构层(表示层,业务层和数据访问层):

enter image description here

但我不知道从哪里开始因为我使用的是php服务。有小费吗 ?

2 个答案:

答案 0 :(得分:1)

UML是一种表达你的想法和概念的语言,所以没有固定的规则来描述什么,遗漏什么,以及如何安排一切。

如果你想详细描述你的实现,你将在某种程度上需要包括所有这30个类(这不是很多)。但是有一些方法可以使用以下思想从大型类模型中制作可读的类图。大多数工具允许您从一个抽象类模型派生出几个始终与类模型保持同步的图表,因此它们始终保持一致。我喜欢的是

  • 一个概述图,仅包含包,它们之间的类和关系,没有任何细节,

  • 模型部分的图表,例如只有一个包,显示属性,数据类型和操作等细节。

概览图是展示图层的好地方。在您的图片图片中,我对业务和域层感到有些困惑,因为这两个术语通常意味着大致相同。此外,我想知道为什么让用户通过Web服务进行通信。 Android应用程序的人类用户通常与表示层进行通信,表示层又细分为Android操作和视图。由于用户根本没有在课堂模型中代表,因此您不必回答他们是否与您的观点和/或活动互动的哲学问题。通常,活动将取决于视图,但不是相反,因此您有层活动 - 视图 - 域 - 数据访问。

PHP很可能不在Android上,而是在服务器应用程序上,因此您的服务器应用程序具有类似的层结构,Android应用程序中的某些连接器类依赖于服务器Web服务。我怀疑,在你的图片中,你并没有清楚地分开Android和服务器软件,因为PHP网络服务无法调用Android应用程序的类。

另一种方法是留下一些技术问题,并绘制一个应用程序域的逻辑类图。在设计良好的应用程序中,这将与域层的类非常相似。这将使读者深入了解您的软件的本质,而不会过多地混淆他的技术细节。

答案 1 :(得分:0)

必须全面的UML模型与用于传达模型的UML图之间存在重要差异:

  

UML 2.5标准,附件A:

     

UML模型由诸如包,类和关联之类的元素组成。相应的UML   图表是UML模型的部分的图形表示。   UML图包含图形元素(通过路径连接的节点)   表示UML模型中的元素。

因此不需要包含30个类的单个图表。对于任何读者来说,这样的图表都是far too complex。因此,将您的类图切成更小的可理解的部分:

  • 直观地说,同一个包中的类之间的关系可能比不同包的类之间的关系要多得多。这就是为什么使用您的包进行分解可能是第一个候选者。
  • 另一方面,您的软件包已经具有实现级别的详细信息,因此难以全面了解。因此,对于您的毕业,开始显示您正在解决的问题的抽象可能更相关,即从与域模型相关的类(example)开始,然后逐渐深入研究您的应用程序的设计。

第二个图更精细,因为它显示了actor和你的系统组件之间的行为交互,以及体系结构的层次结构:

  • 演员(用户+后端服务器)之间的交互理想情况下会在高级用例中表示(顺便说一句,你应该在毕业报告中有一个)。但用例并不意味着记录软件的结构。
  • 您的软件的分层结构最好由package diagram表示(特别是如果您的java包已经遵循层逻辑)。
  • 但是,如果您想专注于服务器和移动设备之间的架构元素分发,可以使用deployment diagram