Automating the Development of Information Systems with the MOSKitt - - PowerPoint PPT Presentation

automating the development of information systems with
SMART_READER_LITE
LIVE PREVIEW

Automating the Development of Information Systems with the MOSKitt - - PowerPoint PPT Presentation

http://www.moskitt.org Automating the Development of Information Systems with the MOSKitt Open Source Tool Vicente Pelechano Universidad Politcnica de Valencia viernes 18 de mayo de 12 Content PART I: About the Project and the Tool


slide-1
SLIDE 1

Vicente Pelechano

Universidad Politécnica de Valencia

http://www.moskitt.org

Automating the Development

  • f Information Systems with

the MOSKitt Open Source Tool

viernes 18 de mayo de 12

slide-2
SLIDE 2

Content

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

viernes 18 de mayo de 12

slide-3
SLIDE 3

Content

  • Project Overview
  • What is MOSKitt?
  • Technologies
  • Tools
  • Infrastructure

PART I: About the Project and the Tool

viernes 18 de mayo de 12

slide-4
SLIDE 4

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)

viernes 18 de mayo de 12

slide-5
SLIDE 5

Project Overview

  • gvMétrica: Software Development

Method

  • How to apply gvMétrica?
  • Document Templates
  • Tools?

viernes 18 de mayo de 12

slide-6
SLIDE 6

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

viernes 18 de mayo de 12

slide-7
SLIDE 7

Project Overview

Project ¡Participants

Development

Leading Requirements Fundings

Technical Knowledge Dissemination

viernes 18 de mayo de 12

slide-8
SLIDE 8

What is MOSKitt?

  • A free CASE tool built on Eclipse (EPL

license)

  • It provides the necessary tools for

supporting gvMétrica and much more...

  • Supports UML modeling language and

more...

CITMA

viernes 18 de mayo de 12

slide-9
SLIDE 9

What is MOSKitt?

  • 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 it is MORE than a CASE Tool...

viernes 18 de mayo de 12

slide-10
SLIDE 10

Technologies

Eclipse Modeling Project

EMF GMF GEF EMF Compare EMF Search UML2 Tools

Eclipse Process Framework (EPF)

viernes 18 de mayo de 12

slide-11
SLIDE 11

Technologies

ATL AMW XPand2 Xtend EVL Data Tools Platform BPMN STP JUnit

viernes 18 de mayo de 12

slide-12
SLIDE 12

Technologies

Content Management System Project Management Web App Control Version System

viernes 18 de mayo de 12

slide-13
SLIDE 13

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

viernes 18 de mayo de 12

slide-14
SLIDE 14

General View

Method Support: gvMÉTRICA

...

X METHOD Z METHOD

TOOLS INFRASTRUCTURE

RDB Designer Method Designer UML Editor User Interface Modeling

Transformation Management and Configuration Model Synchronization Traceability Model Explorer

BPMN Editor Sketcher

Graphical Editors Artifacts Library Forms Modeling Framework

viernes 18 de mayo de 12

slide-15
SLIDE 15

Tools

Method Support: gvMÉTRICA

...

X METHOD Z METHOD

TOOLS INFRASTRUCTURE

Transformation Management and Configuration Model Explorer Model Synchronization Graphical Editors Traceability Artifacts Library

RDB Designer UML Editor User Interface Modeling BPMN Editor Sketcher Method Designer

Forms Modeling Framework

viernes 18 de mayo de 12

slide-16
SLIDE 16

BPMN Modeler

  • BPMN Modeling
  • Support

Administrative Procedures

  • Lanes, Tasks,

SubProcess and Control Flow

  • Document

Modeling

  • Groups and

Families of Documents

  • Templates

viernes 18 de mayo de 12

slide-17
SLIDE 17

UML2 Modeler

  • UML2

Modeling

  • Class
  • Sequence
  • State Transition
  • Activity
  • Use Cases
  • Support the

Definition and Application of UML Profiles

viernes 18 de mayo de 12

