Whole platform
This presentation is the property of its rightful owner.
Sponsored Links
1 / 32

Whole Platform PowerPoint PPT Presentation


  • 79 Views
  • Uploaded on
  • Presentation posted in: General

Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato in Informatica. Whole Platform. Tesi di Dottorato di: RICCARDO SOLMI. Relatore: Prof. ANDREA ASPERTI. Maggio 2005. Summary. What is it and motivations Description of the Whole Platform

Download Presentation

Whole Platform

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Whole platform

Università degli Studi di Bologna

Facoltà di scienze matematiche, fisiche e naturali

Corso di Dottorato in Informatica

Whole Platform

Tesi di Dottorato di:RICCARDO SOLMI

Relatore:Prof. ANDREA ASPERTI

Maggio 2005


Summary

Summary

  • What is it and motivations

  • Description of the Whole Platform

    • Development Environment

    • Languages

    • Frameworks

  • Design patterns introduced

  • Two use cases

    • Language definition

    • Generator development

  • Related works and Conclusions

Whole Platform


What is the whole platform

What is the Whole Platform

  • A model driven technology for engineering the production of software

  • A development environment for developing new languages and tools

  • A metaprogramming tool for writing model to model generators

Whole Platform


Motivations

Motivations

  • To support evolution and extension of languages

    • Examples: Java 5, AspectJ

  • To allow the use of multiple languages together

    • Usual for XML based languages

    • New research languages: Comega, Xj

    • Metaprogramming with embedded languages

  • To integrate languages in development environments

    • Examples: C++, Cobol

  • To give a linguistic alternative to the libraries

  • To replace text driven with model driven generators

Whole Platform


Whole platform1

Whole Platform

  • A software platform including:

    • Whole IDE: a visual programming environment supporting rich graphical editing of model driven languages.

    • Whole Languages: a family of languages including popular languages and some new metamodeling languages

    • Whole Generative System: a set of frameworks providing the infrastructure for implementing model driven languages and for giving them a translational semantics

Whole Platform


Whole ide architecture

Whole IDE Architecture

Whole Platform


Whole ide screenshots

Whole IDE (screenshots)

Whole Platform


Whole languages architecture

Whole Languages Architecture

Whole Platform


Whole languages

Whole Languages

  • Languages can include:

    • General Purpose Languages (GPL)

      • examples: Java, Scheme, XML

    • Domain Specific Languages (DSL)

      • examples: BNF, UML

    • Set of constructs; examples: declarations, control flow, math, aspects, metaprogramming

    • Composed languages; example: Java + metaprogramming

  • A standard set of languages is provided

    • Metamodeling DSL: Mbed, Models, Editors, Languages, Operations

    • Popular languages: Java, XML, Text, BNF

  • New languages can be added and composed

Whole Platform


Whole generative system frameworks

Traversal Framework

Modeling Framework

Notification Framework

Editing Framework

Java ModelGeneration Framework

Persistence Framework

Java

Java

DB

Java

Java

Java

Java

Whole Generative System (frameworks)

Model

JDTModel

Whole Platform


Whole generative system

Whole Generative System

Whole Platform


Implementation vs design complexity

Implementation vs. Design complexity

Design complexity exceeds

implementation complexity and

requires new design patterns

Whole*: includes Whole IDE plugins and Whole Generative System frameworks

Whole Platform


Design patterns introduced enhanced

Design Patterns introduced/enhanced

  • Compound Model – a model able to embed other model fragments

  • Resolver Object – a surrogate for an object having a fixed interface and an underspecified implementation

  • Model Context – encapsulates the model for its lifetime and hides all details concerned with creation, assembling and traversing

  • Intensional Behavior – traces the model history and allows for intensional query, navigation and execution

Whole Platform


Design patterns introduced enhanced1

Design Patterns introduced/enhanced

  • Staged Visitor Combinators – A Visitor Pattern supporting staging, compound models and composable traversal strategies

  • Visitable Marker Interface – To minimize implementation constraints while maximizing behavior accessible without casting.

  • Streaming builders – A Builder Pattern supporting stream based behavior.

