我需要一些关于如何使用 UML 为客户端/服务器系统开发模型的建议。简而言之,该系统由一个在手机上运行的移动客户端组成。与大多数移动应用程序一样,移动应用程序连接到服务器以执行一些处理、记录备份以及连接到第三方应用程序。
我需要建议的是,设想整个系统,移动应用程序中的几乎所有类都复制到服务器应用程序中,少数类除外。同样在服务器应用程序中,它包含移动应用程序中的大多数相同类,除了一些其他类和一些额外功能。
举个例子,Mobile 应用程序有一个 User 类,它由参与者的个人详细信息和登录详细信息组成。同样,服务器应用程序有一个用户类,其成员与移动应用程序用户类中存在的成员相同,只是它具有一些移动应用程序中没有的功能/方法。
服务器应用程序还有一个连接到第三方应用程序以执行其计费功能/方法的类。这个类显然也在移动应用程序中复制,但是没有移动应用程序计费类具有连接到第三方的功能/方法。
好的,对于手头的问题,我觉得如果我要遵循 UML 建模的原则,我不应该复制这些类,而是应该在建模中使用 Reuse。当我使用包将移动应用程序与服务器应用程序分开时,我想这将涉及:
- 在移动和服务器应用程序中拥有做同样事情的基本类(方法和成员)
- 对于在任何移动或服务器应用程序中具有额外成员和功能的类,我应该使用继承依赖项来构建额外的类来处理它们。
- 使用 << includes >> 依赖项将 #2 生成的类添加到 Mobile 和 Server 包中,或者使用 << includes >> 依赖项将 #1 生成的类添加到 mobile 和 Server 包中(视情况而定)。
请问我对如何实现建模的思路是正确的,因为我觉得复制相同的类会违背 UML 建模的理想。然而,它们是移动应用程序和服务器应用程序之间的分离,这一事实让我想沿着完全独立地为移动应用程序建模,然后为服务器应用程序单独建模。
再次,请是我的思路正确。