A Family of Languages for Architecture Description OOPSLA 2008 Markus Voelter

Slides:



Advertisements
Similar presentations
GenArch: Automatic Product Derivation in Multi-agent Systems Product Line Elder Cirilo.
Advertisements

.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Architecture Representation
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Modeling Notations.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
. Plab – Tirgul 12 Design Patterns. Design Patterns u The De-Facto Book on Design Patterns:
CS189A/172 - Winter 2008 Lecture 7: Software Specification, Architecture Specification.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
Starting Chapter 4 Starting. 1 Course Outline* Covered in first half until Dr. Li takes over. JAVA and OO: Review what is Object Oriented Programming.
1 © Talend 2014 Service Registry / WS-Policy Registry Training Slides 2014 Jan Bernhardt Zsolt Beothy-Elo
Design Patterns.
Xactium xDSLs Run Models Not Code Tony Clark
March 12 & 13, 2007 Practical Code Generation Peter Bell SystemsForge.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
Information Management NTU Interprocess Communication and Middleware.
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
Copyright © 2009 AtlanMod. All Rights Reserved Frédéric Jouault & Hugo Bruneliere AtlanMod team (INRIA & Mines de Nantes) Possible Benefits of Bridging.
Domain-Specific Development Stuart Kent, Senior Program Manager, DSL Tools, Visual Studio Team System, Microsoft.
ActorFrame Visualisation. Background ActorFrame provides means to define services by instances of collaborating actors. Actors can have an internal structure.
Paper written by Flavio Oquendo Presented by Ernesto Medina.
Client or Partner logo and Together. Free your energies Xtext workshop – level: Advanced SIG Domain Language Engineering Peter Vermeulen, Meinte Boersma.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
© M a rk u s V ö l t e r Handling Variability in Model Transformations and Generators Handling Variability in Model Transformations and.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
DSL Classification October 21-22, 2007 Benoît Langlois / Thales-EPM Consuela-Elena Jitia / Eric Jouenne, Thales Research & Technology The 7th OOPSLA Workshop.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Automata Based Method for Domain Specific Languages Definition Ulyana Tikhonova PhD student at St. Petersburg State Politechnical University, supervised.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Alternative Architectures: Inversion of Control Mike Hadlow mikehadlow.blogspot.com.
ESMF Code Generation with Cupid Update and Demo October 2009 Rocky Dunlap Spencer Rugaber Leo Mark Georgia Tech College of Computing.
Software Product Lines Peter Bell CEO/CTO, SystemsForge cf.Objective() 2008 Peter Bell CEO/CTO, SystemsForge cf.Objective() 2008.
© 2010 by Boeing; made available under the EPL v1.0 | March 23, 2010 | Xtext and GEF deliver editors for the Open System Engineering Environment Ryan Brooks.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany.
Chapter 16 UML Class Diagrams 1CS6359 Fall 2012 John Cole.
1 5/18/2007ã 2007, Spencer Rugaber Acme Architectural interchange language – CMU and ISI Extensible Tool support –AcmeStudio.
Software Development Introduction
SwE 455 Tutorial. What is Evolve? Evolve is a tool for defining components and connecting them together to form new components. Also provides a runtime.
1 Integrating Models with Domain-Specific Modeling Languages 18 October 2010 Steven Kelly & Juha-Pekka Tolvanen.
.NET Mobile Application Development XML Web Services.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Using DSDL plus annotations for Netconf (+) data modeling Rohan Mahy draft-mahy-canmod-dsdl-01.
IHP Im Technologiepark Frankfurt (Oder) Germany IHP Im Technologiepark Frankfurt (Oder) Germany ©
Product Configurator – A Customer Story
Based on Eric Dashofy’s slides for
UML Diagrams By Daniel Damaris Novarianto S..
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Software Tools and Environments
APPLICATION OF DESIGN PATTERNS FOR HARDWARE DESIGN
STF 454 TDL – Overview Last change:
UML Diagrams Jung Woo.
SwE 455 Tutorial.
Chapter 7 –Implementation Issues
Copyright 2007 Oxford Consulting, Ltd
OOPSLA Workshop on Domain-Specific Modeling Tools Workgroup
Towards an Open Meta Modeling Environment
Design Patterns Imran Rashid CTO at ManiWeber Technologies.
STF 454 TDL – Overview Last change:
Graphical Modeling of INFOD applications
Plug-In Architecture Pattern
Presentation transcript:

