Automating the Development of Information Systems with the MOSKitt Open Source Tool

Similar documents
Profiling and Testing with Test and Performance Tools Platform (TPTP)

OpenEmbeDD basic demo

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

A Software Development Platform for SOA

EMC Documentum Composer

What is Enterprise Architect? Enterprise Architect is a visual platform for designing and constructing software systems, for business process

Instrumentation Software Profiling

Winery A Modeling Tool for TOSCA-based Cloud Applications

Taking Subversion to a Higher Level. Branching/Merging Support. Component Management Support. And More

What is BPM? Software tools enabling BPM

New Features in Primavera P6 EPPM 16.1

Using GitHub for Rally Apps (Mac Version)

MDA Overview OMG. Enterprise Architect UML 2 Case Tool by Sparx Systems by Sparx Systems

<Insert Picture Here> Introducing Data Modeling and Design with Oracle SQL Developer Data Modeler

Managing Third Party Databases and Building Your Data Warehouse

WebRatio 5: An Eclipse-based CASE tool for engineering Web applications

Mastering Microsoft Project 2013

Implementação. Interfaces Pessoa Máquina 2010/ Salvador Abreu baseado em material Alan Dix. Thursday, June 2, 2011

Version Comparison MAXIMIZER CRM Published By. DATA SHEET Version Comparison 1

Version Comparison. Maximizer CRM 12 Winter Version Comparison Chart. Performance, Usability, Simplicity Enhanced

Requirements Exchange: From Specification Documents to Models

Mastering Microsoft Project 2013 Course: 55054A Course Length: 3 Days

Which Enterprise Architect Edition Should I Purchase?

How to build Dashboard - Step by Step tutorial/recipe

Mobile App Design and Development

WebSphere Business Monitor

Building industrial sensors with MDSD

Getting Started with Sites at Penn State

Visual Paradigm product adoption roadmap

ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM

Getting Started using the SQuirreL SQL Client

gvsig: A GIS desktop solution for an open SDI.

Sisense. Product Highlights.

SECTION 4 TESTING & QUALITY CONTROL

SOFTWARE TESTING TRAINING COURSES CONTENTS

From TOPCASED to Polarsys

Source Code Translation

Software Development Kit

Web Application Development Focused on BP Specifications*

Acknowledgments. p. 55

Generating Open For Business Reports with the BIRT RCP Designer

IBM BPM V8.5 Standard Consistent Document Managment

Model Simulation in Rational Software Architect: Business Process Simulation

Setting up SQL Translation Framework OBE for Database 12cR1

Auditing UML Models. This booklet explains the Auditing feature of Enterprise Architect. Copyright Sparx Systems Pty Ltd

What's New In DITA CMS 4.0

User's Guide - Beta 1 Draft

Eucalyptus User Console Guide

Table of Contents. 1. Content Approval...1 EVALUATION COPY

Rational Team Concert. Quick Start Tutorial

Maximizer CRM. Sales VERSION COMPARISON

New Features in Instantis EnterpriseTrack 15.1

This document covers version of BPMN2 Modeler, published November 15, 2013.

Developing Rich Web Applications with Oracle ADF and Oracle WebCenter Portal

Guide to the MySQL Workbench Migration Wizard: From Microsoft SQL Server to MySQL

Frog VLE Update. Latest Features and Enhancements. September 2014

Oracle Application Development Framework Overview

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Paul Zenden Sioux Technische Software Ontwikkeling Science Park Eindhoven EP Son Tel: +31 (0)

A QUICK OVERVIEW OF THE OMNeT++ IDE

Integration of DB oriented CAD systems with Product Lifecycle Management

IBM Emptoris Contract Management. Release Notes. Version GI

Set Up and Maintain Customer Support Tools

Meta-Model specification V2 D

This presentation is for informational purposes only and may not be incorporated into a contract or agreement.

Dreamweaver CS3 THE MISSING MANUAL. David Sawyer McFarland. POGUE PRESS" O'REILLY 8 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo

User Guide. v0.1 BETA. A-Lab Software Limited

DEVELOPMENT OF AN ANALYSIS AND REPORTING TOOL FOR ORACLE FORMS SOURCE CODES

Rational Quality Manager. Quick Start Tutorial

Consider the possible problems with storing the following data in a spreadsheet:

Embarcadero DB Change Manager 6.0 and DB Change Manager XE2

IBM Campaign and IBM Silverpop Engage Version 1 Release 2 August 31, Integration Guide IBM

Livezilla How to Install on Shared Hosting By: Jon Manning

What s New Guide. Help Desk Authority 9.1

ProGUM-Web: Tool Support for Model-Based Development of Web Applications

Sophos Mobile Control Administrator guide. Product version: 3

Design of Visual Repository, Constraint and Process Modeling Tool based on Eclipse Plug-ins

