3. Model-Driven Software Development
Requirements Analysis Design Implementation Test Operation
Tools
Repositories
and
Transformations
Model-Driven Software Development
!? approaches solve many problems.
But automation industrialization is
still an issue.
4. Introduction
ModelBus is a model-driven tool integration framework which allows you to build a
seamlessly integrated tool environment for your development process.
ModelBus is concerned with the Application Lifecycle Management (ALM)
ModelBus is based on SOA principles and well established standards
Commercial of the shelf tools (COTS) can be plugged to ModelBus to make their
functionality available
ModelBus helps automating your development process
5. ModelBus
General Concept
Requirements Deployment
Tool Tool
Simulation
Analysis Tool
Tool Management
Verification Tool
Design Tool
Tool
Orchestration
Coding Tool Unit Test Tool Control Tool
Tool
Lifecycle Tools Process Enactment
Model Bus
Core Services Modeling Services
Service
Notification Verification Transformation Testing
Registry
Code
Model Storage Simulation Analysis Traceability
Generation
6. Related Technologies
Why do I need ModelBus
ModelBus is a complementary technology that fills gaps in today’s technology portfolio
in order to reach a high level of automation
– Open interfaces
– Built on existing standards
Related Technologies
– Eclipse
Put all your tools into one Eclipse is not feasible
Non-Eclipse tools are still present on the market
– Eclipse with Subversion
This solution is not model-aware
No notification support
– Jazz (IBM)
is not model-aware
costly
8. ModelBus Architecture
Existing Tool
Web
Adapter Interface
Tools / Frontend
Model
Checking
Smart Service and
Indexing Reasoning Transformation Functionality
suggestions
Discovery Trans-
Workflow
Model formation
Testing Services Development
Checking
Search Process
Information Simulation
gap analysis
Code
Simulation
Generation
Common Interface
Model
File Repositories
Intranet System
Repository RDBMS
9. ModelBus Architecture
Interaction Pattern (Service Interaction)
ModelBus Repository is implicitly used by ModelBus when invoking services to realize
the call-by-reference semantics
ModelBus inherently works on model references
Based on scenario this can reduce the overhead of transporting large models
10. Development Process Automation
ModelBus – Orchestration
ModelBus orchestration
can be used to
automate long lasting
MDD processes which
are modeled in BPMN
11. ModelBus Architecture
Deployment
EMF Model
Compare WebService ModelBus
ModelBus dOSGI
Services
Services
Eclipse WebService
TeamProvider Eclipse ModelBus
Repository
RSA Model Headless Eclipse /
SVN Kit
Compare OSGI 4.2 Container
WebService
RSA
TeamProvider
RSA
Subversion
Tool specific
Im-/Export WebService
Other Tool
File System ModelBus
12. ModelBus Tool Adapter
Tool specific Meta Model
A !? Tool specific Meta Model
B
Instance Instance
of A - Instance Transformation of B - Instance
Model 1 of A - Instance Model 1 of B - Trans-
Model 2 of A - format
Model 2 ion
Model 3
Model
Workfl
Checki
ow
ng
Simula Code
tion Gener
ation
Tool specific Meta Model Tool specific Meta Model
A B
Instance
Instance Instance Instance Instance
Instance of A -
of A - of A - of A - of A -
of A - Model 3
Model 1 Model 3 Model 1 Model 2
Model 2
Model
Repository
13. ModelBus Tool Adapter
Domain A Domain B
Tool 1 Tool 2 Tool 3
Tool 1 Tool 2 Tool 3
Meta Model Meta Model Meta Model
Tool 1 Tool 1 Tool 2 Tool 3
Model 1
Tool Model Model Tool 2 Model Tool 3
Model Model Model
Domain A Domain B
Domain A
Model Model
Model
Tool 3
Tool 1 Domain A Domain B Model Tool 3
Tool 1 Tool 2
Model Meta Model Meta Model Model
Tool 1 Model Model Tool 2
Model Tool 1 Model Tool 3
Tool 2
Meta Model Meta Model
Meta Model Model Repository
15. ModelBus
Access Control
ModelBus supports model-driven Access Control, based on user and groups
– Access to namespaces can be restricted based on regular expressions
– By default a user has no access, it needs to be modeled explicitly
– Admin role to allow access on everything
<ownedUser name="Admin" password="ModelBus">
<ownedRule rule=".*" mask="-1"/>
</ownedUser>
– User is based on User Name, Password
– Mask
READ = 1;
WRITE = 2
EXECUTE = 4;
Everything = -1
19. Transformation
Transformation is an essential method in Model-
Driven Engineering
•Model to Model
•Model to Text (e.g. Code Generation, Reporting)
•Data to Model Trans-
formation
Model A Model B
Service and
Functionality Model
discovery Workflow
Checking
Transformation Services Development
Process
Incremental Transformations Simulation
Code
Generation
- only updates will be exchanged
20. Example – Automated Process – Execution of Transformaiton
Requirements Engineer Modeling Engineer
Uses In
Check Tools / Frontend
Word File
Microsoft Word Uses
Check out
Papyrus UML
Model
Trans-
formation
Model
Workflow
Checking
Transformation
Services
Code
Simulation
Generation
send notification to Modeling Engineer
Repositories workflow
Model
Repository
22. Collaboration
Lock element Element is locked
Mike
Tom
Tools / Frontend
support of interactive
both engineers are working
supportmodeling
of lock/unlock
on the collaborative with
work same model
-model is updated incrementally
CHECK-IN, CHECK-OUT
paradigm
Services
check in
check out
Repositories
Model
Repository
25. Acknowledgement
Verde Project (ITEA)
Validation-driven design
for component-based architectures
01|S09012
Cesar Project (ARTEMIS Joint Undertaking)
Cost-efficient methods and processes
for safety relevant embedded systems
Sprint (EC-FP7)
Software PlatfoRm for
Integration of eNgineering and Things
26. Contact
Tom Ritter
Deputy Head of Competence Center MOTION
Fraunhofer Institute
for Open Communication Systems FOKUS
Kaiserin-Augusta-Allee 31, 10589 Berlin, Germany
Tel +49 (30) 34 63 – 7278
Fax +49 (30) 34 63 – 8000
tom.ritter@fokus.fraunhofer.de
http://www.fokus.fraunhofer.de/go/motion
http://www.modelbus.org