10 research outputs found

    Lightweight String Reasoning for OCL

    Get PDF
    International audienceModels play a key role in assuring software quality in the modeldriven approach. Precise models usually require the definition of OCL expressions to specify model constraints that cannot be expressed graphically. Techniques that check the satisfiability of such models and find corresponding instances of them are important in various activities, such as model-based testing and validation. Several tools to check model satisfiability have been developed but to our knowledge, none of them yet supports the analysis of OCL expressions including operations on Strings in general terms. As, in contrast, many industrial models do contain such operations, there is evidently a gap. There has been much research on formal reasoning on strings in general, but so far the results could not be included into model finding approaches. For model finding, string reasoning only contributes a sub-problem, therefore, a string reasoning approach for model finding should not add up front too much computational complexity to the global model finding problem. We present such a lightweight approach based on constraint satisfaction problems and constraint rewriting. Our approach efficiently solves several common kinds of string constraints and it is integrated into the EMFtoCSP model finder

    Modal Object Diagrams

    No full text
    Abstract. While object diagrams (ODs) are widely used as a means to document object-oriented systems, they are expressively weak, as they are limited to describe specific possible snapshots of the system at hand. In this paper we introduce modal object diagrams (MODs), which extend the classical OD language with positive/negative and example/invariant modalities. The extended language allows the designer to specify not only positive example models but also negative examples, ones that the system should not allow, positive invariants, ones that all system’s snapshots should include, and negative invariants, ones that no system snapshot is allowed to include. Moreover, as a primary application of the extended language we provide a formal verification technique that decides whether a given class diagram satisfies (i.e., models) a multi-modal object diagrams specification. In case of a negative answer, the technique outputs relevant counterexample object models, as applicable. The verification is based on a reduction to Alloy. The ideas are implemented in a prototype Eclipse plug-in. Examples show the usefulness of the extended language in specifying structural requirements of object-oriented systems in an intuitive yet expressive way. “... in the real world there are only objects. Classes exist only in our minds.”, Nierstrasz [24]

    Finding Achievable Features and Constraint Conflicts for Inconsistent Metamodels

    Get PDF
    Determining the consistency of a metamodel is a task of generating a metamodel instance that not only meets structural constraints but also constraints written in Object Constraint Language (OCL). Those constraints can be conflicting, resulting in inconsistencies. When this happens, the existing techniques and tools have no knowledge about which constraints are achievable and which ones cause the conflicts. In this paper, we present an approach to finding achievable metamodel features and constraint conflicts for inconsistent metamodels. This approach allows users to rank individual metamodel features and works by reducing it to a weighted maximum satisfiability modulo theories (MaxSMT). This reduction allows us to utilise SMT solvers to tackle multiple ranked constraints and at the same time locate conflicts among them. We have prototyped this approach, incorporated it into an existing modelling tool, and evaluated it against a benchmark. The preliminary results show that our approach is promising and scalable
    corecore