Quantifying Software Correctness by Combining Architecture Modeling and Formal Program Analysis

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Lanzinger, Florian, Martin, Christian, Reiche, Frederik, Teuber, Samuel, Heinrich, Robert, Weigl, Alexander
Formato: Preprint
Publicado: 2024
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866914653118922752
author Lanzinger, Florian
Martin, Christian
Reiche, Frederik
Teuber, Samuel
Heinrich, Robert
Weigl, Alexander
author_facet Lanzinger, Florian
Martin, Christian
Reiche, Frederik
Teuber, Samuel
Heinrich, Robert
Weigl, Alexander
contents Most formal methods see the correctness of a software system as a binary decision. However, proving the correctness of complex systems completely is difficult because they are composed of multiple components, usage scenarios, and environments. We present QuAC, a modular approach for quantifying the correctness of service-oriented software systems by combining software architecture modeling with deductive verification. Our approach is based on a model of the service-oriented architecture and the probabilistic usage scenarios of the system. The correctness of a single service is approximated by a coverage region, which is a formula describing which inputs for that service are proven to not lead to an erroneous execution. The coverage regions can be determined by a combination of various analyses, e.g., formal verification, expert estimations, or testing. The coverage regions and the software model are then combined into a probabilistic program. From this, we can compute the probability that under a given usage profile no service is called outside its coverage region. If the coverage region is large enough, then instead of attempting to get 100% coverage, which may be prohibitively expensive, run-time verification or testing approaches may be used to deal with inputs outside the coverage region. We also present an implementation of QuAC for Java using the modeling tool Palladio and the deductive verification tool KeY. We demonstrate its usability by applying it to a software simulation of an energy system.
format Preprint
id arxiv_https___arxiv_org_abs_2401_14320
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Quantifying Software Correctness by Combining Architecture Modeling and Formal Program Analysis
Lanzinger, Florian
Martin, Christian
Reiche, Frederik
Teuber, Samuel
Heinrich, Robert
Weigl, Alexander
Software Engineering
Logic in Computer Science
Most formal methods see the correctness of a software system as a binary decision. However, proving the correctness of complex systems completely is difficult because they are composed of multiple components, usage scenarios, and environments. We present QuAC, a modular approach for quantifying the correctness of service-oriented software systems by combining software architecture modeling with deductive verification. Our approach is based on a model of the service-oriented architecture and the probabilistic usage scenarios of the system. The correctness of a single service is approximated by a coverage region, which is a formula describing which inputs for that service are proven to not lead to an erroneous execution. The coverage regions can be determined by a combination of various analyses, e.g., formal verification, expert estimations, or testing. The coverage regions and the software model are then combined into a probabilistic program. From this, we can compute the probability that under a given usage profile no service is called outside its coverage region. If the coverage region is large enough, then instead of attempting to get 100% coverage, which may be prohibitively expensive, run-time verification or testing approaches may be used to deal with inputs outside the coverage region. We also present an implementation of QuAC for Java using the modeling tool Palladio and the deductive verification tool KeY. We demonstrate its usability by applying it to a software simulation of an energy system.
title Quantifying Software Correctness by Combining Architecture Modeling and Formal Program Analysis
topic Software Engineering
Logic in Computer Science
url https://arxiv.org/abs/2401.14320