Whole Platform


Compound model pattern

Compound Model Pattern

Whole Platform


Resolver object pattern structure

Resolver Object Pattern Structure

Whole Platform


Model context pattern structure

Model Context Pattern Structure

Whole Platform


Visitable marker interface pattern structure

Visitable Marker Interface Pattern Structure

Whole Platform


Use case language definition

Use case: language definition

  • Define the model and an editor notation for the language

    • Using for instance the metamodeling language Mbed DSL

  • Generate all the code for editing and manipulating the language (model)

    • 100% of Java code generated

    • The result is a standard Eclipse Platform Plugin

Whole Platform


1 model editor definition

1. Model & Editor definition

Whole Platform


2 code generation

Notification Framework

Modeling Framework

Persistence Framework

Editing Framework

Traversal Framework

Java

Java

Java

Java

Java

Java

Java

Java

Java

Java

Java

Java

2. Code generation

Mbed

Model specific event handler classes

Controller and view classes

Visitors and visitor combinator classes

Model and Factories classes

Persistence and metaprogramming visitor classes

Java

Whole Platform


Use case writing a generator

Use case: writing a generator

  • Choose (or define) an host (generator) language and one or more target languages

    • The metaprogramming support is added to each Whole Language by the generative frameworks

      • All languages can be used as target languages

      • All executable languages can be used as host languages

  • Using the Whole IDE editor all the code generator can be written

Whole Platform


Embedding and metaprogramming

Embedding and Metaprogramming

Java

Java

(meta)

EBNF

Java

XML

Java

Whole Platform


Metaprogramming facilities

Metaprogramming facilities

  • Grant well-formed output of target fragments

    • If the host language is typed then grant that the output program is well-formed

  • The target is a model and the generator can query and manipulate the part already generated

  • The target model manipulation has learning behavior

    • Hide distinction between adding and traversing

Whole Platform


Text based alternative velocity

Text based alternative: Velocity

  • Host Language:fixed (poor)

  • Target language:any (text)

  • Host only editing support

Whole Platform


Text based alternative xslt

Text based alternative: XSLT

  • Host Language:fixed (poor)

  • Target language:any (text/xml)

  • Host only editing support

Whole Platform


Model based alternative metaaspectj

Model based alternative: MetaAspectJ

  • Host Language:Java

  • Target language:AspectJ (model)

  • No editing support

Whole Platform


Proposed solution whole

Proposed solution: Whole

  • Host Language:any (model)

  • Target language:any (model)

  • Full editing support

Whole Platform


Related works

Related works

  • OMG specifications: Model Driven Architecture (MDA)

    • Modeling (MOF), notation (UML), persistence (XMI)

    • TODO: Query, View and Transformations (QVT)

  • Eclipse proposals: Model Driven Development,Language Development Toolkit and Graphical Modeling Framework

    • Modeling (EMF), notation (GEF based), persistence (XMI)

    • Metamodels textual notation (Emfatic), transformations (MTF)

Whole Platform


Related works cont

Related works (cont.)

  • Vendor technology previews

    • Software Factories (Microsoft)

    • Meta-Programming System (JetBrains)

    • Intentional Programming (Intentional Software)

    • HyperSenses (Delta Software)

Whole Platform


Conclusions

Conclusions

  • Unique features of the Whole Platform

    • A streaming API for building and persisting models

    • Model driven metaprogramming with concrete syntax

    • Composable families of traversals, iterators, adapters

    • Intensional execution of behavior

  • All frameworks have been tested with real languages

  • New DSL languages for modeling and editing

    • 100% of a language implementation is generated

    • Generated code quality: same as hand written

  • New Generative and Design Patterns introduced

  • The Whole Platform is available at: whole.sourceforge.net

Whole Platform


Future work

Future work

  • A DSL for specifying model behavior

    • Based on Traversal and Notification frameworks

  • Full versioning support

  • DBMS based persistence

Whole Platform


  • Login