【问题标题】:Need advice for development of a graph based simulation engine需要有关开发基于图形的模拟引擎的建议
【发布时间】:2011-09-24 22:56:22
【问题描述】:

在我的大学里,他们开发了一个基于 java 的应用程序,用于可视化图形和操作它们,类似于 GUESS,但在某种程度上具有不同的功能。托管该项目的网站是 graphlab.sharif.edu,但目前服务器已关闭。无论如何,我们现在决定将程序分成几部分并公开发布,以便它们可以在其他应用程序中使用。更准确地说,我们希望在开发通用仿真软件时利用这些部分,或者至少在不同的仿真程序中使用它们。

该应用程序具有基于黑板设计模式的强大核心。这是要提取的第一部分。其他部分包括基于 xml 的 ui 平台、基本 shell 控制台(使用 beanshell)和其他插件,这些插件以不同方式增强其功能,例如与 MATLAB 集成和动画算法。

在我们开始应用必要的修改和提取核心之前,我正在寻找一些建议和 cmet。由于这个应用程序的开发可以追溯到大约 5 或 6 年前,他们还没有使用一些今天广泛使用的知名技术,例如 JSON。也没有单元测试。那么,如果您有开发此类应用程序的经验,您建议我们应该怎么做?我们最好使用哪些技术以及用于什么目的?黑板真的是 这样的应用平台有什么好的解决方案? 您认为我们应该如何使用 JSON 让来自不同语言的开发人员扩展我们程序的功能?

如果您想了解有关该项目的任何进一步信息,请告诉我,

提前致谢

【问题讨论】:

  • 我的第一个建议是将您的问题分成几个(更具体的)问题。这将使人们更有可能回答他们。我在这里看到至少五个问题:模块化、处理遗留代码、软件模式的使用、与模拟软件的互操作性和 JSON……无论如何,你可以在下面找到我的 2c ;-)

标签: java json graph simulation blackboard


【解决方案1】:

您面临的问题似乎很复杂,所以我只能就您问题的某些方面提出建议。

我要做的第一件事就是将整个项目划分为子模块(假设这还没有完成)。最有可能的是,在此过程中您会遇到一些令人不快的意外(即,不应该相互依赖的事物,将辅助代码放入错误的子模块等)。我还建议您使用构建工具记录这些依赖关系

如果缺少单元测试,根据我的经验,在大部分项目已经开发了这么长时间之后,编写明智的单元测试是相当困难的。它们可能不会像您在开发期间编写的那样有价值,但有些可能仍然对回归测试有用,即。确保您不会在准备发布时搞砸重构或清理:最好的方法似乎是逐步创建新测试,以便检查各个部分您目前正在准备发布的项目。

最后,我建议您尽快发布功能最少的版本。这允许其他人向您提供诚实和实用的反馈(错误报告、功能请求等),然后可以指导您的开发 w.r.t.发布其他模块和后续版本。

【讨论】:

  • 没错,我并没有真正解决(所有)细节 - 正如我在对问题的评论中所说,我认为每个主要问题都必须单独提出和讨论:黑板是正确的模式吗? (很难说,因为缺少关于它当前如何使用的详细信息)如何在这里使用 JSON? (也很难说,因为缺少具体的用例/示例)。
  • 是的,这个问题太大了。
猜你喜欢
  • 1970-01-01
  • 2017-01-26
  • 2019-11-30
  • 2014-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多