1

我需要一些关于如何使用 UML 为客户端/服务器系统开发模型的建议。简而言之,该系统由一个在手机上运行的移动客户端组成。与大多数移动应用程序一样,移动应用程序连接到服务器以执行一些处理、记录备份以及连接到第三方应用程序。

我需要建议的是,设想整个系统,移动应用程序中的几乎所有类都复制到服务器应用程序中,少数类除外。同样在服务器应用程序中,它包含移动应用程序中的大多数相同类,除了一些其他类和一些额外功能。

举个例子,Mobile 应用程序有一个 User 类,它由参与者的个人详细信息和登录详细信息组成。同样,服务器应用程序有一个用户类,其成员与移动应用程序用户类中存在的成员相同,只是它具有一些移动应用程序中没有的功能/方法。

服务器应用程序还有一个连接到第三方应用程序以执行其计费功能/方法的类。这个类显然也在移动应用程序中复制,但是没有移动应用程序计费类具有连接到第三方的功能/方法。

好的,对于手头的问题,我觉得如果我要遵循 UML 建模的原则,我不应该复制这些类,而是应该在建模中使用 Reuse。当我使用包将移动应用程序与服务器应用程序分开时,我想这将涉及:

  1. 在移动和服务器应用程序中拥有做同样事情的基本类(方法和成员)
  2. 对于在任何移动或服务器应用程序中具有额外成员和功能的类,我应该使用继承依赖项来构建额外的类来处理它们。
  3. 使用 << includes >> 依赖项将 #2 生成的类添加到 Mobile 和 Server 包中,或者使用 << includes >> 依赖项将 #1 生成的类添加到 mobile 和 Server 包中(视情况而定)。

请问我对如何实现建模的思路是正确的,因为我觉得复制相同的类会违背 UML 建模的理想。然而,它们是移动应用程序和服务器应用程序之间的分离,这一事实让我想沿着完全独立地为移动应用程序建模,然后为服务器应用程序单独建模。

再次,请是我的思路正确。

4

1 回答 1

1

在我看来,您只有一个带有三个包的模型:

  • 包含在移动和服务器应用程序中使用的类的 commonComponents 包
  • 包含移动应用程序中使用的类的移动包
  • 包含服务器应用程序中使用的类的服务器包

移动和服务器包导入(<> 关系)commonComponents 包中包含的元素。例如,User commonComponents:User 类被导入到 server 包中,并由 serve:User 类扩展。请注意,由于包是名称空间,因此您可以拥有具有相同名称的类。

我希望这可以帮助你

http://lowcoupling.com/post/47802411601/uml-diagrams-and-models-with-papyrus

于 2013-01-19T18:58:00.657 回答