寻找合适的术语:审计?可追溯性?日志记录



我有个问题。我相信人们已经解决了这个问题,但我不知道该搜索什么合适的术语。我想在这里描述一下这个问题,也许你可以帮我用术语。

我们正在构建以批处理方式处理数据的软件,我们希望使用户能够事后了解数据以特定方式处理的原因。在一个非常基本的层面上,我们处理记录,然后我们有很多条件,根据条件我们做一些事情。并且用户希望看到类似于";因为满足了条件X,所以我们做了"Y";。

让我试着提供一个例子,而不是我们正在解决的实际问题:假设我们正在建立一个新闻网站,我们从新闻机构导入文章和图像。现在可能发生的事情有:

  • 我们跳过了一篇文章,因为标题以"META:";,这表明这是新闻机构给编辑的信息,而不是真正的读者
  • 我们把一篇文章归入X类,因为该通讯社属于Y类
  • 我们把一篇文章归入X类,因为新闻社没有提供类别,但它确实提供了标签Y
  • 我们将文章X和图片Y联系起来,因为两者都有相同的标签Z

用户可能会问的问题:

  • 文章X怎么了?(它来自Y新闻社的文章,以下是我们对此做出的所有决定。(
  • 有多少文章因为是元而被跳过
  • 在昨天进口的文章中,有多少与图片有关
  • 在昨天导入的图像中,有多少与文章有关

同样,这个问题域只是一个例子,我只是在寻找合适的搜索词来在文献中查找信息。

我想到了";"可追溯性";,但这似乎是特定于作为特定构建一部分的软件工件的。

我想到了";审计日志";,但我不知道审计日志是否支持回答这些问题。

我想到了";决策";,但这似乎是人类在组织软件开发时所做的事情。还有决策支持软件,它对规则进行编码。但我们正试图根据我们的具体投入来处理这些规则的结果。

这听起来像是某种日志记录,尽管插入跟踪等可能是其他术语。我不确定是否有一个行业认可的术语,但从技术上讲,这些术语在实现上都非常相似。

当谈到日志记录时,我建议区分纯函数和非纯操作,然后只记录非纯操作。结果是可重复执行。在这种情况下,这意味着你可以随时回放发生的一切。由此,您可以根据需要生成报告。

这种体系结构的另一种选择是为您想要报告的决策定义一种内部领域特定的语言。例如,您可以将决策与效果分开,这样核心引擎就会返回一个包含所有决策的数据结构。然后,您可以在同一数据结构上运行(至少(两个不同的解释器:一个执行实际工作,另一个创建决策报告。

您还可以考虑研究现有的(可能是商业的(基于规则的系统。如果你能找到一个离你的问题足够近的,你就可以省去很多工作。

最新更新