4 research outputs found

    Graph-based software specification and verification

    Get PDF
    The (in)correct functioning of many software systems heavily influences how\ud we qualify our daily lives. Software companies as well as academic computer\ud science research groups spend much effort on applying and developing techniques for improving the correctness of software systems. In this dissertation\ud we focus on using and developing graph-based techniques to specify and verify\ud the behaviour of software systems in general, and object-oriented systems more\ud specifically. We elaborate on two ways to improve the correctness (and thereby\ud the quality) of such systems.\ud Firstly, we investigate the potential of using the graph transformation tech-\ud nique to formally specify the dynamic semantics of (object-oriented) program-\ud ming languages. Those semantics are typically specified in natural language.\ud Such specifications are often hard to understand or even ambiguous. We show\ud how the graph transformation framework provides formal and intuitive means\ud for their specification.\ud Secondly, we develop techniques to verify systems of which the behaviour is\ud specified as graph production systems. For the verification of such systems, we\ud introduce an algorithm that combines a well-known on-the-\ud y model checking\ud algorithm with ideas from bounded model checking. One of the main prob-\ud lems of model checking is the state-explosion problem. This problem is often\ud tackled using partial order reduction techniques. Unfortunately, many such\ud techniques are based on assumptions that do not hold for graph production sys-\ud tems. Therefore, we develop a new dynamic partial order reduction algorithm\ud based on selecting so-called probe sets and prove its correctness.\ud Most of the techniques developed in this dissertation have been implemented\ud in the graph transformation tool GROOVE

    Graph Transactions as Processes

    No full text
    Transactional graph transformation systems (t-gtss) have been recently proposed as a mild extension of the standard dpo approach to graph transformation, equipping it with a suitable notion of atomic execution for computations. A typing mechanism induces a distinction between stable and unstable items, and a transaction is defined as a shift-equivalence class of computations such that the starting and ending states are stable and all the intermediate states are unstable. The paper introduces an equivalent, yet more manageable definition of transaction based on graph processes. This presentation is used to provide a universal characterisation for the class of transactions of a given t-gts. More specifically, we show that the functor mapping a t-gts to a graph transformation system having as productions exactly the transactions of the original t-gts is the right adjoint to an inclusion functor

    Graph transactions as processes

    No full text
    Transactional graph transformation systems (T-GTSs) have been recently proposed as a mild extension of the standard DPO approach to graph transformation, equipping it with a suitable notion of atomic execution for computations. A typing mechanism induces a distinction between stable and unstable items, and a transaction is defined as a shift-equivalence class of computations such that the starting and ending states are stable and all the intermediate states are unstable. The paper introduces an equivalent, yet more manageable definition of transaction based on graph processes. This presentation is used to provide a universal characterisation for the class of transactions of a given T-GTS. More specifically, we show that the functor mapping a T-GTS to a graph transformation system having as productions exactly the transactions of the original T-GTS is the right adjoint to an inclusion functor
    corecore