Presentation is loading. Please wait.

Presentation is loading. Please wait.

Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.

Similar presentations


Presentation on theme: "Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato."— Presentation transcript:

1 Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato in Informatica Relatore: Prof. ANDREA ASPERTI Maggio 2005

2 May 2005Whole Platform2 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

3 May 2005Whole Platform3 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

4 May 2005Whole Platform4 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

5 May 2005Whole Platform5 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

6 May 2005Whole Platform6 Whole IDE Architecture

7 May 2005Whole Platform7 Whole IDE (screenshots)

8 May 2005Whole Platform8 Whole Languages Architecture

9 May 2005Whole Platform9 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

10 May 2005Whole Platform10 Model Whole Generative System (frameworks) Traversal FrameworkEditing Framework Java Model Generation Framework Persistence Framework Notification Framework Modeling Framework JDT Model Java DB Java

11 May 2005Whole Platform11 Whole Generative System

12 May 2005Whole Platform12 Implementation vs. Design complexity Whole*MbedJavaXMLtot Java Lines of Code (LoC)83561197313060294736336 Java LoC written by hand8356159260110210551 Metamodels LoC078490118686 Number of Packages2316241376 Number of Interfaces361430989 Number of Classes2671674511541039 Number of Methods228615195152147210429 Number of Attributes402132333123990 Design complexity exceeds implementation complexity and requires new design patterns Whole*: includes Whole IDE plugins and Whole Generative System frameworks

13 May 2005Whole Platform13 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

14 May 2005Whole Platform14 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.

15 May 2005Whole Platform15 Compound Model Pattern

16 May 2005Whole Platform16 Resolver Object Pattern Structure

17 May 2005Whole Platform17 Model Context Pattern Structure

18 May 2005Whole Platform18 Visitable Marker Interface Pattern Structure

19 May 2005Whole Platform19 Use case: language definition 1.Define the model and an editor notation for the language Using for instance the metamodeling language Mbed DSL 2.Generate all the code for editing and manipulating the language (model) 100% of Java code generated The result is a standard Eclipse Platform Plugin

20 May 2005Whole Platform20 1. Model & Editor definition

21 May 2005Whole Platform21 2. Code generation Modeling Framework Mbed Java Persistence Framework Editing Framework Java Controller and view classes Model and Factories classes Java Traversal Framework Java Visitors and visitor combinator classes Notification Framework Java Model specific event handler classes Persistence and metaprogramming visitor classes

22 May 2005Whole Platform22 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

23 May 2005Whole Platform23 Embedding and Metaprogramming Java XML EBNF Java (meta) Java

24 May 2005Whole Platform24 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

25 May 2005Whole Platform25 Text based alternative: Velocity Host Language: fixed (poor) Target language: any (text) Host only editing support

26 May 2005Whole Platform26 Text based alternative: XSLT Host Language: fixed (poor) Target language: any (text/xml) Host only editing support

27 May 2005Whole Platform27 Model based alternative: MetaAspectJ Host Language: Java Target language: AspectJ (model) No editing support

28 May 2005Whole Platform28 Proposed solution: Whole Host Language: any (model) Target language: any (model) Full editing support

29 May 2005Whole Platform29 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)

30 May 2005Whole Platform30 Related works (cont.) Vendor technology previews –Software Factories (Microsoft) –Meta-Programming System (JetBrains) –Intentional Programming (Intentional Software) –HyperSenses (Delta Software)

31 May 2005Whole Platform31 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

32 May 2005Whole Platform32 Future work A DSL for specifying model behavior –Based on Traversal and Notification frameworks Full versioning support DBMS based persistence


Download ppt "Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato."

Similar presentations


Ads by Google