Probabilistic Software Modeling: A Data-driven Paradigm for Software
  Analysis
  Software systems are complex, and behavioral comprehension with the
increasing amount of AI components challenges traditional testing and
maintenance strategies.The lack of tools and methodologies for behavioral
software comprehension leaves developers to testing and debugging that work in
the boundaries of known scenarios. We present Probabilistic Software Modeling
(PSM), a data-driven modeling paradigm for predictive and generative methods in
software engineering. PSM analyzes a program and synthesizes a network of
probabilistic models that can simulate and quantify the original program's
behavior. The approach extracts the type, executable, and property structure of
a program and copies its topology. Each model is then optimized towards the
observed runtime leading to a network that reflects the system's structure and
behavior. The resulting network allows for the full spectrum of statistical
inferential analysis with which rich predictive and generative applications can
be built. Applications range from the visualization of states, inferential
queries, test case generation, and anomaly detection up to the stochastic
execution of the modeled system. In this work, we present the modeling
methodologies, an empirical study of the runtime behavior of software systems,
and a comprehensive study on PSM modeled systems. Results indicate that PSM is
a solid foundation for structural and behavioral software comprehension
applications.
