220 likes | 398 Views
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/proyectos/web_explore/. www.dsie.upct.es. 3 years National R&D&I Project
E N D
Eclipse-basedtool-chainsupportinga Model-Drivenand Component-Baseddevelopmentprocess Dr. Francisco Ortiz, Dr. Diego Alonso, Dr. Francisca Rosique, Francisco Sánchez
www.upct.es www.dsie.upct.es/proyectos/web_explore/ www.dsie.upct.es 3 yearsNational R&D&I Project 2010-2013 www.dsie.upct.es/cforge
Implementationplatforms • Pioneer P3-AT • Autonomous Golf Vehicle • AutonomousUnderwaterVehicles • UPCT LVS (www.upct.es/lvs) - Regional coordinatedproject • OceanSystemsLab - Heriot-Watt University (Scotland)
What’s C-Forge • WCOMM: metamodel for component-based applications. • component behaviour is expressed as timed-automata • The code executed by the TA states is modeled by activities shells. • FraCC: framework that provides the runtime support for executing WCOMM applications. • It provides control over the deployment of the application (nodes, processes and threads)
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”: • the messages they receive (from other activities or through inports), • and the messages / events they generate (to other activities or to outports / internal to the timed automata) • Note: the code itself (dynamic library) will be linked later in FraCC
FraCC: frameworkforConcurrentComponents • 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”.
FraCCkeypoints • Provides the runtime support needed for executing WCOMM applications • FraCC main features: • Facilitates application deployment (number of nodes, processes, and threads), clearly separating it from application modelling • Control over the concurrency characteristics of the application • Allows dynamic component creation and activity (code) linking • Avoids hidden, framework management code
Eclipse-basedtool-chainsupportinga Model-Drivenand Component-Baseddevelopmentprocess www.dsie.upct.es/cforge Dr. Francisco Ortiz - francisco.ortiz@upct.es Dr. Diego Alonso - diego.alonso@upct.es Dr. Francisca Rosique, Francisco Sánchez
Anex • Extra information in followingslides
User-definedregion(s) Port management region(s) In msgs buffers T=100ms T=50ms Out In Outmsgs buffers FraCC ACT In msgs buffers O I User ACT In Out FraCC ACT Outmsgs buffers
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: • Shared definitions: data-types, interfaces, protocols and activities. Highly reusable between applications • Simple component definition: only component with behaviour on their own, modelled by a timed-automata • Complex component definition: encapsulate other components (either simple or complex), without behaviour • Comprises a total of 64 EClasses