基于插件的软件的UML项目示例。

时间:2014-04-10 09:19:45

标签: c++ plugins uml

我们将开发一个强大的基于插件的c ++软件。它的源代码示例很少。由于项目规模较大,我们希望在开始实施之前进行简单的软件建模。首先是类和序列图。我们是UML的新手,因为这个原因,对于基于插件的项目有一个UML-Example会很不错。我们在网上没有找到任何关于它的例子。我们想要使用的设计模式是插件,插件管理器,工厂方法,单例和其他一些。现在我的问题是:

您是否知道类似软件设计的UML项目(简单)示例?

谢谢。

干杯亚历克斯。

3 个答案:

答案 0 :(得分:1)

我不知道这类示例,但我可以建议您在这种项目中创建一组图表/视图。 UML是非常灵活的工具和软件项目本质上是多样化的,很难建立规则。您应该倾听您的开发人员本能,并简单地为您推进项目所需的模型。

所以......

1- 组件(必填) 由于这是一个插件项目,因此涉及隐含的外部依赖性。您应该制作一个组件图,将未来的插件(组件)显示为其环境中的黑盒子。另一个明显的组件是基础工具(你的komponent将插入其中) - 模拟零件之间的所有相关接口!这是根本的 - 使用构造型来显示每个组件的实现平台(例如C ++)

2- 用例(可选) 在这里,您可以识别您的用户(演员)以及他们可以使用插件(用例)执行的操作。另一种方法是使用线框模型(非UML)或类似的东西来捕获req。

3- 概念视图(可选) 您没有告诉任何有关插件功能逻辑的信息。这有多复杂?如果插件逻辑非常复杂并且有许多概念,算法等,那么您应该考虑在概念层面对这个方面进行建模。使用类图捕获问题概念及其关系。此外,您可以在概念分析级别使用状态机(用于活动类),活动图(用于复杂算法),序列(相关方案)等等(无实现细节) 如果您的插件域逻辑很简单,则可以最小化此视图。有时单个状态机帮助或活动图等

4- 架构(强制性) 在这里,您可以使用组件和/或类图来显示插件内部结构的高级视图。这个视图扩展了黑盒子视图(在1-中解释),给出了一个白盒子补充。只显示主要模块,它们之间的接口具有重音,特别是对外部世界。

5- 设计(可选) 在这里你应该务实,不要只是为了完成这个观点。如果插件不是很大并且您有一个训练有素的团队,那么架构视图将完成这项工作。所有这些都取决于您的插件复杂性,您可以决定显示一个或多个级别的分层相关视图。组件通常位于顶层,包括更多组件和/或设计类。 请注意,我们在此级别上使用实现语言,并且所有元素都应该具有明确的构造型(C ++,DLL,EXE等)。 设计视图还应该有一些选择的行为图(序列,活动,状态等),再次在实现层面上。

<强>可追溯性 最后的但并非最不重要的。所有这些观点从不同的角度和不同的阶段看待相同的底层系统。因此,在不同视图中的元素之间存在许多隐式或显式依赖关系和关系。您应该完全了解它们,甚至可以在单独的图表或可追溯性矩阵中显示其中的一些(某些工具支持它)。您可以在建议的视图之间进行一些跟踪:

  • 1-&gt; 4黑盒子和相应的白盒子
  • 4-> 5高级到低级映射(架构级别的组件由设计级别的类实现)
  • 2-> 4,2-> 5哪些组件/类将参与哪些用例
  • 2-> 3通过一些概念建模可以进一步指定单个用例逻辑

  • 行为图与结构元素(状态机属于类或组件)密切相关,序列图包括类/组件的协作实例,活动可以显示组件的整体使用场景或类的方法算法等 等

有很多方法可以完成这项工作,没有人能给你一个具体的成功公式。 UML建模应该可以帮助您进行分析/设计工作,使其成为自然的副产品。如果您觉得自己不知道要建模什么,或者您没有看到图表的明确目的 - 那就不要这样做。

答案 1 :(得分:0)

  • 至于&#34;工厂方法,单身和其他一些&#34;,在类图中表示,阅读Gang of Four book
  • 至于插件,你正在寻找不好的地方。它们用组件和包图表示,而不是用类表示。
  • 对于序列图,(也是状态机,时间,活动......),它们不是为了显示结构问题。插件是一个结构术语。行为图很有用,但在用于插件时它们没有任何细节。
  • 对于插件的交互,还要查找UML通信和交互概述图。也许可以查看书"Enterprise Integration Patterns..."中的图表。他们的图表不是UML的标准图,但是恕我直言,对于组件和包(或插件)级别的交互建模非常方便和有用。

答案 2 :(得分:0)