slide-18
SLIDE 18

RDB Designer

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

viernes 18 de mayo de 12

slide-19
SLIDE 19

User Interface Modeling

  • User Interface

Modeling

  • User/Roles
  • System

Views

  • Interaction Units
  • Navigations
  • Presentation

Options

  • Interface

Behavior

  • Interface

Patterns

viernes 18 de mayo de 12

slide-20
SLIDE 20

Sketcher

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

viernes 18 de mayo de 12

slide-21
SLIDE 21

Infrastructure

Method Support: gvMÉTRICA

...

X METHOD Z METHOD

TOOLS INFRASTRUCTURE

Forms Modeling Framework Transformation Management and Configuration Model Explorer Model Synchronization Graphical Editors Traceability Artifacts Library

RDB Designer UML Editor User Interface Modeling BPMN Editor Sketcher Method Designer

viernes 18 de mayo de 12

slide-22
SLIDE 22

The MOSKitt Perspective

A Predefined Set of Views

Resource Explorer Model Explorer Model/Diagram Editor Properties Tab Palette

viernes 18 de mayo de 12

slide-23
SLIDE 23

Forms Modeling Framework (FMF)

  • Facilitates the

development of Forms Editors to manipulate Ecore models

  • Links Widgets and

Model Elements through Databinding

viernes 18 de mayo de 12

slide-24
SLIDE 24

Transformation Manager

Registering Transformations Visualization Organization Prioritization

MOSKitt Transformations

Executing Transformations Input Parameters Results, Validation and Execution Infrastructure (Extensions)

viernes 18 de mayo de 12

slide-25
SLIDE 25

Transformation Manager

1. Transformation Parameters

  • 2. Configuration

3. Validation

  • 2. Configuration
  • 2. Configuration
  • 2. Configuration
  • 4. Results

viernes 18 de mayo de 12

slide-26
SLIDE 26

Transformation Configuration

We can apply different design/implementation decisions (configuration rules) to the same Input Model.

OnlyParentTable

OnlyChildTables

AllTables

Generalization

viernes 18 de mayo de 12

slide-27
SLIDE 27

Transformation Configuration

FMF Forms for Rule Selection

viernes 18 de mayo de 12

slide-28
SLIDE 28

ModelSync and Traceability

MOSKitt provides a complete framework for supporting Model Traceability and Synchronization

MOSKitt provides M2M transformations to automate and simplify modeling tasks

viernes 18 de mayo de 12

slide-29
SLIDE 29

Artifacts Library

  • A repository to store pieces of diagrams to

be reused

viernes 18 de mayo de 12

slide-30
SLIDE 30

Content

  • Process Support and Method

Engineering

  • Dealing with User Interfaces
  • Model Transformations and Code

Generation

PART II: Advanced Features

viernes 18 de mayo de 12

slide-31
SLIDE 31

Process Support and Method Engineering

http://www.moskitt.org

Dashboard and Moskitt4ME

viernes 18 de mayo de 12

slide-32
SLIDE 32

Dashboard

  • Simple DSL for Specifying Development

Processes

  • Method Modeler
  • Method Interpreter
  • Integrated Workbench
  • Reuse GMF Dashboard Infrastructure

viernes 18 de mayo de 12

slide-33
SLIDE 33

Dashboard

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

DSL Primitives:

viernes 18 de mayo de 12

slide-34
SLIDE 34

Dashboard

  • 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”)

Snapshot of the Project State

viernes 18 de mayo de 12

slide-35
SLIDE 35

Dashboard

Dashboard Interpreter

Link and Edit Resources Open Editors Open Cheet Sheets

viernes 18 de mayo de 12

slide-36
SLIDE 36

MOSKitt4ME

  • A Methodological Framework to support the

specification of methods and the generation

  • f CASE tools following MDE and ME

principles.

! ! Method!Base!

Method'Design' Method'Implementa2on'

CASE'Environment'

Method!Process! Support! Method!Product! Support!