Tool-Assisted Knowledge to HL7 v3 Message Translation (TAMMP) Installation Guide December 23, 2009

This Readme includes information pertaining to Novell Service Desk 7.0.

IE Class Web Design Curriculum

Integrity 10. Curriculum Guide

Recent Advances in Eclipse QVTO!

Business Process Management IBM Business Process Manager V7.5

Software Engineering. Session 3 Main Theme Requirements Definition & Management Processes and Tools Dr. Jean-Claude Franchitti

Model Decisions and Business Rules in System Architect. Larry Goldberg & Barbara von Halle Knowledge Partners International LLC

Tutorial: BlackBerry Object API Application Development. Sybase Unwired Platform 2.2 SP04

Accessing Your Database with JMP 10 JMP Discovery Conference 2012 Brian Corcoran SAS Institute

Course 4 27 October Adrian Iftene adiftene@info.uaic.ro

An Evaluation of BPMN Modeling Tools

Android Mobile App Building Tutorial

ADT Plugin for Eclipse

Top 10 Oracle SQL Developer Tips and Tricks

Chapter 15: Forms. User Guide. 1 P a g e

Transcription:

http://www.moskitt.org Automating the Development of Information Systems with the MOSKitt Open Source Tool Vicente Pelechano Universidad Politécnica de Valencia

Content PART I: About the Project and the Tool PART II: Advanced Features PART III: Industry, Research and Lessons

Content Project Overview What is MOSKitt? Technologies Tools Infrastructure PART I: About the Project and the Tool

Project Overview The history begins with gvpontis Conselleria d Infraestructures, Territori i Medi Ambient (CITMA) (Infrastructures, Territory and Environment Regional Ministry) Comunidad Valenciana Government (Generalitat)

Project Overview gvmétrica: Software Development Method How to apply gvmétrica? Document Templates Tools?

Project Overview Free CASE tools survey: April 2006 No tools satisfying most of the organization requirements were found Decision: Develop New free CASE tool UPV-PROS proposes Eclipse as technological platform gvcase Project: Starts April 2007 Renamed as MOSKitt in 2008

Project Overview Project Participants Development Leading Requirements Fundings Technical Knowledge Dissemination

What is MOSKitt? A free CASE tool built on Eclipse (EPL license) It provides the necessary tools for supporting gvmétrica and much more... CITMA Supports UML modeling language and more...

What is MOSKitt? it is MORE than a CASE Tool... MOSKitt has been conceived as a Particular CASE tool MOSKitt is a general Framework for the definition and implementation of SW production methods based on MDE principles MOSKitt can be easily adapted and extended

Technologies Eclipse Modeling Project EMF GMF GEF UML2 Tools EMF Compare EMF Search Eclipse Process Framework (EPF)

Technologies ATL Data Tools Platform AMW BPMN STP XPand2 Xtend JUnit EVL

Technologies Content Management System Control Version System Project Management Web App

Distribution Currently, MOSKitt is based on Eclipse Galileo Now, we are Migrating to Eclipse INDIGO RC2 (3.7.2) MOSKitt is distributed as a standalone RCP Modules can be downloaded and installed to build a concrete version of MOSKitt adapted to user needs

General View Method Support: gvmétrica Method Designer X METHOD... Z METHOD TOOLS RDB Designer BPMN Editor UML Editor Sketcher User Interface Modeling INFRASTRUCTURE Transformation Management and Configuration Graphical Editors Traceability Model Synchronization Forms Modeling Framework Artifacts Library Model Explorer

Tools Method Support: gvmétrica Method Designer X METHOD... Z METHOD TOOLS RDB Designer BPMN Editor UML Editor Sketcher User Interface Modeling INFRASTRUCTURE Transformation Management and Configuration Graphical Editors Traceability Model Synchronization Forms Modeling Framework Artifacts Library Model Explorer

BPMN Modeler BPMN Modeling Support Administrative Procedures Lanes, Tasks, SubProcess and Control Flow Document Modeling Groups and Families of Documents Templates

UML2 Modeler UML2 Modeling Class Sequence State Transition Activity Use Cases Support the Definition and Application of UML Profiles

RDB Designer RDB Modeling Tables Keys Views Users Roles Groups DDL Generation MySQL PostgreSQL Oracle Reverse Engineering

User Interface Modeling User/Roles System Views Interaction Units Navigations Presentation Options Interface Behavior Interface Patterns User Interface Modeling

Sketcher Sketcher Window Label Button Textbox Checkbox Table Tab Panel Bar Menu Pagination

Infrastructure Method Support: gvmétrica Method Designer X METHOD... Z METHOD TOOLS RDB Designer BPMN Editor UML Editor Sketcher User Interface Modeling INFRASTRUCTURE Transformation Management and Configuration Graphical Editors Traceability Model Synchronization Forms Modeling Framework Artifacts Library Model Explorer

