Code Monkey home page Code Monkey logo

wp3's Introduction

Stories in Implementation Stories in Research Stories in State-of-the-Art

Introduction

In this work package, we introduce a new approach with its supporting platform which enables the user to interactively configure traceable elements and trace links. The specification is supported by formalizing the semantics of traceability in first-order relational logic in order to perform automated analysis such as consistency checking, reasoning on trace relations and trace element discovery. The usefulness of the approach is demonstrated in the context of application life-cycle platform in software industry and safety critical sofware development in automative industry and being tested in a use case in aviation industry.

For an example workspace, you can clone this source code repository Demonstrations and an example configuration file, you can directly get from HAVELSAN use case.

roject Poster presented in SAT/SMT/AR Summer School 2016

Type Hierarchy after loading an Alloy specification to the system (included several annotations)

Type Hierarchy

Management of first-order relational model

Management of first-order relational model

Assigning type to a unary relation while creating a trace element on a text file

Assigning type to a unary relation while creating a trace element on a text file

Selecting a binary relation to create link

Selecting a binary relation to create link

Selecting a range from existing trace elements for the binary relation

Selecting a range from existing trace elements for the binary relation

Automated Analysis

Automated Analysis

Work Package Objectives (from the Final Project Propsal)

The primary objective of this WP is to provide the synchronization mechanism of the ModelWriter platform that will keep the user-visible models consistent with the KB-stored models and vice versa. This work package addresses all problems related to the "model-to-model transformations" in ModelWriter.

  • By user-visible models is meant those models that have been explicitly created by a Technical Author, using e.g. a spreadsheet, a kind of UML diagram, a block diagram, a mind map, etc. or any modelling tool (part of the “Model” side of ModelWriter) he has found the most appropriate for authoring his technical information.
  • By KB-stored model is meant a part of the Knowledge Base devoted to storing pieces of related information, disregarding whether it is represented in user-visible models, in natural-language documents, or in both.

This mechanism will be based on model-to-model (M2M) transformations of two complementary categories:

  • WP3.1, for transforming a user-visible model to a KB-stored model (this "mirrors" WP2.1).
  • WP3.2, for transforming a KB-stored model into a user-visible model (this "mirrors" WP2.2).

Expected Results

An Eclipse-based M2M Transformation Framework, extensible so as to accommodate an increasing number of types of (user-visible) models. This will consist of the following main envisioned plug-in components:

  • Transformation Manager: provides the infrastructure to register and launch transformations.
  • Configuration Manager: for personalizing the behaviour of the framework to meet the needs of a specific standard / organization / project / individual.
  • Traceability Manage: keeps links between elements of user-visible models and elements of the KB.
  • Synchronization Manager: triggering transformations when synchronization is needed.

Approach for the Work Package

The main goal of this WP is to develop a M2M Transformation Framework that supports the synchronization mechanisms for the ModelWriter tool.

These mechanisms will be based on a requirements synchronization framework that can be extended to support different requirements models (based on both textual and/or visual notations). The framework is made up of three main components:

  1. A meta-modelling infrastructure,
  2. A DSL for model transformation specifications, and
  3. A model synchronization API.

final version

wp3's People

Contributors

ferhaterata avatar fukit0 avatar tristanfaure avatar waffle-iron avatar y3seker avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

waffle-iron

wp3's Issues

Transformation of Ecore Models into Java Compilation Units for type checking and various semantic errors of language constructs

This may provide us a way of semantic analysis of types, generic types and type parameters. We can promote stringtemplate to generate a Java program files from AlloyInEcore AST.

We will exploit the Java Compiler Interface in javax.tools. The approach that I propose is to transform each class type constructs into interface and employ the java's type inheritance mechanism using interfaces to simulate state inheritance of ECore or MOF. To enable this approach, every structural elements should be rephrased as methods (getters and setters); every nested package definitions are flattened, and each class definition are converted into a compilation unit.

Resolve Variables and Relations while parsing using semantic predicates of ANTLR

Algorithm: If a variable is defined in a quantifier, comprehension or let declaration, semantically resolve all identifiers with the same name as variables in the scope of that declaration. Resolve other identifiers in the scope as relations. This approach maintains a good approximation for a semantically valid parse tree since the variables are always declared before using them. Variables may shadow each other, and may shadow field names. Conventional lexical scoping, with the innermost binding taking precedence.

Unnecessary dependencies

- 'plugin name'

* 'dependencies that will be removed'

- eu.modelwriter.marker.startup

* org.eclipse.mylyn.wikitext.tests,
* org.eclipse.mylyn.wikitext.markdown.core

-> We have EcoreDropAdapter class to connect IDragAndDropService on startup.
In this class, we are using MarkdownParser to parse markdown text, and it creates dependency on plugins above.

- eu.modelwriter.marker

* org.eclipse.mylyn.wikitext.core

-> In this project, we have MarkdownToReqIfDocumentBuilder which extends org.eclipse.mylyn.wikitext.core.DocumentBuilder

- eu.modelwriter.marker.command

* org.eclipse.mylyn.wikitext.core,
* org.eclipse.mylyn.wikitext.markdown.core.

-> In this project, we have CreateReqifSpecFromMarkdownHandler class. If this handler is triggered, we are creating MarkdownParser instance, setting its document builder as MarkdownToReqIfDocumentBuilder, and running its parser.

In conclusion,

-> Maybe we should create our own parser or any other alternative.

Transformation of Ecore Models and Constraints into Alloy Specifications for type checking and various semantic errors of expressions and formulas

Translation of AlloyInEcore models to Z Specification Language using CZT Corejava

CZT Corejava of CZT: Community Z Tools for developing and reasoning about Z specifications

Corejava is part of the CZT project that aims at providing a framework for building formal methods tools, especially for the Z specification language. This subproject provides AST (Annotated Syntax Tree) classes for Z and its extensions, written in Java.

Translating Z to Alloy
https://sourceforge.net/p/czt/code/ci/master/tree/z2alloy/

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.