M2T' Transforma2on'

4ME

Store' Retrieve'

Model'Driven'Engineering'

! ! ! ! ! ! !

Method'Model'

! ! ! ! ! ! ! Product'Part' ! ! ! ! ! ! ! Process'Part'

viernes 18 de mayo de 12

slide-37
SLIDE 37

MOSKitt4ME

Method Design

Method model SPEM 2.0 standard. Reuse of method fragments.

4ME EPF$Composer$ Repository$client$

viernes 18 de mayo de 12

slide-38
SLIDE 38

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*

viernes 18 de mayo de 12

slide-39
SLIDE 39

MOSKitt4ME

Method Implementation

Method process supported by a process engine Method product supported by reusable assets

! ! ! ! ! ! ! ! ! !

Method'Model'

! ! ! ! ! ! ! Method'Design' ! !

!

Method'Base'

Method'Configura4on' ! !

!

Asset'Base' So7ware'Pla:orm'

Method'Implementa4on'

Method!Process!Support! ! !

Method'''''''''''''''''''''Engineer' Configured'Method'Model' ! ! ! ! ! ! !

references' references'

Model'''''''''''''''''Transforma4on'

references'

!!!!!!Process!Engine!

Method!Product!Support! ! !

viernes 18 de mayo de 12

slide-40
SLIDE 40

MOSKitt4ME

viernes 18 de mayo de 12

slide-41
SLIDE 41

MOSKitt4ME

viernes 18 de mayo de 12

slide-42
SLIDE 42

MOSKitt4ME

  • Tasks can be filtered by:
  • Roles
  • State (All, Pending)
  • Use Colors to distinguish Task State:

Optional Executable Not Executable Done

Process View

viernes 18 de mayo de 12

slide-43
SLIDE 43

Dealing with UIs

http://www.moskitt.org

User Interface Model (UIM) and Sketcher

viernes 18 de mayo de 12

slide-44
SLIDE 44

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

viernes 18 de mayo de 12

slide-45
SLIDE 45
  • UIM. The Language

Views Parts of the overall user interface Users Can access to one or several Views

viernes 18 de mayo de 12

slide-46
SLIDE 46
  • 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

viernes 18 de mayo de 12

slide-47
SLIDE 47
  • UIM. The Language

Information IUs: Data Model View

Additional UI Properties:

Ordering Filtering Masks Triggers

viernes 18 de mayo de 12

slide-48
SLIDE 48

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

viernes 18 de mayo de 12

slide-49
SLIDE 49

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

viernes 18 de mayo de 12

slide-50
SLIDE 50

The Sketcher

UIM SKETCHER

Sketcher as a “Front-End” of the UIM

viernes 18 de mayo de 12

slide-51
SLIDE 51

The Sketcher

  • Connected to UML

Models:

  • Behavior
  • Structure
  • Connected to DB:
  • Data Persistence

viernes 18 de mayo de 12

slide-52
SLIDE 52

Model Transformations

M2M and M2T to automate the SW Production Process

viernes 18 de mayo de 12

slide-53
SLIDE 53

Model Transformations

BPMN UML2

viernes 18 de mayo de 12

slide-54
SLIDE 54

Model Transformations

BPMN UML2 RDB

viernes 18 de mayo de 12

slide-55
SLIDE 55

Model Transformations

BPMN UML2 Sketcher

Also Sketcher to UIM

viernes 18 de mayo de 12

slide-56
SLIDE 56

Code Generation

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

viernes 18 de mayo de 12

slide-57
SLIDE 57

Code Generation

viernes 18 de mayo de 12

slide-58
SLIDE 58

Code Generation

viernes 18 de mayo de 12

slide-59
SLIDE 59

Content

  • Industrial Projects
  • Research Projects and Extensions
  • Project Timeline
  • Some Statistics
  • Lessons Learned

PART III: Industry, Research and Lessons

viernes 18 de mayo de 12

slide-60
SLIDE 60

Industrial Projects

