如何实现可测试,可维护的实时逻辑?

时间:2012-05-09 17:38:57

标签: java c++ logic python-2.7

假设1 :您拥有一套模块(非常可维护,有测试),可用于实时监控。它们都运行得很快但反复执行。它们都需要返回布尔标志,但也可能返回其他数据。例如,如果观察到鹦鹉死亡,CheckParrot模块将返回。如果SeekMorlocks模块找到任何,则会返回true,但是还会返回数字,航向和距离。

假设2 :您的应用程序将使用某种自定义算法将这些模块绑定在一起,这可能包括状态变量。例子包括RTS游戏,交易程序,车辆监控系统等。算法可以用真值表来表示,或者等价于programmable logic array

问题:有哪些开源可以帮助实现可编程逻辑阵列,其中输入和输出是可执行模块?目标是隔离算法(PLA)以进行独立测试,并轻松将模块插入其中。

目前我对Java解决方案最感兴趣,但我也对任何C ++或Python感到好奇。

由于

2 个答案:

答案 0 :(得分:3)

您可能需要查看Drools

它是规则引擎和一组用于创建/测试它们的工具。

答案 1 :(得分:1)

据我所知,完全实时监控没有库。这是基于监控需要开销的事实,并且由于开销,它将不是实时的。

在嵌入式系统领域,我们通常会找到一些测试点引脚(例如GPIO),我们可以输出一个脉冲。然后,我们将示波器或逻辑分析仪连接到引脚,以捕获实时跟踪数据。我们要么使用工具的数据分析功能,要么让工具将数据下载到另一个可以处理数据的应用程序,例如LabView或MatLab。这对应用程序的实时性质影响很小。

您可能能够为您的处理器找到一个比您的处理器更快的在线仿真器,并且可以提供分析和其他实时数据收集。

请记住,数据输出需要时间,因此您的应用程序可能不再是“实时”的。您可以将数据写入内存位置,然后让应用程序在数据退出之前转储数据。我用JTAG调试器完成了这个。

虽然您可以找到一些分析工具,但要对其性能进行表征,并将其纳入“实时”需求。