Eclipse- based tool-chain supporting a Model-Driven and Component-Based development process
description
Transcript of Eclipse- based tool-chain supporting a Model-Driven and Component-Based development process
Eclipse-based tool-chain supporting a Model-Driven and Component-Based
development process
Dr. Francisco Ortiz,
Dr. Diego Alonso,
Dr. Francisca Rosique, Francisco
Sánchez
www.upct.es
www.dsie.upct.es www.dsie.upct.es/proyectos/web_explore/
3 years National R&D&I Project2010-2013
www.dsie.upct.es/cforge
Implementation platforms• Pioneer P3-AT• Autonomous Golf Vehicle• Autonomous Underwater Vehicles
o UPCT LVS (www.upct.es/lvs) - Regional coordinated projecto Ocean Systems Lab - Heriot-Watt University (Scotland)
What’s C-Forge• WCOMM: metamodel for
component-based applications. o component behaviour is expressed
as timed-automata
o The code executed by the TA states
is modeled by activities shells.
• FraCC: framework that provides
the runtime support for executing
WCOMM applications. o It provides control over the
deployment of the application (nodes,
processes and threads)
Overview of C-Forge
Interfaces, datatypes, protocols, activities
Simple Componenents (plus timed-automata)
Complex Components and Application
What is a Component in WCOMM?• Are white-box software units that encapsulate their behaviour,
expressed as a timed-automata• Communicate by sending messages to each other only
through their compatible ports• Messages can have parameters, are grouped into interfaces,
and follow the “asynchronous without response” scheme
Compared to OMG’s MARTE, WCOMM ports are flow ports:
• non-atomic (messages can have parameters of any type)
• bi-directional (thanks to protocols),
• behavioural (messages can fire events in timed automata)
Linking behaviour with code: activities• Activities encapsulate code and are associated to
timed-automata states
• Like interfaces, they are global to applications
• Users only model the “activity shell”:o the messages they receive (from other activities or through
inports),
o and the messages / events they generate (to other activities or to outports / internal to the timed automata)
o Note: the code itself (dynamic library) will be linked later in FraCC
WCO
MM
MET
AMO
DEL
:W
IDA
WCO
MM
MET
AMO
DEL
:CO
MPO
NEN
TS
WCOMM METAMODEL:EXTENDED TIMED AUTOMATA
• Concurrency & flexible deployment (c) - “fine tuned” by the user
• M2M transf. (e) for RT- Analysis (g)
• A model loader (d) performs the model interpretation at “execution time”.
FraCC: framework for Concurrent Components
FraCC keypoints
• Provides the runtime support needed for executing
WCOMM applications
• FraCC main features:o Facilitates application deployment (number of nodes,
processes, and threads), clearly separating it from
application modelling
o Control over the concurrency characteristics of the
application
o Allows dynamic component creation and activity (code)
linking
o Avoids hidden, framework management code
Code templates for activities
Sample Fracc
Execution
Eclipse-based tool-chain supporting a Model-Driven and Component-Based
development process
Dr. Francisco Ortiz -
Dr. Diego Alonso -
Dr. Francisca Rosique, Francisco Sánchez
www.dsie.upct.es/cforge
Anex• Extra information in following slides
User ACT
IO
User-defined region(s)
In
Out
Port management region(s)
In
Out
Outmsgs buffers
In msgs buffers
FraCC ACT
In msgs buffers
Out msgs buffers
FraCC ACT
T=100ms T=50ms
Cheddar analysis of FraCC applications
• FraCC threads are converted to Cheddar threads
• Shared resources are derived from the assignment of components to processes and regions to threads in a systematic way
• Activities should be previously characterised: wcet, periodicity, deadline, etc.
Main WCOMM characteristics• Supports modelling for reuse and modelling by reuse
by separating definitions (data-types, interfaces, activities and components) from their instances
• Defines three highly cohesive but loosely coupled views: o Shared definitions: data-types, interfaces, protocols and
activities. Highly reusable between applications
o Simple component definition: only component with behaviour on their own, modelled by a timed-automata
o Complex component definition: encapsulate other components (either simple or complex), without behaviour
• Comprises a total of 64 EClasses