The MOSKitt Perspective Resource Explorer A Predefined Set of Views Model/Diagram Editor Palette Model Explorer Properties Tab

Forms Modeling Framework (FMF) Facilitates the development of Forms Editors to manipulate Ecore models Links Widgets and Model Elements through Databinding

Transformation Registering Transformations Visualization Organization Prioritization Manager Executing Transformations Input Parameters Results, Validation and Execution Infrastructure (Extensions) MOSKitt Transformations

Transformation Manager 2. Configuration 1. Transformation Parameters 4. Results 3. Validation 2. Configuration 2. Configuration 2. Configuration

Transformation Configuration We can apply different design/implementation decisions (configuration rules) to the same Input Model. AllTables OnlyChildTables Generalization OnlyParentTable

Transformation Configuration FMF Forms for Rule Selection

ModelSync and Traceability MOSKitt provides a complete framework for supporting Model Traceability and Synchronization MOSKitt provides M2M transformations to automate and simplify modeling tasks

Artifacts Library A repository to store pieces of diagrams to be reused

Content Process Support and Method Engineering Dealing with User Interfaces Model Transformations and Code Generation PART II: Advanced Features

Process Support and Method Engineering http://www.moskitt.org Dashboard and Moskitt4ME

Dashboard Simple DSL for Specifying Development Processes Method Modeler Method Interpreter Integrated Workbench Reuse GMF Dashboard Infrastructure

Dashboard DSL Primitives: Tasks Task Dependencies I/O Resources, References to Resources Actions: open Editor, execute Transformation... Help Guides: invoke Cheatsheets, invoke Help, open an URL...

Dashboard Snapshot of the Project State Analysis task is Finished and its Resources are Completed ( Finished ) The Dependency between Analysis and Design tasks is Resolved Doing/Executing the Design Task ( ToDo )

Dashboard Interpreter Dashboard Open Editors Link and Edit Resources Open Cheet Sheets

MOSKitt4ME A Methodological Framework to support the specification of methods and the generation of CASE tools following MDE and ME principles. Model'Driven'Engineering' Method'Model' Process'Part' Retrieve' Product'Part' Store' MethodBase Method'Design' 4ME M2T' Transforma2on' CASE'Environment' MethodProcess Support MethodProduct Support Method'Implementa2on'

MOSKitt4ME Method Design Method model SPEM 2.0 standard. Reuse of method fragments. 4ME EPF$Composer$ Repository$client$

MOSKitt4ME Method Configuration Reusable assets (RAS standard). Repository includes: editors, model transformations, etc. Must be associated with method elements to indicate how these elements will be managed in the generated CASE environment. 4ME Repository*client*

MOSKitt4ME Method Implementation Method process supported by a process engine Method product supported by reusable assets Method'Model' Method'Base' Method'Design' Asset'Base' Configured'Method'Model' references' references' references' Method'Configura4on' So7ware'Pla:orm' MethodProcessSupport ProcessEngine MethodProductSupport Method'Implementa4on' Method'''''''''''''''''''''Engineer' Model'''''''''''''''''Transforma4on'

MOSKitt4ME

MOSKitt4ME

MOSKitt4ME Process View Tasks can be filtered by: Roles State (All, Pending) Use Colors to distinguish Task State: Optional Executable Not Executable Done

Dealing with UIs http://www.moskitt.org User Interface Model (UIM) and Sketcher

UIM: User Interface Modeling A DSL for Modeling User Interfaces Technology Independent (Abstract) Integrated into the Development Method Linked to Data Models (UML2, DB, Ecore, ) Generated from other Models (if necessary and possible) Can define and apply UI Patterns

UIM. The Language Views Parts of the overall user interface Users Can access to one or several Views

UIM. The Language Interaction Units (IU) An interaction between the system and the user Kinds of IUs Information Editable Information Operation Navigation Selection Composite Pattern

UIM. The Language Information IUs: Data Model View Additional UI Properties: Ordering Filtering Masks Triggers

The Sketcher Allows designing more concrete User Interfaces while preserving the Technology Independence Focused on Design Concerns of UIs Uses a visual notation that provides a closer view to what the End User expects Provides Abstract Widgets commonly used in UI design

The Sketcher Large library of user interface controls/ widgets: textbox, table, listbox etc... Template support to facilitate the definition of UIs Library of Predefined Templates

The Sketcher Sketcher as a Front-End of the UIM SKETCHER UIM

The Sketcher Connected to UML Models: Behavior Structure Connected to DB: Data Persistence

Model Transformations M2M and M2T to automate the SW Production Process

Model Transformations BPMN UML2

Model Transformations BPMN UML2 RDB

Model Transformations BPMN UML2 Sketcher Also Sketcher to UIM