Dirección General de Tecnologías de la Información

MOSKitt-GEO

viernes 18 de mayo de 12

slide-61
SLIDE 61

Industrial Projects

viernes 18 de mayo de 12

slide-62
SLIDE 62

Industrial Projects

viernes 18 de mayo de 12

slide-63
SLIDE 63

Research Projects

European Projects

viernes 18 de mayo de 12

slide-64
SLIDE 64

Research Projects

European Projects

viernes 18 de mayo de 12

slide-65
SLIDE 65

Extensions

viernes 18 de mayo de 12

slide-66
SLIDE 66

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)

viernes 18 de mayo de 12

slide-67
SLIDE 67

Project Timeline

  • RDB Designer, DDL

Generation and Reverse Engineering

  • UML2 + Profiles
  • WBS
  • FEFEM
  • Transformation Manager
  • Transformation

Configuration

  • Traceability and

Synchronization

4/2007 11/2009 10/2011 12/2010 11/2008

1.3.1 1.3.7

6/2012

1.3.9 0.7.2 Starts 1.0.1

2.0

viernes 18 de mayo de 12

slide-68
SLIDE 68

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

4/2007 11/2009 10/2011 12/2010 11/2008

1.3.1 1.3.7

6/2012

1.3.9 0.7.2 1.0.1 Starts

2.0

viernes 18 de mayo de 12

slide-69
SLIDE 69

Project Timeline

4/2007 11/2009 10/2011 12/2010 11/2008

1.3.1

  • Sketcher + User Interface Patterns Editor
  • Sketcher and UIM Integration
  • Code Generation in gvHidra (PHP5)
  • Code Generation in gvNIX (Java)
  • Usability, Stability and Performance Improvements

1.3.7

6/2012

1.3.9 0.7.2 1.0.1 Starts

Mature Enough for SW Companies and P. Administration

2.0

viernes 18 de mayo de 12

slide-70
SLIDE 70

Project Timeline

4/2007 11/2009 10/2011 12/2010 11/2008

1.3.1

  • Code Generation in OpenXava (Java/AJAX)
  • MOSKitt4ME. Method Engineering Support
  • Usability, Stability and Performance Improvements
  • Code Generators Improved
  • New Transformations (UML2Sketcher)
  • ModelSync Improved

1.3.7

6/2012

1.3.9 0.7.2 1.0.1 Starts

Now: Maintaining and Improving MOSKitt

2.0

viernes 18 de mayo de 12

slide-71
SLIDE 71

Some Statistics

  • 1.800 downloads in 2007, 2.117 downloads in

2008...

61% 28% 12%

OS Windows Linux Mac OS X

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

viernes 18 de mayo de 12

slide-72
SLIDE 72

Some Statistics

  • Aprox. 12 Million Euros

Project Statistics in OHLOH (https://www.ohloh.net/projects/moskitt)

viernes 18 de mayo de 12

slide-73
SLIDE 73

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

viernes 18 de mayo de 12

slide-74
SLIDE 74

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)

viernes 18 de mayo de 12

slide-75
SLIDE 75

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

viernes 18 de mayo de 12

slide-76
SLIDE 76

Lessons Learned

  • MDD should be gradually introduced
  • Many times it is not possible to generate the 100%
  • f 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

viernes 18 de mayo de 12

slide-77
SLIDE 77

Download and try MOSKitt!!

viernes 18 de mayo de 12

slide-78
SLIDE 78

Contribute

  • Develop a Module that can be Integrated

into MOSKitt

  • Participate in the Development of MOSKitt

Basic Modules

  • Adapt existing Modules

PROFILES http://www.moskitt.org/perfilescolaboracion

viernes 18 de mayo de 12

slide-79
SLIDE 79

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

viernes 18 de mayo de 12

slide-80
SLIDE 80

Vicente Pelechano

Universidad Politécnica de Valencia

http://www.moskitt.org

Thank you for your Attention

viernes 18 de mayo de 12