Vicente Pelechano
Universidad Politécnica de Valencia
http://www.moskitt.org
Automating the Development
of Information Systems with
the MOSKitt Open Source Tool
Content
•
PART I: About the Project and the Tool
•
PART II: Advanced Features
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
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
Project Overview
Project Participants
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...
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
Technologies
Eclipse Modeling Project
EMF
GMF
GEF
EMF Compare
EMF Search
UML2 Tools
Eclipse Process
Framework (EPF)
Technologies
ATL
AMW
XPand2
Xtend
Data Tools Platform
BPMN STP
JUnit
Technologies
Content Management System
Project Management Web App
Control Version
System
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
...
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
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
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 Interface
Modeling
•
User/Roles
•
System Views
•
Interaction Units
•
Navigations
•
Presentation
Options
•
Interface
Behavior
•
Interface
Sketcher
•
Sketcher
•
Window
•
Label
•
Button
•
Textbox
•
Checkbox
•
Table
•
Tab Panel
•
Bar Menu
•
Pagination
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
The MOSKitt Perspective
A Predefined Set of Views
Resource Explorer
Model Explorer
Model/Diagram Editor
Properties Tab
Forms Modeling
Framework (FMF)
•
Facilitates the
development of
Forms Editors to
manipulate Ecore
models
•
Links Widgets and
Model Elements
Transformation
Manager
Registering Transformations
Visualization
Organization
Prioritization
MOSKitt
Transformations
Executing Transformations
Input Parameters
Results, Validation and Execution
Transformation Manager
1. Transformation
Parameters
2. Configuration
3. Validation
4. Results
Transformation
Configuration
We can apply different design/implementation decisions
(configuration rules) to the same Input Model.
OnlyParentTable
OnlyChildTables
AllTables
Transformation
Configuration
FMF Forms
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
Process Support and
Method Engineering
http://www.moskitt.orgDashboard
and
Moskitt4ME
Dashboard
•
Simple DSL for Specifying Development
Processes
•
Method Modeler
•
Method Interpreter
•
Integrated Workbench
Dashboard
•
Tasks
•
Task Dependencies
•
I/O Resources, References to Resources
•
Actions:
open
Editor,
execute
Transformation...
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
”)
Dashboard
Dashboard Interpreter
Link and Edit
Resources
Open Editors
MOSKitt4ME
•
A Methodological Framework to support the
specification of methods and the generation
of 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'
MOSKitt4ME
Method Design
Method model SPEM 2.0 standard.
Reuse of method fragments.
4ME
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
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!
!
!
Configured'Method'Model'
!
!
!
!
!
!
!
references' references' references'
!!!!!!
Process!Engine!
Method!
Product
!Support!
!
MOSKitt4ME
•
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
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)
UIM. The Language
Views
Parts of the overall user interface
Users
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
The Sketcher
UIM
SKETCHER
The Sketcher
•
Connected to UML
Models:
•
Behavior
•
Structure
•
Connected to DB:
•
Data Persistence
Model Transformations
M2M
and
M2T
to automate the SW
Model Transformations
BPMN
Model Transformations
BPMN
UML2
Model Transformations
BPMN
UML2
Sketcher
Code Generation
Protected Zones
can be used to preserve
developers changes (codification)
Content
•
Industrial Projects
•
Research Projects and Extensions
•
Project Timeline
•
Some Statistics
•
Lessons Learned
PART III:
Industry,
Research and
Lessons
Industrial Projects
Dirección General de Tecnologías de la Información
Research Projects
Research Projects
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
Project Timeline
•
RDB Designer, DDL
Generation and Reverse
Engineering
•
UML2 + Profiles
•
WBS
•
FEFEM
•
Transformation Manager
•
Transformation
Configuration
•
Traceability and
Synchronization
4/2007
11/2008
11/2009
12/2010
10/2011
1.3.1
1.3.7
6/2012
1.3.9
0.7.2
Starts
1.0.1
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/2008
11/2009
12/2010
10/2011
1.3.1
1.3.7
6/2012
1.3.9
0.7.2
1.0.1
Starts
2.0
Project Timeline
4/2007
11/2008
11/2009
12/2010
10/2011
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
2.0
Project Timeline
4/2007
11/2008
11/2009
12/2010
10/2011
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
Some Statistics
•
1.800
downloads in 2007,
2.117
downloads in
2008...
61%
28%
12%
OSWindows Linux Mac OS X