仿真和软件工程



我想开始一个模拟项目,这将是一个离散时间模拟。目的是模拟代理通信,涉及一些非自主物理模型,因此不一定局限于纯粹的基于代理的模拟。在开始之前,我想问一下存在哪些特定于仿真的软件工程实践,例如测试实践(TDD适合?模拟往往是不确定的),从软件工程的角度来看,这些问题很常见,经常发生问题等。我不是在谈论建模过程,而是使用现有模型实现系统的过程。非常欢迎相关书籍推荐。

谢谢。

Marcin 是对的,这个问题太宽泛了,除了 It Depends 之外没有正确的答案。™

其主要原因是仿真软件首先仍然是"只是"软件,工程部分在很大程度上取决于您的需求(编程语言、软件用途、时间预算、资源限制等)。当然,可能还涉及其他步骤(例如VV&A),某些任务需要格外小心,例如测试,但这一切都取决于上下文。

另外,在你开始黑客攻击之前,你有没有看过现有的工具 - 也许有一个你可以依赖的库或框架?如果是这样,哪些方法在那里奏效?

除了一般介绍(像这样),大多数书籍和论文也关注仿真软件的特定子集(例如C++中的仿真软件,或基于代理的仿真,或并行和分布式仿真)。因此,如果没有更多的上下文,甚至很难将您指向相关材料。

软件工程和(基于代理的)仿真软件开发中的一个常见问题是处理浮点数。

由于并非所有实数都可以用计算机中使用的浮点格式精确表示,因此随着时间的推移,在具有许多操作的模拟中可能会产生小错误并影响最终结果。

此外,在不同系统上运行仿真时,在不同硬件和软件平台上实现浮点运算方式的微小差异可能会导致不同的结果。

有关其对基于代理的模型的影响的一些广泛研究,请参阅以下链接:


http://www.macaulay.ac.uk/fearlus/floating-point/http://jasss.soc.surrey.ac.uk/8/1/5.html

最新更新