DeepAI AI Chat
Log In Sign Up

Probabilistic Software Modeling

by   Hannes Thaller, et al.

Software Engineering and the implementation of software has become a challenging task as many tools, frameworks and languages must be orchestrated into one functioning piece. This complexity increases the need for testing and analysis methodologies that aid the developers and engineers as the software grows and evolves. The amount of resources that companies budget for testing and analysis is limited, highlighting the importance of automation for economic software development. We propose Probabilistic Software Modeling, a new paradigm for software modeling that builds on the fact that software is an easy-to-monitor environment from which statistical models can be built. Probabilistic Software Modeling provides increased comprehension for engineers without changing the level of abstraction. The approach relies on the recursive decomposition principle of object-oriented programming to build hierarchies of probabilistic models that are fitted via observations collected at runtime of a software system. This leads to a network of models that mirror the static structure of the software system while modeling its dynamic runtime behavior. The resulting models can be used in applications such as test-case generation, anomaly and outlier detection, probabilistic program simulation, or state predictions. Ideally, probabilistic software modeling allows the use of the entire spectrum of statistical modeling and inference for software, enabling in-depth analysis and generative procedures for software.


page 1

page 2

page 3

page 4


Probabilistic Software Modeling: A Data-driven Paradigm for Software Analysis

Software systems are complex, and behavioral comprehension with the incr...

OOASP: Connecting Object-oriented and Logic Programming

Most of contemporary software systems are implemented using an object-or...

Towards Semantic Clone Detection via Probabilistic Software Modeling

Semantic clones are program components with similar behavior, but differ...

Systems Modeling for novice engineers to comprehend software products better

One of the key challenges for a novice engineer in a product company is ...

Semantic Clone Detection via Probabilistic Software Modeling

Semantic clone detection is the process of finding program elements with...

An Object-Oriented Framework for Designing Reusable and Maintainable DEVS Models using Design Patterns

Design patterns are well practices to share software development experie...

A Testing Scheme for Self-Adaptive Software Systems with Architectural Runtime Models

Self-adaptive software systems (SASS) are equipped with feedback loops t...