Code Generation Protected Zones can be used to preserve developers changes (codification)

Code Generation

Code Generation

Content Industrial Projects Research Projects and Extensions Project Timeline Some Statistics Lessons Learned PART III: Industry, Research and Lessons

Industrial Projects MOSKitt-GEO Dirección General de Tecnologías de la Información

Industrial Projects

Industrial Projects

Research Projects European Projects

Research Projects European Projects

Extensions

Collaborations MDT/Papyrus subproject within the Eclipse Model Development Tools (MDT) Project Main Goal: Develop advanced editors for UML and and SysML. We implemented the UML Sequence Diagram Participants: CA LIST (Papyrus project leaders), Airbus (TopCased), Atos Origin, Obeo and Prodevelop (MOSKitt)

Project Timeline RDB Designer, DDL Generation and Reverse Engineering UML2 + Profiles WBS Transformation Manager Transformation Configuration Traceability and Synchronization FEFEM Starts 0.7.2 1.0.1 1.3.1 1.3.7 4/2007 11/2008 11/2009 12/2010 10/2011 1.3.9 6/2012 2.0

Project Timeline gvmétrica Development Process Support. The Dashboard User Interface Modeling (UIM) Code Generation in PHP (first gvhidra prototypes) Business Process Modeling (BPMN) Interoperability and Integration with Third Party Tools Starts 0.7.2 1.0.1 1.3.1 1.3.7 4/2007 11/2008 11/2009 12/2010 10/2011 1.3.9 6/2012 2.0

Project Timeline Sketcher + User Interface Patterns Editor Sketcher and UIM Integration Code Generation in gvhidra (PHP5) Code Generation in gvnix (Java) Usability, Stability and Performance Improvements Starts 0.7.2 1.0.1 1.3.1 1.3.7 4/2007 11/2008 11/2009 12/2010 10/2011 1.3.9 6/2012 Mature Enough for SW Companies and P. Administration 2.0

Project Timeline Code Generation in OpenXava (Java/AJAX) MOSKitt4ME. Method Engineering Support Code Generators Improved New Transformations (UML2Sketcher) Usability, Stability and Performance Improvements ModelSync Improved Starts 0.7.2 1.0.1 1.3.1 1.3.7 4/2007 11/2008 11/2009 12/2010 10/2011 1.3.9 6/2012 2.0 Now: Maintaining and Improving MOSKitt

Some Statistics 1.800 downloads in 2007, 2.117 downloads in 2008... OS Windows Linux Mac Modules/ Other TOTAL 2009 3.156 809 453 2.056 6.474 2010 3.831 1.414 737 1.412 7.394 2011 2.104 1.817 581 2.765 7.267 2012 606 415 70 225 1.316 TOTAL 9.697 4.455 1.841 6.458 22.451 12% 28% 61% Windows Linux Mac OS X

Some Statistics Aprox. 12 Million Euros Project Statistics in OHLOH (https://www.ohloh.net/projects/moskitt)

Lessons Learned Expressive Power vs. Usability vs. Implementability. Difficult to Balance Ergonomics: If editing the model is more cumbersome than implementing functionality in the code, developers will hardly switch to MDD Infer Knowledge avoid Over Specification: Everything that can be reasonably inferred from the context must not be specified

Lessons Learned Openness. Forget a Closed Tool. Prepare your Tool to be extended, adapted, modified by expert users Open the Code Generation Extensibility of the Models. Prepare the Models to be Extended in an easy way Modeling UI at Abstract level is complex and tedious. Sketch/Draw the UI Reusability. Promote Reuse...Support Reuse. Introduce Systematic Reuse (software product lines, model reuse)

Lessons Learned Building Software is a Complex Task...MDD can help but...it is not a Silver Bullet yet MDD: Promotes and Facilitates Abstraction, Automation, Communication Introducing MDD in Software Production Methods is an INVESTMENT not a COST but could be EXPENSIVE in the short term

Lessons Learned MDD should be gradually introduced Many times it is not possible to generate the 100% of the code HIGHER % of generated code requires HIGHER MODELS complexity and completeness HIGHER number of Domains, Types of Projects, etc., leads to a HIGHER difficulty to generate 100% code and LESS Reuse

Download and try MOSKitt

Contribute PROFILES Develop a Module that can be Integrated into MOSKitt Participate in the Development of MOSKitt Basic Modules Adapt existing Modules http://www.moskitt.org/perfilescolaboracion

Contribute Mailing Lists https://moskitt.org/lists/mailman/listinfo/moskitt-en https://dev.eclipse.org/mailman/listinfo/spain-ec Eclipse Project Repository http://subversion.moskitt.org

http://www.moskitt.org Thank you for your Attention Vicente Pelechano Universidad Politécnica de Valencia