A Family of Languages for Architecture Description OOPSLA 2008 Markus Voelter

 Context

Architecture is often non tangible or technology specific

ArchitectureDSL

As you understand and develop your Architecture…

Develop a language to express it!

Language resembles architectural concepts

We express the application(s) with the language.

Textual Syntax: We know how this works from our experience with code.

Textual Syntax: We know how this works from our experience with code. Editors are easy to build.

Textual Syntax: We know how this works from our experience with code. Editors are easy to build. Integrates well with existing Version Control Systems etc.

component DelayCalculator { provides IDelayCalculator requires IInfoScreen } component InfoScreen { provides IInfoScreen } component AircraftModule { provides IAircraftModule requires IDelayCalculator } interface IDelayCalculator {} interface IInfoScreen {} interface IAircraftModule {}

component DelayCalculator { requires screens[0..n]: IInfoScreen … } component InfoScreen { provides default: IInfoScreen } instance dc: DelayCalculator instance screen1: InfoScreen instance screen2: InfoScreen connect dc.screens to (screen1.default, screen2.default)

interface IAircraftStatus { oneway message reportPosition (aircraft: ID, pos: Position ) request-reply message reportProblem { request (aircraft: ID, problem: Problem, comment: String) reply (repairProcedure: ID) }

struct FlightInfo { from: Airport to: Airport scheduled: Time expected: Time … } replicated singleton flights { flights: FlightInfo[] } component DelayCalculator { publishes flights } component InfoScreen { consumes flights }

interface IAircraftStatus { oneway message registerAircraft(aircraft: ID! ) oneway message unregisterAircraft(aircraft: ID! ) oneway message reportPosition(aircraft: ID!, pos: Position! ) request-reply message reportProblem { request (aircraft: ID!, problem: Problem!, comment: String!) reply (repairProcedure: !ID) } protocol initial = new { state new { registerAircraft => registered } state registered { unregisterAircraft => new reportPosition reportProblem }

When a graphical notation is better, you can visualize.

Graphviz

Via M2M Read-OnlyAuto-LayoutDrill-Down

Textual DSLs vs. vs. Graphical Graphical vs. vs. Visualization Visualization

I‘ve done real project work this way!

Currently in use with four of my customers

 Challenge

Newlanguage for each system?

CommonBase?

ReusableLanguageModules?

Language Family? PLE?

 Solution Approach

Identify common, reusable architectural abstractions (Experience, Patterns)

Define syntax

Use PLE to configure custom DSL

Components Hierarchical, Stateless/ful, Persistent, Threadsafe, Parameters, Runtime Instantiation, Active

Interfaces RPC, Messaging, Async, Pub/Sub, Exceptions, Data Types, DBC, Protocol State Machines

Ports Uni/Bidirectional, Caridinalities, Optional/Required

Connectors Static, Dynamic, Lookup, Failover, Backup, Multi

Data Replication Realtime, On Demand, 1..1, 1..n

 Solution Tooling

DSL Editors Built with Eclipse oAW Xtext

Variability is expressed as a feature model in pure::variants

Select Features for your language variant

(code completion, constraint checks, outline, folding, cross-file nav) Results in a DSL incl. fancy editor

Customization: Add you own specific Language elements (beyond what the configuration supports)

 Tool Implementation

Grammar Elements connected to feature models

Joinpoints to which more grammar can be “advised”

Same approach used for other artifacts (constraints, editor customization, etc.)

You’ll have to read the paper for details You’ll have to read the paper for details

THE END. Thank you. Questions?