Tigerstripe @ Eclipse Summit 08

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Tigerstripe @ Eclipse Summit 08 - Presentation Transcript

    1. Tigerstripe Richard Craddock, Eric Dillon (Cisco) Integrated Model-Driven Engineering
    2. Get started with Tigerstripe
      • Quick project overview
      • Tigerstripe Workbench: highlights
      • Requirements for Real-life MDE
      • Customize the Tigerstripe Framework
      • Wrap-up – Q&A
    3. Project Overview
      • Technology sub-project, in Incubation
        • Model-Driven-Engineering framework for large Telecom and Enterprise Models
        • Open-sourced by Cisco in Jan’08
        • Used in production (Cisco ANA)
      • Website: www.eclipse.org/tigerstripe
      • Wiki: http://wiki.eclipse.org/Tigerstripe
      • (all materials available at http://wiki.eclipse.org/TigerstripeAtEclipseSummit08 )
    4. Tigerstripe: The Workbench
      • A Scalable MDE environment
        • Class Diagrams, Instance Diagrams
        • Model Scoping (facets)
        • Integrated Code/Content Generation
        • Scalable, production-ready
        • Integration with Continuous builds Env.
    5. Concepts: Componentized Models
      • Models are hosted in a project
      • Cross-project dependencies can be used in a Java-Classpath fashion
      • Models can be packaged as .zip for read-only distribution.
      • Allow to “Componentize” large models
      • Buckminster integration to materialize large number of inter-dependent model projects.
      references
    6. Concepts: SCM Friendly Models
      • Model Artifacts are stored in separate files in project
      • Allows SCM to handle them separately, and set own revisions
      • Reduces number of required merges when large distributed team work on large models.
    7. Concepts: Model Scoping
      • Define model self-contained, valid, sub-models by walking all relevant relationships
      • Use Stereotypes/Annotations to control model lifecycle
      • Use sub-model as driver for code/content generation
      Out of Scope
    8. Template-based Code/Content Generation
    9. Instance-based vs. Class-based Generation
    10. Real-life Model-Driven Engineering
      • The model…
        • Is shipped with product (partners/customers)
        • Is annotated
          • To drive code generation
          • To document design
          • Documentation
      • The platform…
        • Controls the model is valid
        • Facilitates distributed development
        • Generates content/code
      Dev. Team (not shared with Partners/Customers) Modeling Team (shared with Partners) Doc. Team (shared with Partners/Customers)
    11. Tigerstripe Annotation Framework
      • Principles
        • Associate Arbitrary EMF object with URI
        • Independent of Tigerstripe Core
        • Allow for custom UI, both as property view or on GMF diagrams
        • Control where they are persisted
      package org.eclipse.tigerstripe.annotation.core; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; public interface Annotation extends EObject { … URI getUri(); void setUri(URI value); … EObject getContent(); void setContent(EObject value); … String getId(); void setId(String value); } // Annotation
      • Goals:
        • Documentation Annotations created when Entities are created
        • Visual indication of documentation, and design notes
        • Require documentation content for code/content generation.
        • Integrate with Continous Build Environment
      Let’s build an example! 1. Define an Artifact pattern to ensure “Entities are created with ‘Documentation’ Annotations” <pattern:creationPattern patternName= &quot;org.eclipse.tigerstripe.samples.eclipseSummit08.DocumentedEntity&quot; uiLabel= &quot;Documented Entity&quot; iconPath=&quot;icons/cube-new.png&quot; disabledIconPath=&quot;icons/cube-new-gs.png&quot; patternType= &quot;node&quot; index=&quot;100&quot; xmlns:pattern= &quot;http://org.eclipse.tigerstripe/xml/tigerstripeCreationPattern/v1-0&quot; xmlns:ts= &quot;http://org.eclipse.tigerstripe/xml/tigerstripeExport/v2-0&quot;> <pattern:description>Create a new Documented Entity</pattern:description> <ts:artifact name= &quot;_user1” artifactType= &quot;org.eclipse.tigerstripe.workbench.model.deprecated_.IManagedEntityArtifact&quot;> <ts:annotations> <![CDATA[<xmi:XMI xmi:version=&quot;2.0&quot; xmlns:xmi=&quot;http://www.omg.org/XMI&quot; xmlns:d=&quot;http:///org/eclipse/tigerstripe/samples/eclipseSummit08/annotations/ documentation.ecore&quot;> <d:Documentation author=&quot;&quot; content=&quot;&quot;/> </xmi:XMI>]]> </ts:annotations > </pattern:creationPattern> 3. Define custom audit code (IArtifactAuditor & ext. pt into Tigerstripe Incremental Builder) to check on content of Annotation. 2. Define custom IconProvider and ITigerstripeLabelDecorator driven by presence/Content of Annotations 4. Use buckminster to materialize and Maven to generate code/content.
    12. Example: Define 2 Annotation Types
      • Annotation content is defined thru .Ecore
      • Register as AnnotationType, with proper target
      • Add LabelProvider, Validators, Constraints, etc…
      • See http://wiki.eclipse.org/Tigerstripe_APIs
      <extension point=&quot;org.eclipse.tigerstripe.annotation.core.annotationType&quot;> <definition description=&quot;Documentation content&quot; eclass=&quot;Documentation&quot; epackage-uri=&quot;http:///org/eclipse/… /annotations/documentation.ecore&quot; name=&quot;Documentation&quot;> <target type=&quot;org.eclipse.tigerstripe.workbench.model.deprecated_.IModelComponent&quot; unique=&quot;true&quot;> </target> </definition> </extension>
    13. Install Annotations… … and annotate the model. Selection-based view Native EditPart on GMF Diagrams Annotation “routed” to .ann file
    14. Customized Workbench
    15. Materialize and Build
      • Use Buckminster to materialize
      • Drive headless generation
      <cs:cspec xmlns:cs=&quot; http://www.eclipse.org/buckminster/CSpec-1.0 &quot; name=&quot;Equipment-model&quot; componentType=&quot;tigerstripe&quot;>     <cs:dependencies>         <cs:dependency name=&quot;common-model&quot; componentType=&quot;tigerstripe&quot; />         <cs:dependency name=&quot;ClassLevel-Generator&quot; componentType=&quot;tigerstripe.generator&quot; />     </cs:dependencies>     <cs:actions>         <cs:public name=&quot;install-generator&quot; actor=&quot;ant&quot;>             <cs:properties>                 <cs:property key=&quot;projectname&quot; value=&quot;ClassLevel-Generator&quot;/>             </cs:properties>         </cs:public>     </cs:actions> </cs:cspec> `          <plugin>             <groupId>cisco-tigerstripe</groupId>             <artifactId>maven-tigerstripe-plugin</artifactId>             <version>1.1</version>             <executions>                     <execution>                     <configuration>                         <workspace>${basedir}/workspace</workspace>                         <projects>                             <param>${workspace}/base-defs</param>                             <param>${workspace}/common-model</param>                             <param>${workspace}/Equipment-model</param>                         </projects>                         <generationProject>${workspace}/Equipment-model</generationProject>                     </configuration>                     <goals>                         <goal>generate</goal>                     </goals>                 </execution>             </executions>         </plugin>
    16. Wrap-up
      • Tigerstripe
        • As a workbench
        • As a MDE framework
      • Annotation Framework
      • Integration with Continuous build environments.
    17.  

    + Eric DillonEric Dillon, 2 years ago

    custom

    398 views, 1 favs, 1 embeds more stats

    Introduction to Tigerstripe Model Driven Engineerin more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 398
      • 391 on SlideShare
      • 7 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 6
    Most viewed embeds
    • 7 views on http://www.eclipsecon.org

    more

    All embeds
    • 7 views on http://www.eclipsecon.org

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories