Abstract
Component-based development is one of the core principles behind modern software engineering practices. Understanding of causal relationships between components of a software system can yield significant benefits to developers. Yet modern software design approaches make it difficult to track and discover such relationships at system scale, which leads to growing intellectual debt. In this paper we consider an alternative approach to software design, flow-based programming (FBP), and draw the attention of the community to the connection between dataflow graphs produced by FBP and structural causal models. With expository examples we show how this connection can be leveraged to improve day-to-day tasks in software projects, including fault localisation, business analysis and experimentation.
Abstract (translated)
组件化开发是现代软件工程实践的核心原则之一。理解软件系统中组件之间的因果关系可以为开发者带来显著的好处。然而,现代软件设计方法使得在系统规模上追踪和发现这些关系变得困难,这导致知识债务不断增加。在本文中,我们考虑了一种软件设计 alternative approach ——流式编程(FBP),并呼吁社区关注 FBP 产生的数据流图与结构因果模型之间的联系。通过解释性例子,我们展示了如何利用这一联系改善软件项目中的每日任务,包括故障定位、商业分析和实验。
URL
https://arxiv.org/abs/2303.09552