Tool for Design and Code
Generation
Tri Do
dotri84@[Link]
Co-Supervisors: Dr. Quan Thanh Tho - HCMUT, Vietnam
Biljana Bajic, Alain Wegmann - EPFL, Switzerland
University of Technology
Ho Chi Minh City 2011
Overview
The challenge of software development
[W3] Model Driven Development?
UML Factbook
UML Deficiencies & EA
OPM & OPCAT
SysML
Basic ideas of SEAM
The challenge of software
development
Le
a
Difficulty in producing reliable estimates
rn
Problems with securing the right people, at the right time
Fro
Delivery milestones slipped repeatedly
Difficulty in integrating with other systems
m
Unacceptable levels of bugs found during system testing
Fa
High rates of bugs found after implementation
ilu
Reluctant, disillusioned and dissatisfied users
r
High ongoing maintenance costs
Unhelpful system documentation
e
Systems that are inflexible in response to business change
[W3] Model Driven
Development?
What MDD?
Raise the level of abstraction from textual
code to visual models.
Why MDD?
Agile Modeling
Quickly represent a solution to stakeholders
When MDD?
Depend on your choices
“It’s not the strongest who survive
nor the most intelligent, but the ones
most adaptable to change.”
- Charles Darwin
UML Factbook
UML stands for “Unified Modeling Language”
UML is not dependent on any one language or
technology.
It is a industry-standard graphical language for
specifying, visualizing, constructing, and
documenting the artifacts of software systems
UML 2.3 has 14 types of diagrams.
Class Diagrams, Sequence Diagrams, Statechart
Diagrams, Activity Diagrams…
Size of UML 2.3 specification: over 700 pages
A major research endeavor. (read more [10])
UML Modeling Tools
Rational Rose, Rational Rhapsody (
[Link]) by IBM
Enterprise Architect (
[Link]
ArgoUML (free software) (http://
[Link]/) Open Source
Others (
[Link]
[Link]
)
UML Deficiencies
9 Deficiencies (Read more [3])
So many models, each model introduces its
own set of symbols and concepts.
Difficult to maintain integration, consistency
among views. ([6])
…
Object Process Methodology
(OPM)
Developed by Dov Dori in 2002
Holistic methodology that covers structure and behavior
of systems using a single mode
Motivation:
Unbalanced structure-behavior representation
Model multiplicity problem (Peleg et al, 2000)
Bi-model representations
Graphical: Object-Process Diagrams (OPD)
Textual: Object-Process Language (OPL)
OPM
OPM uses Objects and Processes in order to model the
structural and behavioral
Objects are things that exist over time. Object can be
stateful (i.e., have states).
Processes are things that transform Objects by creating
them, destroying them, or changing their states.
Procedural links connect processes to objects to express
these transformations.
Structural relations connect objects to express static,
long-term between them.
OPM (cont.)
ISO/TC 184/SC 5 committee have decided to establish a
Study Group tasked with exploring OPM as an ISO
standard for ISO/TC 184/SC 5. (April 2009)
Industrial Partners: KODAK, NASA, Siemens PLM
Solutions, US Navy, …
Academic and Standards Institutions: ISO, MIT, Keio
University, Penn State University, …
OPL
OPM Model
SD: High level view
OPD
OPM vs. UML
UML has multiple-views
Each view specifies a different aspect
The diagram types are divided into:
Structural diagrams
Procedural diagrams
OPM vs. UML
OPM: Process is an entity that uniformly represents
patterns of behavior
UML: Behavior of the system can be spread across
five diagram types
OPM: System’s structure and behavior are specified
side-by-side, enabling one to see the whole picture in
a single view
UML: System’s structure and behavior are specified
at different and separate
views
OPM vs. UML
OPM: No need for mental transformations
and integration across different views
UML: Need to validate consistency among
the various views
OPM: 25 symbols
UML: 150 symbols (Dori,2002)
OPCAT ([Link])
OPCAT (Object-Process CAse Tool) has been
developed as a CASE tool to support the Object-
Process Methodology.
Graphic and textual representation, jointly express the
same OPM model
OPL serves human as well as machine
OPCAT provide an advanced simulation tool
OPCAT enable code generation (using OPL)
OPCAT enable UML diagrams generation
OPCAT overview
Entities
Structural Procedural
links links
Simulation by animation
What is SySML?
SysML is a graphical modeling language
A UML profile that represents a subset of
UML 2 with extensions
Is methodology and tool independent
Some tools:
TOPCASED-SYSML
Papyrus for SysML
…
Systemic Enterprise Architecture
Methodology (SEAM)
A family of methods for strategic thinking, business / IT
alignment, requirement engineering.
SEAM provides a language and a CAD tool (SeamCAD)
for visual modeling. Visual model made by SeamCAD is
stored as an XML file.
SEAM’s ontology is based on RM-ODP and formalized in
a specification language called Alloy ([Link]).
Alloy is a model checker decides formula satisfiable and
generates model instance.
SEAM (cont.)
SeamCAD – Eclipse’s plug in
Precondition, Postcondition, Invariant fields added (read
more [7],[8])
Help in Code Generation ?
Data Dictionary as JSON file
JavaCC compile Data Dictionary + Template
Reference
1. From Business Specification Down to Executable JEE code using SEAM, a
Systemic Design and Analysis Method
Biljana Bajic, Claude Petitpierre, Alain Wegmann
School of Computer, Communication and Information Sciences
E´cole polytechnique fe´de´rale de Lausanne (EPFL)
CH-1015 Lausanne, Switzerland
2. SeamCAD: Object-Oriented Modeling Tool for Hierarchical Systems in
Enterprise Architecture
Lam-Son Lê, Alain Wegmann
3. Problems and Deficiencies of UML as a Requirements Specification
Language
Martin Glinz - Institut für Informatik, Universität Zürich Winterthurerstrasse 190
CH-8057 Zurich, Switzerland
4. OPM vs. UML - Experimenting with Comprehension and Construction of
Web Application [Link] Software Engineering
Iris Reinhartz-Berger and Dov Dori
Reference (cont.)
5. Object-Process Methodology (OPM) vs. UML: A Code Generation
Perspective
Iris Reinhartz-Berger1 and Dov Dori2
6. Workshop on "Consistency Problems in UML-based Software Development
II“
Ludwik Kuzniarz, Zbigniew Huzar, Gianna Reggio, Jean Louis Sourrouille, Miroslaw
Staron
7. Objects, components, and frameworks with UML - The Catalysis approach,
4th ed. Addison-Wesley, 2001
D. F. D’Souza, and A. C. Wills
8. Catalysis page
[Link]
Reference (cont.)
9. Alloy
[Link]
10. OMG Unified Modeling LanguageTM (OMG UML), Superstructure v2.4
[Link]
Thank you!