27,530 research outputs found
A Static Analyzer for Large Safety-Critical Software
We show that abstract interpretation-based static program analysis can be
made efficient and precise enough to formally verify a class of properties for
a family of large programs with few or no false alarms. This is achieved by
refinement of a general purpose static analyzer and later adaptation to
particular programs of the family by the end-user through parametrization. This
is applied to the proof of soundness of data manipulation operations at the
machine level for periodic synchronous safety critical embedded software. The
main novelties are the design principle of static analyzers by refinement and
adaptation through parametrization, the symbolic manipulation of expressions to
improve the precision of abstract transfer functions, the octagon, ellipsoid,
and decision tree abstract domains, all with sound handling of rounding errors
in floating point computations, widening strategies (with thresholds, delayed)
and the automatic determination of the parameters (parametrized packing)
A Systematic Review of Tracing Solutions in Software Product Lines
Software Product Lines are large-scale, multi-unit systems that enable
massive, customized production. They consist of a base of reusable artifacts
and points of variation that provide the system with flexibility, allowing
generating customized products. However, maintaining a system with such
complexity and flexibility could be error prone and time consuming. Indeed, any
modification (addition, deletion or update) at the level of a product or an
artifact would impact other elements. It would therefore be interesting to
adopt an efficient and organized traceability solution to maintain the Software
Product Line. Still, traceability is not systematically implemented. It is
usually set up for specific constraints (e.g. certification requirements), but
abandoned in other situations. In order to draw a picture of the actual
conditions of traceability solutions in Software Product Lines context, we
decided to address a literature review. This review as well as its findings is
detailed in the present article.Comment: 22 pages, 9 figures, 7 table
Automatic Abstraction in SMT-Based Unbounded Software Model Checking
Software model checkers based on under-approximations and SMT solvers are
very successful at verifying safety (i.e. reachability) properties. They
combine two key ideas -- (a) "concreteness": a counterexample in an
under-approximation is a counterexample in the original program as well, and
(b) "generalization": a proof of safety of an under-approximation, produced by
an SMT solver, are generalizable to proofs of safety of the original program.
In this paper, we present a combination of "automatic abstraction" with the
under-approximation-driven framework. We explore two iterative approaches for
obtaining and refining abstractions -- "proof based" and "counterexample based"
-- and show how they can be combined into a unified algorithm. To the best of
our knowledge, this is the first application of Proof-Based Abstraction,
primarily used to verify hardware, to Software Verification. We have
implemented a prototype of the framework using Z3, and evaluate it on many
benchmarks from the Software Verification Competition. We show experimentally
that our combination is quite effective on hard instances.Comment: Extended version of a paper in the proceedings of CAV 201
Refinement of SDBC Business Process Models Using ISDL
Aiming at aligning business process modeling and software specification, the SDBC approach considers a multi-viewpoint modeling where static, dynamic, and data business process aspect models have to be mapped adequately to corresponding static, dynamic, and data software specification aspect models. Next to that, the approach considers also a business process modeling viewpoint which concerns real-life communication and coordination issues, such as meanings, intentions, negotiations, commitments, and obligations. Hence, in order to adequately align communication and dynamic aspect models, SDBC should use at least two modeling techniques. However, the transformation between two techniques unnecessarily complicates the modeling process. Next to that, different techniques use different modeling formalisms whose reflection sometimes causes limitations. For this reason, we explore in the current paper the value which the (modeling) language ISDL could bring to SDBC in the alignment of communication and behavioral (dynamic) business process aspect models; ISDL can usefully refine dynamic process models. Thus, it is feasible to expect that ISDL can complement the SDBC approach, allowing refinement of dynamic business process aspect models, by adding communication and coordination actions. Furthermore, SDBC could benefit from ISDL-related methods assessing whether a realized refinement conforms to the original process model. Our studies in the paper are supported by an illustrative example
Language-based Abstractions for Dynamical Systems
Ordinary differential equations (ODEs) are the primary means to modelling
dynamical systems in many natural and engineering sciences. The number of
equations required to describe a system with high heterogeneity limits our
capability of effectively performing analyses. This has motivated a large body
of research, across many disciplines, into abstraction techniques that provide
smaller ODE systems while preserving the original dynamics in some appropriate
sense. In this paper we give an overview of a recently proposed
computer-science perspective to this problem, where ODE reduction is recast to
finding an appropriate equivalence relation over ODE variables, akin to
classical models of computation based on labelled transition systems.Comment: In Proceedings QAPL 2017, arXiv:1707.0366
A Product Line Systems Engineering Process for Variability Identification and Reduction
Software Product Line Engineering has attracted attention in the last two
decades due to its promising capabilities to reduce costs and time to market
through reuse of requirements and components. In practice, developing system
level product lines in a large-scale company is not an easy task as there may
be thousands of variants and multiple disciplines involved. The manual reuse of
legacy system models at domain engineering to build reusable system libraries
and configurations of variants to derive target products can be infeasible. To
tackle this challenge, a Product Line Systems Engineering process is proposed.
Specifically, the process extends research in the System Orthogonal Variability
Model to support hierarchical variability modeling with formal definitions;
utilizes Systems Engineering concepts and legacy system models to build the
hierarchy for the variability model and to identify essential relations between
variants; and finally, analyzes the identified relations to reduce the number
of variation points. The process, which is automated by computational
algorithms, is demonstrated through an illustrative example on generalized
Rolls-Royce aircraft engine control systems. To evaluate the effectiveness of
the process in the reduction of variation points, it is further applied to case
studies in different engineering domains at different levels of complexity.
Subject to system model availability, reduction of 14% to 40% in the number of
variation points are demonstrated in the case studies.Comment: 12 pages, 6 figures, 2 tables; submitted to the IEEE Systems Journal
on 3rd June 201
Recommended from our members
Requirements for software engineering languages
This paper analyzes the concepts of software construction embodied in the Draco system. The analysis relates specific mechanisms in Draco to particular software engineering (SE) principles and suggests future research needed to extend the approach. The purpose of the analysis is to help researchers understand Draco better and thus be able to direct in productive directions future research on this type of software engineering tool
- …