GithubHelp home page GithubHelp logo

som-research / uncertain-ocl Goto Github PK

View Code? Open in Web Editor NEW
1.0 5.0 0.0 269 KB

A DSL for expressing uncertainty in OCL integrity constraints

License: Apache License 2.0

Shell 8.34% Lex 31.91% Java 59.75%
dsl ocl uncertainty

uncertain-ocl's Introduction

uncertain-ocl

An extension of OCL for expressing uncertainty in integrity constraints

UML diagrams can be annotated with OCL (Object Constraint Language) constraints that describe the business logic and the integrity constraints of the system being designed. Nevertheless, sometimes designers are uncertain about how these constraints should be defined. Maybe they don't have enough information, maybe there are alternative definitions or maybe they want to postpone the decision until a later stage of the design.

Language

This package provides an extension of the Object Constraint Language for expressing uncertainty within an integrity constraint. This extension augments OCL with primitives for describing alternatives and unknowns within OCL expressions.

Examples of the syntax for "Uncertain OCL":

  • A constraint that may or may not become part of the specification
[? <constraint> ]
  • A subexpression that may have one of many alternative values
[ <expression>, ..., <expression> ]  
  • A subexpresion whose value is undecided or not specified at this point
unknown
  • A numeric constant that may take any value within a given range
<value>..<value>

The directory examples/ includes several samples of uncertain OCL invariants.

Tool

The tool receives a set of uncertain constraints and produces the list of concrete realizations of the OCL constraints, i.e., considering all potential alternative ways to define the OCL invariants. For instance, an invariant with an uncertain constant [2..5] will produce four variants of the specification, each with a different invariant include a different concrete value for the constant.

The tool is implemented in Java and uses JFlex and CUP (included in the distribution) to parse the input.

The scripts compile.shand execute.sh can be used to compile and execute the tool. The tool reads the uncertain constraints from the standard input and emits the concrete OCL constraints to the standard output.

Contact

This tool is part of joint work by Loli Burgueño, Jordi Cabot and Robert Clarisó on dealing with uncertainty in OCL specifications.

You can contact the authors at <rclariso AT uoc.edu>.

uncertain-ocl's People

Contributors

robertclariso avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.