55 research outputs found
Constraint Programming with Multi-valued Decision Diagrams: A Saturation Approach
Constraint programming is a declarative way of modeling and
solving optimization and satisfiability problems over finite
domains. Traditional solvers use search-based strategies
enhanced with various optimizations to reduce the search space.
One of such techniques involves multi-valued decision diagrams
(MDD) to maintain a superset of potential solutions, gradually
discarding combinations of values that fail to satisfy some
constraint. Instead of the relaxed MDDs representing a superset,
we propose to use exact MDDs to compute the set of solutions
directly without search, compactly encoding all the solutions
instead of enumerating them. Our solution relies on the main
idea of the saturation algorithm used in model checking to
reduce the required computational cost. Preliminary results show
that this strategy can keep the size of intermediate MDDs small
during the computation
Formal Verification of Real-Time Systems with Data Processing
The behavior of practical safety critical systems often combines real-time behavior with structured data flow. To ensure correctness of such systems, both aspects have to be modeled and formally verified. Time related behavior can be efficiently modeled and analyzed in terms of timed automata. At the same time, program verification techniques like abstract interpretation and software model checking can efficiently handle data flow. In this paper, we describe a simple formalism that represents both aspects of such systems in a uniform and explicit way, thus enables the combination of formal analysis methods for real-time systems and software using standard techniques
PROGRAM CODE GENERATION BASED ON UML STATECHART MODELS
Since visual modelling languages are getting more and more
popular, the automatic
generation of the program code on the basis of high-level models is an
important
issue. This article discusses implementation possibilities of statecharts,
the graphical notation for describing state-based event-driven behaviour in the
Unified Modelling Language (UML). The first part of the article outlines
common approaches published in the literature and identifies their weaknesses.
In the second part an implementation pattern is proposed that is capable of
efficiently instantiating most of the statechart features. The pattern
developed by us poses low hardware requirements therefore applicable even in
embedded systems
CONTROL FLOW CHECKING IN MULTITASKING SYSTEMS
The control flow checking technique presented in our paper is based on the new watchdog-
processor method SEIS1
(Signature Encoded Instruction Stream). This method is in-
tended to check the still uncovered area of state-of-the-art microprocessors using on-chip
caches or instruction pipelines, since the processor instruction bus needs not be monitored.
The control flow is checked using assigned actual signatures and embedded reference sig-
natures. Since the actual and reference signatures are embedded in the checked program,
the usual reference database and the time-consuming search/ compare engine in the watch-
dog can be omitted. The evaluation of the actual signature is a simple combinatorial task
allowing high speed and thus the sharing of the watchdog between different tasks and
processors. The checking method has been extended to higher levels of the application
like simultaneous check of different processes and their synchronization in multitasking
systems
Aspect-oriented modelling and analysis of information systems
In this paper we introduce an approach of aspect-oriented modelling and analysis of information systems. First we give an overview of the concepts of Aspect Oriented Programming and provide an outlook to model aspect-oriented programs. On the basis of this introduction, we describe a method of using aspects at the modelling level and weaving them into a single integrated model. Finally, we extend this framework with the automatic construction of analysis models based on separate aspect models. In our example, fault tolerance structures are modelled by aspects and the analysis model is a dependability model that is used to determine the non-functional properties of the system like reliability and availability. In this way the separate design of the functionality and the dependability is supported and the design decisions concerning fault tolerance can be analysed on the basis of the dependability model
Model Checking-based Software-FMEA: Assessment of Fault Tolerance and Error Detection Mechanisms
Failure Mode and Effects Analysis (FMEA) is a systematic technique to explore the possible failure modes of individual components or subsystems and determine their potential effects at the system level. Applications of FMEA are common in case of hardware and communication failures, but analyzing software failures (SW-FMEA) poses a number of challenges. Failures may originate in permanent software faults commonly called bugs, and their effects can be very subtle and hard to predict, due to the complex nature of programs. Therefore, a behavior-based automatic method to analyze the potential effects of different types of bugs is desirable. Such a method could be used to automatically build an FMEA report about the fault effects, or to evaluate different failure mitigation and detection techniques. This paper follows the latter direction, demonstrating the use of a model checking-based automated SW-FMEA approach to evaluate error detection and fault tolerance mechanisms, demonstrated on a case study inspired by safety-critical embedded operating systems
PLC Program Translation for Verification Purposes
Programmable logic controllers are typically programmed in one of the five languages defined in the IEC 61131 standard. While the ability to choose the appropriate language for each program unit may be an advantage for the developers, it poses a serious challenge to verification methods. In this paper we analyse and compare these languages to show that the ST programming language can efficiently and conveniently represent all PLC languages for formal verification purposes. Furthermore, we provide a translation method from IL to ST programming languages (for the Siemens implementation), together with a sketch of proof for its correctness. This allows the usage of the ST-based PLCverif model checking method for safety PLC programs
Exploiting Hierarchy in the Abstraction-Based Verification of Statecharts Using SMT Solvers
Statecharts are frequently used as a modeling formalism in the design of
state-based systems. Formal verification techniques are also often applied to
prove certain properties about the behavior of the system. One of the most
efficient techniques for formal verification is Counterexample-Guided
Abstraction Refinement (CEGAR), which reduces the complexity of systems by
automatically building and refining abstractions. In our paper we present a
novel adaptation of the CEGAR approach to hierarchical statechart models. First
we introduce an encoding of the statechart to logical formulas that preserves
information about the state hierarchy. Based on this encoding we propose
abstraction and refinement techniques that utilize the hierarchical structure
of statecharts and also handle variables in the model. The encoding allows us
to use SMT solvers for the systematic exploration and verification of the
abstract model, including also bounded model checking. We demonstrate the
applicability and efficiency of our abstraction techniques with measurements on
an industry-motivated example.Comment: In Proceedings FESCA 2017, arXiv:1703.0659
Getting the Priorities Right: Saturation for Prioritised Petri Nets
Prioritised Petri net is a powerful modelling language that often
constitutes the core of even more expressive modelling languages such as
GSPNs (Generalized Stochastic Petri nets). The saturation state space
traversal algorithm has proved to be efficient for non-prioritised
concurrent models. Previous works showed that priorities may be encoded into
the transition relation, but doing so defeats the main idea of saturation by
spoiling the locality of transitions. This paper presents an extension of
saturation to natively handle priorities by considering the priority-related
enabledness of transitions separately, adopting the idea of constrained
saturation. To encode the highest priority of enabled transitions in every
state we introduce edge-valued interval decision diagrams. We show that in
case of Petri nets, this data structure can be constructed offline.
According to preliminary measurements, the proposed solution scales better
than previously known matrix decision diagram-based approaches, paving the
way towards efficient stochastic analysis of GSPNs and the model checking of
prioritised models
- …