blob: 2a9af17e3e54e61250eaf02d22e209a785e4fec4 [file] [log] [blame]
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Eclipse Free BIRD Tools</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Eclipse Free BIRD Tools" />
<meta name="keywords" content="Eclipse Free BIRD Tools" />
<meta name="author" content="Neil Mackenzie" />
<!-- Facebook and Twitter integration -->
<meta property="og:title" content=""/>
<meta property="og:image" content=""/>
<meta property="og:url" content=""/>
<meta property="og:site_name" content=""/>
<meta property="og:description" content=""/>
<meta name="twitter:title" content="" />
<meta name="twitter:image" content="" />
<meta name="twitter:url" content="" />
<meta name="twitter:card" content="" />
<link href="https://fonts.googleapis.com/css?family=Raleway:100,300,400,700" rel="stylesheet">
<!-- Animate.css -->
<link rel="stylesheet" href="css/animate.css">
<!-- Icomoon Icon Fonts-->
<link rel="stylesheet" href="css/icomoon.css">
<!-- Themify Icons-->
<link rel="stylesheet" href="css/themify-icons.css">
<!-- Bootstrap -->
<link rel="stylesheet" href="css/bootstrap.css">
<!-- Magnific Popup -->
<link rel="stylesheet" href="css/magnific-popup.css">
<!-- Owl Carousel -->
<link rel="stylesheet" href="css/owl.carousel.min.css">
<link rel="stylesheet" href="css/owl.theme.default.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="css/style.css">
<!-- Modernizr JS -->
<script src="js/modernizr-2.6.2.min.js"></script>
<!-- FOR IE9 below -->
<!--[if lt IE 9]>
<script src="js/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="gtco-loader"></div>
<div id="page">
<nav class="gtco-nav" role="navigation">
<div class="gtco-container">
<div class="row">
<div class="col-sm-2 col-xs-12">
<div id="gtco-logo"><a href="index.html">Eclipse Free BIRD Tools</a></div>
</div>
<div class="col-xs-10 text-right menu-1">
<ul>
<li><a href="opensource.html">Open Source</a></li>
<li><a href="model_driven.html">Model Driven</a></li>
<li><a href="collaboration.html">Collaborative</a></li>
</ul>
</div>
</div>
</div>
</nav>
<header id="gtco-header" class="gtco-cover gtco-cover-xs gtco-inner" role="banner">
<div class="gtco-container">
<div class="row">
<div class="col-md-12 col-md-offset-0 text-left">
<div class="display-t">
<div class="display-tc">
<div class="row">
<div class="col-md-8 animate-box">
<h1 class="no-margin">Collaboration</h1>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</header>
<!-- END #gtco-header -->
<div class="gtco-section">
<div class="gtco-container">
<div class="row">
<div class="col-md-8 col-md-offset-2 gtco-heading text-left">
<h2>Introduction</h2>
Using Eclipse Free BIRD Tools means that transformation developers, domain experts, data modellers, and testers, can interact with the SAME instances of the SAME model, stored in one place.<br><br>
We do not need that testers artefacts are all stored in Excel, Data modellers and Developers artefacts in an AcessDB, and domain experts in Visio.<br><br>
We appreciate that these are useful tools, and export and import tools allow different representations of the model to be maintained (such as Access DB, SQLDeveloper, Excel). <br><br>
We wish that there is one artefact whereby we are immediately informed when the action of one discipline (say a data modeller deletes a column from a cube) has consequences to tests (that use that column in input data) and transformations (that use that column)<br><br>
Different visualisations of the model can highlight the aspect of the model which is most relevant to a particular discipline like testing.<br><br>
It is essential for the for swift collaborative development of the BIRD that BIRD tools can integrate with standard collaborative software such as source control (Git /SVN) and issue trackers (JIRA/Github Issues) and continuous integration tools for automated testing (Jenkins/Team City/Bamboo). <br>
This allows for organised progress to be made without waiting for all parties to be available in a meeting which is a major project blocker.<br><br>
We address this integration with 3 features:<br><br>
<h3>BIRDSON</h3>
The core of Eclipse Free BIRD Tools is a set of UML models, such as SMCubes.<br><br>
We need a way to describe instances (also known as objects) of these models such as specific Variables or Domains in the SMCubes model like NotionalValue or Country.<br><br>
Currently we do this by creating a specific XML Schema Definition from the UML for describing this.<br><br>
We have visual tools which focus on creating and manipulating the instances of the model, and then persist them into this XML format.<br><br>
However, for source control and comparison of versions a persisted text version which is easier to read than XML would be better. <br><br>
For this purpose we introduce BIRDSON (BIRD Simple Object Notation) which is based upon the popular JSON format (Java Script Object Notation). <br><br>BIRDSON is almost identical to Eclipse ESON , which is a notation for describing Ecore models in a JSON style format. <br><br>
Since BIRDSON and ESON are decribed using Eclipse XText they have autocompletion an automatic validation available in modern code editors such as VSCode<br><br>
<h3>Testing DSL</h3>
We have a Domain Specific Language for describing tests using the popular Gherkin language for testing which is summarised as "Given" , "When" , "Then" clauses. <br> <br>
The testing DSL allows us to put constraints on a class of tests, then, choose specifically constrained parts of the entire model for parameters of the clauses. <br><br>
Test Data is also provided in line with the Input Data UML Model , which is linked to the SMCubes Data Structures model.<br><br>
This means that if the model changes (for example we change or delete a column in a Cube structure) then we are told immediately if a test is affected because it refers to that element of the model.<br><br>
As the Tests are parameterised by a few variables, we can create a grid of coverage for each class of tests.<br><br>
<h3>Functionality modules</h3>
In the Functional Design UML model we provide a way for domain experts to describe the functional design as a breakdown of functional modules, and the different scenarios of execution.<br><br>
The modules and scenarios can be linked to the precise parts of the regulatory text (Such as CRR) which is also stored in the Requirements UML model. <br><br>
As tests can refer to other parts of the model, this means that tests can then be linked to specific modules and scenarios also, allowing a navigation and strict link between domain experts functional design and the test descriptions. This promotes better communication and coverage.<br><br>
Here is an example of part of the Market Risk FRTB processing from CRR2 described as a model and visualised with Eclipse Sirius.</h3></h3>
<img src="FF_FRTB_vis.png" alt="" height="600" width="800"> <br>
</div>
</div>
</div>
</div>
<!-- END .gtco-services -->
<footer id="gtco-footer" class="gtco-section" role="contentinfo">
<div class="gtco-copyright">
<div class="gtco-container">
<div class="row">
<div class="col-md-6 text-left">
</div>
<div class="col-md-6 text-right">
</div>
</div>
</div>
</div>
</footer>
</div>
<div class="gototop js-top">
<a href="#" class="js-gotop"><i class="icon-arrow-up"></i></a>
</div>
<!-- jQuery -->
<script src="js/jquery.min.js"></script>
<!-- jQuery Easing -->
<script src="js/jquery.easing.1.3.js"></script>
<!-- Bootstrap -->
<script src="js/bootstrap.min.js"></script>
<!-- Waypoints -->
<script src="js/jquery.waypoints.min.js"></script>
<!-- Carousel -->
<script src="js/owl.carousel.min.js"></script>
<!-- Magnific Popup -->
<script src="js/jquery.magnific-popup.min.js"></script>
<script src="js/magnific-popup-options.js"></script>
<!-- Main -->
<script src="js/main.js"></script>
</body>
</html>