Domain Specific Languages. Product Line Engineering

Size: px
Start display at page:

Download "Domain Specific Languages. Product Line Engineering"

Transcription

1 Using Domain Specific Languages in the context of Product Line Engineering Markus Voelter Independent/itemis Using Domain Specific Languages in the context of Product Line Engineering DSLs PLE Concepts & DSLs Customization and Configuration Modular Languages Markus Voelter Independent/itemis 1

2 DSLs 2

3 programming started close to the hardware abstractions computing chips abstractions computing bits 3

4 abstractions computing C abstractions computing? Java 4

5 abstractions computing? SQL 5

6 ? 6

7 general purpose 7

8 domain specific tailor made effective++ specialized, limited used by experts together with other specialized tools 8

9 DSL A DSL is a focussed, processable language for describing a specific concern when building a system in a specific domain. The abstractions and notations used are natural/suitable for the stakeholders who specify that particular concern. 9

10 DSL A DSL is a focussed, processable language for describing a specific concern when building a system in a specific domain. The abstractions and notations used are natural/suitable for the stakeholders who specify that particular concern. DSL A DSL is a focussed, processable language for describing a specific concern when building a system in a specific domain. The abstractions and notations used are natural/suitable for the stakeholders who specify that particular concern. 10

11 DSL A DSL is a focussed, processable language for describing a specific concern when building a system in a specific domain. The abstractions and notations used are natural/suitable for the stakeholders who specify that particular concern. DSL A DSL is a focussed, processable language for describing a specific concern when building a system in a specific domain. The abstractions and notations used are natural/suitable for the stakeholders who specify that particular concern. 11

12 DSL A DSL is a focussed, processable language for describing a specific concern when building a system in a specific domain. The abstractions and notations used are natural/suitable for the stakeholders who specify that particular concern. DSL A DSL is a focussed, processable language for describing a specific concern when building a system in a specific domain. The abstractions and notations used are natural/suitable for the stakeholders who specify that particular concern. 12

13 DSL A DSL is a focussed, processable language for describing a specific concern when building a system in a specific domain. The abstractions and notations used are natural/suitable for the stakeholders who specify that particular concern. DSL A DSL is a focussed, processable language for describing a specific concern when building a system in a specific domain. The abstractions and notations used are natural/suitable for the stakeholders who specify that particular concern. 13

14 execute? 14

15 map DSL Program (aka Model) map automated! GPL Program 15

16 map Generation Transformation Compilation Interpretation 16

17 Activities Analysing Domains Defining Languages Adapting/Selecting Building Editors Transforming Models Building Generators Building Frameworks 17

18 Activities Analysing Domains Defining Languages Adapting/Selecting Building Editors Transforming Models Building Generators Building Frameworks and using all of that to build apps 18

19 Embedded Protocol Handler DSLs Some Examples tests refines 19

20 OSGI-based Enterprise System Insurance Contracts

21 Insurance Contracts Insurance Contracts

22 Alarm System Menus Alarm System Menus

23 Hearing Aids Refrigerators A DSL for Hearing Aid Configuration A DSL for Refridgerator Configuration 23

24 BPEL Designer Block Diagrams

25 PLC Programming State Charts

26 PLE Concepts & DSLs 26

27 domain engineering domain analysis classifying variability defining DSLs application eng. using the DSL to express systems 27

28 platform target environment abstractions of solution space can influence DSL concepts (Arch DSLs) config knowledge transformations generators interpreters 28

29 core asset languages generators editors variation point bind how kind of varibility bind when 29

30 PLE Concepts & DSLs Bind How Kinds of Variability Bind When 30

31 Variability Mechanisms Removal optionally take away from overall whole Variability Mechanisms Removal optionally take away from overall whole Challenge: overall whole can get big and unwieldy 31

32 Variability Mechanisms Injection optionally add to minimal core Variability Mechanisms Injection optionally add to minimal core Challenge: how to point into the core and add something to it 32

33 Variability Mechanisms Parametrization define values for predefined params Variability Mechanisms Parametrization define values for predefined params Challenge: types for parameters can be non trivial (DSLs) 33

34 PLE Concepts & DSLs Bind How Kinds of Variability Bind When 34

35 Configuration vs. Customization Variability Guidance, Efficiency Complexity, Flexibility Routine Configuration Creative Construction Configuration Parameters Property Files Feature-Model Based Configuration Graph-Like Languages Framworks Manual Programming Wizards Tabular Configurations Configuration selecting options setting param values 35

36 Configuration selecting options setting param values Configuration Feature Models Size Stack Counter Fixed Dynamic Optimization value ElementType [open] Speed Memory Usage Additional Features int float String Thread Safety Bounds Check Type Check 36

37 Customization DSLs instantiation connections 37

38 DEMO I Example DSL Fountains 38

39 PLE Concepts & DSLs Bind How Kinds of Variability Bind When 39

40 Interpretation vs. Generation Binding Time Generation resulting code can be easily inspected 40

41 Interpretation vs. Generation Interpretation vs. Generation Generation resulting code can be easily debugged Generation resulting code can be optimized and more efficient 41

42 Interpretation vs. Generation Interpretation vs. Generation Generation Templates can be derived from existing code Generation limitations work around of target language 42

43 Interpretation vs. Generation Interpretation vs. Generation Generation no changes to target environment (leaves no trace) Generation reuse runtime infrastructure (garbage collection, monitoring ) 43

44 Interpretation vs. Generation Interpretation vs. Generation Interpretation faster turnaround no regeneration test build deploy Interpretation for platform indepenence an interpreter might be less porting effort 44

45 Interpretation vs. Generation Interpretation possibly direct feedback from in-ide interpreter 45

46 DEMO II In-IDE Interpreter in Fountains 46

47 Customization and Configuration Customization and Configuration In-Language Varying models DSLs as Parameters 47

48 In language In language The language provides explicit support! (we can learn that from GPLs) Conditionals conditional execution Specialization overriding, overwriting Leaving Holes for variant to fill in Inject Stuff several places at a time? 48

49 In language Conditionals #ifdef Specialization inheritance Leaving Holes template methods Inject Stuff AOP 49

50 DEMO III A DSL with variant blocks 50

51 Customization and Configuration In-Language Varying models DSLs as Parameters Two Levels problem space vs. software space Problem Space: Configuration Solution Space: Customization 51

52 Two Levels problem space vs. software space Two Levels Removal #if defined (ACE_HAS_TLI) static ssize_t t_snd_n ( ACE_HANDLE handle, const void *buf, size_t len, int flags, ACE_Time_Value *timeout = 0, size_t *bytes_transferred = 0); #endif /* ACE_HAS_TLI */ 52

53 Two Levels Removal Phone Party NeedsState Multiple Addresses International Phone LocalPhone Persistence XML Hibernate JDO not <<entity>> Party name: String 0..n <<dependentob>> Phone number: int regioncode: int countrycode: int address 1 address 0..n <<dependentob>> Address city: String state: String zip: String street: String Two Levels Removal System Failover Monitoring Data Management Graceful Degradation Redundancy Centralized Distributed 53

54 Two Levels Removal Two Levels Removal 54

55 Two Levels Injection Two Levels Injection aspect (*) compnent { provides mon: IMonitoring } 55

56 Two Levels Removal Injection + Two Levels varying models, not text fewer var points semantically meaningful more manageable 56

57 Two Levels varying models, not text simplifies traceability you can point easily to any element -> generic traceability approach simplifies traceability 57

58 DEMO IV Feature Annotations 58

59 Customization and Configuration In-Language Varying models DSLs as Parameters 59

60 Feature Model w/ Paramters parameters with simple types complex types: DSL/metamodel 60

61 Customization and Configuration Trafo Variability Model-Based Implementation 61

62 Model-Based Implementation Problem Space Software Space Domain Engineering Domain Requirements Formal Domain MetaModel M Formal Solution Space MetaModel Core Assets Application Engineering Product Requirements Formal Domain Model M Formal Solution Space Model... Product Transformation Variability create System transformps2cbd( Building building ): hasfeature("burglaralarm")? ( handleburglaralarm() -> this) : this; handleburglaralarm( System this ): let conf = createburglarconfig(): ( configurations.add( conf ) -> conf.connectors.add( connectsimtopanel( createsimulatorinstance(), createcontrolpanelinstance() ) ) -> hasfeature( "siren" )? conf.addalarmdevice("alarmsiren") : null -> hasfeature( "bell" )? conf.addalarmdevice("alarmbell") : null -> hasfeature( "light" )? conf.addalarmdevice("alarmlight") : null ); 62

63 Transformation Variability transformation transformation aspect around... workflow transform configuration model Generator Variability template file template aspect workflow AROUND generate (osgi) configuration model generate (cbd) transformaspect generatoraspect generatoraspect template file template aspect AROUND x()... extend file extend aspect x():... around... 63

64 Modular Languages 64

65 We don t want to model, we want to program! 65

66 We don t want to model, we want to program! at different levels of abstaction from different viewpoints integrated! We don t want to model, we want to program! with different degrees of domain-specificity with suitable notations with suitable expressiveness 66

67 We don t want to model, we want to program! And always: precise and tool processable We don t want to model, we want to program! PLE for DSLs suitable to related domains 67

68 Big Language? o a b n c m k L d e j f i g h with many first class concepts! 68

69 Small Language? L with a few, orthogonal and poweful concepts Modular Language a b c my L d e f g h i j k l with many optional, composable concepts 69

70 Viewpoints 70

71 Viewpoints suitable abstractions and notations for each Viewpoints Integrated via symbolic references and seamless transitions 71

72 Viewpoints General Purpose predefined library configure Viewpoints Domain Specific custom purpose-built create/include 72

73 Custom Notations Viewpoints Domain Specific real business expert integration C General Purpose Viewpoints Domain Specific LEGO Robot Control 73

74 Viewpoints C General Purpose Components State Machines Sensor Access Domain Specific LEGO Robot Control 74

75 Language Integration by Referencing Language Integration by Cascading 75

76 Language Integration by Extension Language Integration by Embedding 76

77 Language Integration by Contributing 77

78 DEMO IV A Modular Language 78

79 THE END..coordinates web skype twitter schogglad markusvoelter xing linkedin THE END..coordinates web skype twitter schogglad markusvoelter xing linkedin

80 THE END..coordinates web skype twitter schogglad markusvoelter xing linkedin THE END..coordinates web skype twitter schogglad markusvoelter xing linkedin

81 THE END..coordinates web skype twitter schogglad markusvoelter xing linkedin

A little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES Project Bonus: Best

A little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES Project Bonus: Best Domain Specific Languages Markus Voelter Independent/itemis voelter@acm.org A little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES

More information

10 Thoughts 2 Demos * Discussions

10 Thoughts 2 Demos * Discussions Developing Embedded software with Language Workbenches Stuttgart, 20.09.2011 Markus Voelter Independent/itemis voelter@acm.org 10 Thoughts 2 Demos * Discussions 1 1 Embedded Development Two Classes in

More information

What are Requirements?

What are Requirements? Domain Specific Languages and Requirements (Engineering) Markus Voelter www.voelter.de voelter@acm.org What are Requirements? 1 a requirement is a singular documented need of what a particular product

More information

Domain Specific Languages. Requirements (Engineering)

Domain Specific Languages. Requirements (Engineering) Domain Specific Languages and Requirements (Engineering) Andreas Graf Andreas.graf@itemis.de Markus Voelter www.voelter.de voelter@acm.org What are Requirements? a requirement is a singular documented

More information

Programming Languages

Programming Languages Trends in Programming Languages ICALEPCS 2011 Markus Voelter Independent/itemis voelter@acm.org A single language to rule them all An ecosystem of languages An ecosystem of languages The Pendulum Swings

More information

Variability differences among products in PL. Variability in PLE. Language Workbenches. Language Workbenches. Product Line Engineering

Variability differences among products in PL. Variability in PLE. Language Workbenches. Language Workbenches. Product Line Engineering PPL 2009 Keynote Markus Voelter Indepenent/itemis voelter@acm.org http://www.voelter.de Language Workbenches in Product Line Engineering Variability in PLE Language Workbenches in Domain Specific Languages

More information

A conceptual framework for building good DSLs. Markus Voelter independent/itemis

A conceptual framework for building good DSLs. Markus Voelter independent/itemis DSL Design A conceptual framework for building good DSLs Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter based on material from a

More information

Programming Modeling Two Worlds? Programmierung Modellierung Zwei Welten? und. and. Markus Voelter Independent/itemis

Programming Modeling Two Worlds? Programmierung Modellierung Zwei Welten? und. and. Markus Voelter Independent/itemis und Programmierung Modellierung Zwei Welten? and Modeling Two Worlds? Markus Voelter Independent/itemis voelter@acm.org Markus Voelter Independent/itemis voelter@acm.org 1 Languages C# Erlang C++ Python

More information

Language Extension and Composition with Language Workbenches

Language Extension and Composition with Language Workbenches Language Extension and Composition with Language Workbenches Eelco Visser TU Delft E.Visser@tudelft.nl Markus Voelter Independent/itemis voelter@acm.org Different Worlds Programming Tools!= Modeling Tools

More information

Testing DSLs How to test DSLs, their IDEs and Programs

Testing DSLs How to test DSLs, their IDEs and Programs Testing DSLs How to test DSLs, their IDEs and Programs Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter A DSL is a focussed, processable

More information

Handling Variability

Handling Variability Handling Variability Version 2.0, December 11, 2009 Markus Völter, Independent/itemis (voelter@acm.org) 2009 Markus Voelter Copyright retain by author(s). Permission granted to Hillside Europe for inclusion

More information

Let s build. like they build. Markus Völter Bernd Kolb

Let s build. like they build. Markus Völter Bernd Kolb Let s build like they build Markus Völter voelter@acm.org www.voelter.de @markusvoelter Bernd Kolb kolb@itemis.de www.itemis.de @berndkolb B 0 Motivation Examples 1 M Healthcare Context & Motivation Mobile

More information

Markus Völter

Markus Völter of Markus Völter voelter@acm.org www.voelter.de @markusvoelter Examples 1 Healthcare Context & Motivation Mobile Apps that help patients w/ treatments Monitor side-effects and recommend actions Manage

More information

DESIGN, EVOLUTION AND USE

DESIGN, EVOLUTION AND USE DESIGN, EVOLUTION AND USE of KernelF voelter@acm.org www.voelter.de @markusvoelter Markus Völter Check out the paper! http://voelter.de/data /pub/kernelf-icmt.pdf EXAMPLE 1 Healthcare 1 Context Mobile

More information

Language Workbenches, Embedded Software and Formal Verification

Language Workbenches, Embedded Software and Formal Verification Language Workbenches, Embedded Software and Formal Verification Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter Daniel Ratiu ForTISS

More information

DSL Implementation. ... with language Workbenches. v1.1 Jan 16, Markus Voelter independent/itemis

DSL Implementation. ... with language Workbenches. v1.1 Jan 16, Markus Voelter independent/itemis DSL Implementation... with language Workbenches. v1.1 Jan 16, 2013 Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter Last Year s Talk

More information

Managing Variability. Markus Voelter This work is supported by. Managing Variability in Product Lines -1-

Managing Variability. Markus Voelter   This work is supported by. Managing Variability in Product Lines -1- Managing Variability in Product-Lines Markus Voelter voelter@acm.org http://www.voelter.de p// This work is supported by -1- About me Independent Consultant Based out of Göppingen, Germany Markus Völter

More information

Compositional Model Based Software Development

Compositional Model Based Software Development Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability

More information

Goals. Greater Geate Abstraction work on a higher level do more with less insulate from technology. Increase Value. Reduce lossiness.

Goals. Greater Geate Abstraction work on a higher level do more with less insulate from technology. Increase Value. Reduce lossiness. MDD: the Good, the Bad and the Ugly Steven Kelly CTO, MetaCase www.metacase.com com stevek@metacase.com Markus Voelter Independent/itemis AG www.voelter.de voelter@acm.org Part 1 1 Goals Goals Greater

More information

Frustrated by all the hype?

Frustrated by all the hype? Fundamentals of Software Architecture Looking beyond the hype Markus Völter (voelter@acm.org) Introduction Frustrated by all the hype? If so this presentation is for you. Otherwise you should leave People

More information

Domain Specific - a Binary Decision?

Domain Specific - a Binary Decision? Domain Specific - a Binary Decision? Markus Voelter independent/itemis Ötztaler Strasse 38 70327 Stuttgart, Germany voelter@acm.org Bernhard Merkle SICK AG R&D Software Engineering Erwin-Sick-Str.1 79183

More information

Using Scala for building DSL s

Using Scala for building DSL s Using Scala for building DSL s Abhijit Sharma Innovation Lab, BMC Software 1 What is a DSL? Domain Specific Language Appropriate abstraction level for domain - uses precise concepts and semantics of domain

More information

Declarative. Contracts

Declarative. Contracts Declarative Smart Contracts Markus Völter voelter@acm.org www.voelter.de @markusvoelter 1 Context SMART An actual contract, executed automatically. CONTRACT Any Turing Complete Program running on a Blockchain.

More information

CSSE 490 Model-Based Software Engineering: Software Factories

CSSE 490 Model-Based Software Engineering: Software Factories CSSE 490 Model-Based Software Engineering: Software Factories Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu Learning Outcomes: MBE Discipline Relate Model-Based

More information

Operating Systems CMPSCI 377, Lec 2 Intro to C/C++ Prashant Shenoy University of Massachusetts Amherst

Operating Systems CMPSCI 377, Lec 2 Intro to C/C++ Prashant Shenoy University of Massachusetts Amherst Operating Systems CMPSCI 377, Lec 2 Intro to C/C++ Prashant Shenoy University of Massachusetts Amherst Department of Computer Science Why C? Low-level Direct access to memory WYSIWYG (more or less) Effectively

More information

with openarchitectureware

with openarchitectureware Model-Driven Development with openarchitectureware Markus Völter voelter@acm.orgorg www.voelter.de Sven Efftinge sven@efftinge.de www.efftinge.de Bernd Kolb bernd@kolbware.de www.kolbware.de 2006-7 Völter,

More information

Feature Modeling. Krzysztof Czarnecki & Simon Helsen University of Waterloo

Feature Modeling. Krzysztof Czarnecki & Simon Helsen University of Waterloo Feature Modeling Krzysztof Czarnecki & Simon Helsen University of Waterloo czarnecki@acm.org www.generative-programming.org Overview Basic Feature Modeling Concepts Exercise AmiEddi-XML 1.3 Captain Feature

More information

September 10,

September 10, September 10, 2013 1 Bjarne Stroustrup, AT&T Bell Labs, early 80s cfront original C++ to C translator Difficult to debug Potentially inefficient Many native compilers exist today C++ is mostly upward compatible

More information

Expressing Feature-Based Variability in Structural Models

Expressing Feature-Based Variability in Structural Models Expressing Feature-Based Variability in Structural Models Iris Groher 1, Markus Voelter 2 1 Siemens AG, CT SE 2, Munich, Germany 2 Independent Consultant, Goeppingen, Germany iris.groher.ext@siemens.com,

More information

Domain-Specific Languages Language Workbenches

Domain-Specific Languages Language Workbenches Software Engineering with and Domain-Specific Languages Language Workbenches Peter Friese Itemis peter.friese@itemis.de Markus Voelter Independent/itemis voelter@acm.org 1 Programming Languages C# Erlang

More information

StackVsHeap SPL/2010 SPL/20

StackVsHeap SPL/2010 SPL/20 StackVsHeap Objectives Memory management central shared resource in multiprocessing RTE memory models that are used in Java and C++ services for Java/C++ programmer from RTE (JVM / OS). Perspectives of

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

openarchitectureware 4.1 An introduction

openarchitectureware 4.1 An introduction openarchitectureware 4.1 An introduction Markus Voelter, www.voelter.de, openarchitectureware (oaw) is a suite of tools and components assisting with model driven software development, more precisely it

More information

The PISA Project A Model Driven Development case study

The PISA Project A Model Driven Development case study In collaboration with The PISA Project A Model Driven Development case study Pedro J. Molina, PhD. May 19 th, 2007 Contents Introduction Goals Foundations Design aspects & Trade-offs Demo Problems found

More information

Chapter 6 Architectural Design

Chapter 6 Architectural Design Chapter 6 Architectural Design Chapter 6 Architectural Design Slide 1 Topics covered The WHAT and WHY of architectural design Architectural design decisions Architectural views/perspectives Architectural

More information

Chapter 5. Names, Bindings, and Scopes

Chapter 5. Names, Bindings, and Scopes Chapter 5 Names, Bindings, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Scope Scope and Lifetime Referencing Environments Named Constants 1-2 Introduction Imperative

More information

Whole Platform Foundation. The Long Way Toward Language Oriented Programming

Whole Platform Foundation. The Long Way Toward Language Oriented Programming Whole Platform Foundation The Long Way Toward Language Oriented Programming 2008 by Riccardo Solmi made available under the Creative Commons License last updated 22 October 2008 Outline Aim: Engineering

More information

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered Topics covered Chapter 6 Architectural Design Architectural design decisions Architectural views Architectural patterns Application architectures Lecture 1 1 2 Software architecture The design process

More information

Excel on the Java VM. Generating Fast Code from Spreadsheet Models. Peter Arrenbrecht codewise.ch / Abacus Research AG Submission ID: 30

Excel on the Java VM. Generating Fast Code from Spreadsheet Models. Peter Arrenbrecht codewise.ch / Abacus Research AG Submission ID: 30 Excel on the Java VM Generating Fast Code from Spreadsheet Models Peter Arrenbrecht codewise.ch / Abacus Research AG Submission ID: 30 AGENDA > Problem: Customization Is Hard > Idea: Let Users Use Spreadsheets

More information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this

More information

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language Plan Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

Spring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich

Spring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich Spring and OSGi Martin Lippert akquinet agile GmbH lippert@acm.org Bernd Kolb b.kolb@kolbware.de Gerd Wütherich gerd@gerd-wuetherich.de 2006 by Martin Lippert, Bernd Kolb & Gerd Wütherich, made available

More information

Language Shapes (Architectural) Thought Markus Völter

Language Shapes (Architectural) Thought Markus Völter Language Shapes (Architectural) Thought Markus Völter voelter@acm.org www.voelter.de @markusvoelter Language Shapes (Architectural) Thought Sapir Whorf hypothesis aka Whorfianism The principle of linguis;c

More information

Pierce Ch. 3, 8, 11, 15. Type Systems

Pierce Ch. 3, 8, 11, 15. Type Systems Pierce Ch. 3, 8, 11, 15 Type Systems Goals Define the simple language of expressions A small subset of Lisp, with minor modifications Define the type system of this language Mathematical definition using

More information

AADL Graphical Editor Design

AADL Graphical Editor Design AADL Graphical Editor Design Peter Feiler Software Engineering Institute phf@sei.cmu.edu Introduction An AADL specification is a set of component type and implementation declarations. They are organized

More information

Topics Covered Thus Far. CMSC 330: Organization of Programming Languages. Language Features Covered Thus Far. Programming Languages Revisited

Topics Covered Thus Far. CMSC 330: Organization of Programming Languages. Language Features Covered Thus Far. Programming Languages Revisited CMSC 330: Organization of Programming Languages Type Systems, Names & Binding Topics Covered Thus Far Programming languages Syntax specification Regular expressions Context free grammars Implementation

More information

COS 320. Compiling Techniques

COS 320. Compiling Techniques Topic 5: Types COS 320 Compiling Techniques Princeton University Spring 2016 Lennart Beringer 1 Types: potential benefits (I) 2 For programmers: help to eliminate common programming mistakes, particularly

More information

CMSC 330: Organization of Programming Languages

CMSC 330: Organization of Programming Languages CMSC 330: Organization of Programming Languages Type Systems, Names and Binding CMSC 330 - Spring 2013 1 Topics Covered Thus Far! Programming languages Ruby OCaml! Syntax specification Regular expressions

More information

ABAP DSL Workbench SAP TechED 2016

ABAP DSL Workbench SAP TechED 2016 ABAP DSL Workbench SAP TechED 2016 Barcelona, November 2016-0 - Hello. Hello. Example Asia Diner Yes? Number 77. Take away? No. Hello. Hello. Hello. Hello. As always? Yes. As always? Yes. Where are the

More information

BLU AGE 2009 Edition Agile Model Transformation

BLU AGE 2009 Edition Agile Model Transformation BLU AGE 2009 Edition Agile Model Transformation Model Driven Modernization for Legacy Systems 1 2009 NETFECTIVE TECHNOLOGY -ne peut être copiésans BLU AGE Agile Model Transformation Agenda Model transformation

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures Chapter 6 Architectural design 2 PART 1 ARCHITECTURAL DESIGN

More information

CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square)

CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) Introduction This semester, through a project split into 3 phases, we are going

More information

Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci)

Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci) Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci) Sung Hee Park Department of Mathematics and Computer Science Virginia State University September 18, 2012 The Object-Oriented Paradigm

More information

Name, Scope, and Binding. Outline [1]

Name, Scope, and Binding. Outline [1] Name, Scope, and Binding In Text: Chapter 3 Outline [1] Variable Binding Storage bindings and lifetime Type bindings Type Checking Scope Lifetime vs. Scope Referencing Environments N. Meng, S. Arthur 2

More information

Software Project Seminar VII: Tools of the Craft. 23 march 2006 Jevgeni Kabanov

Software Project Seminar VII: Tools of the Craft. 23 march 2006 Jevgeni Kabanov Software Project Seminar VII: Tools of the Craft 23 march 2006 Jevgeni Kabanov Administrative Info Send your troubles to tarkvaraprojekt@webmedia.ee, not to Ivo directly Next time will be an additional

More information

Lecture 1. Chapter 6 Architectural design

Lecture 1. Chapter 6 Architectural design Chapter 6 Architectural Design Lecture 1 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

DRAFT. Consolidation of the Generator Infrastructure MDGEN Model Driven Generation

DRAFT. Consolidation of the Generator Infrastructure MDGEN Model Driven Generation Consolidation of the Generator Infrastructure MDGEN Model Driven Generation Date: October 16 th, 2012 Produced by: Mario Lovisi / Serano Colameo Version: 1.0 DRAFT Agenda Initial Situation / Goal of the

More information

Using UML To Define XML Document Types

Using UML To Define XML Document Types Using UML To Define XML Document Types W. Eliot Kimber ISOGEN International, A DataChannel Company Created On: 10 Dec 1999 Last Revised: 14 Jan 2000 Defines a convention for the use of UML to define XML

More information

Software architecture in ASPICE and Even-André Karlsson

Software architecture in ASPICE and Even-André Karlsson Software architecture in ASPICE and 26262 Even-André Karlsson Agenda Overall comparison (3 min) Why is the architecture documentation difficult? (2 min) ASPICE requirements (8 min) 26262 requirements (12

More information

Introduce C# as Object Oriented programming language. Explain, tokens,

Introduce C# as Object Oriented programming language. Explain, tokens, Module 2 98 Assignment 1 Introduce C# as Object Oriented programming language. Explain, tokens, lexicals and control flow constructs. 99 The C# Family Tree C Platform Independence C++ Object Orientation

More information

A Family of Languages for Architecture Description

A Family of Languages for Architecture Description A Family of Languages for Architecture Description Markus Voelter Independent Consultant, Grabenstrasse 4, 73033 Goeppingen, Germany voelter@acm.org, http://www.voelter.de Abstract In this paper I describe

More information

Language engineering and Domain Specific Languages

Language engineering and Domain Specific Languages Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh Plan 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

Dominique Blouin Etienne Borde

Dominique Blouin Etienne Borde Dominique Blouin Etienne Borde dominique.blouin@telecom-paristech.fr etienne.borde@telecom-paristech.fr Institut Mines-Télécom Content Domain specific Languages in a Nutshell Overview of Eclipse Modeling

More information

Domain Specific Development

Domain Specific Development Domain Specific Development Stuart Kent, Senior Program Manager, Visual Studio Team System, Microsoft Copyright Microsoft 2006 Domain Specific Development Pattern Model Abstraction of the variable part,

More information

Component Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems

Component Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems Component Design Systems Engineering BSc Course Budapest University of Technology and Economics Department of Measurement and Information Systems Traceability Platform-based systems design Verification

More information

Software Architecture

Software Architecture Software Architecture Benjamin Satzger Distributed Systems Group TU Wien http://www.infosys.tuwien.ac.at/staff/ bsatzger Models Terms Unified Modeling Language (UML) Architecture Description Language (ADL)

More information

Patterns and Best Practices for Dynamic OSGi Applications

Patterns and Best Practices for Dynamic OSGi Applications Patterns and Best Practices for Dynamic OSGi Applications Kai Tödter, Siemens Corporate Technology Gerd Wütherich, Freelancer Martin Lippert, akquinet it-agile GmbH Agenda» Dynamic OSGi applications» Basics»

More information

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Weiss Chapter 1 terminology (parenthesized numbers are page numbers) Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement

More information

Programming Languages

Programming Languages CSE 130 : Winter 2009 Programming Languages News PA 2 out, and due Mon 1/26 5pm Lecture 5: Functions and Datatypes t UC San Diego Recap: Environments Phone book Variables = names Values = phone number

More information

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design Chapter 6 Architectural Design Lecture 1 1 Topics covered ² Architectural design decisions ² Architectural views ² Architectural patterns ² Application architectures 2 Software architecture ² The design

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

EMBEDDED SYSTEMS PROGRAMMING More About Languages

EMBEDDED SYSTEMS PROGRAMMING More About Languages EMBEDDED SYSTEMS PROGRAMMING 2015-16 More About Languages JAVA: ANNOTATIONS (1/2) Structured comments to source code (=metadata). They provide data about the code, but they are not part of the code itself

More information

IBM Case Manager Version User's Guide IBM SC

IBM Case Manager Version User's Guide IBM SC IBM Case Manager Version 5.3.3 User's Guide IBM SC19-3274-10 IBM Case Manager Version 5.3.3 User's Guide IBM SC19-3274-10 This edition applies to Version 5 Release 3 Modification 3 of IBM Case Manager

More information

Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process

Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process UK MathWorks Aerospace & Defence Industry Working Group Guidelines for deployment of MathWorks R2010a toolset within

More information

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline Advanced Java Database Programming JDBC overview SQL- Structured Query Language JDBC Programming Concepts Query Execution Scrollable

More information

Introduction to Microsoft.NET Framework Programming using VS 2005 (C#)

Introduction to Microsoft.NET Framework Programming using VS 2005 (C#) Introduction to Microsoft.NET Framework Programming using VS 2005 (C#) Course Length: 5 Days Course Overview This instructor-led course teaches introductory-level developers who are not familiar with the

More information

Lightweight J2EE Framework

Lightweight J2EE Framework Lightweight J2EE Framework Struts, spring, hibernate Software System Design Zhu Hongjun Session 4: Hibernate DAO Refresher in Enterprise Application Architectures Traditional Persistence and Hibernate

More information

Symbol Tables Symbol Table: In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is

More information

MDSE USE CASES. Chapter #3

MDSE USE CASES. Chapter #3 Chapter #3 MDSE USE CASES Teaching material for the book Model-Driven Software Engineering in Practice by Morgan & Claypool, USA, 2012. www.mdse-book.com MDSE GOES FAR BEYOND CODE-GENERATION www.mdse-book.com

More information

Towards collaborative Blender design through annotation sharing

Towards collaborative Blender design through annotation sharing Towards collaborative Blender design through annotation sharing Thierry Jacquin, Jean-Pierre Chanod Document Structure Xerox Research Centre Europe Presentation Overview Introduction Creative intent in

More information

Topics Covered Thus Far CMSC 330: Organization of Programming Languages

Topics Covered Thus Far CMSC 330: Organization of Programming Languages Topics Covered Thus Far CMSC 330: Organization of Programming Languages Names & Binding, Type Systems Programming languages Ruby Ocaml Lambda calculus Syntax specification Regular expressions Context free

More information

UNIT 3

UNIT 3 UNIT 3 Presentation Outline Sequence control with expressions Conditional Statements, Loops Exception Handling Subprogram definition and activation Simple and Recursive Subprogram Subprogram Environment

More information

TestingofScout Application. Ludwigsburg,

TestingofScout Application. Ludwigsburg, TestingofScout Application Ludwigsburg, 27.10.2014 The Tools approach The Testing Theory approach Unit testing White box testing Black box testing Integration testing Functional testing System testing

More information

OO Frameworks. Introduction. Using Frameworks

OO Frameworks. Introduction. Using Frameworks OO Frameworks Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University Introduction Frameworks support reuse of detailed designs and architectures An integrated set of components

More information

CSE P 501 Compilers. Static Semantics Hal Perkins Winter /22/ Hal Perkins & UW CSE I-1

CSE P 501 Compilers. Static Semantics Hal Perkins Winter /22/ Hal Perkins & UW CSE I-1 CSE P 501 Compilers Static Semantics Hal Perkins Winter 2008 1/22/2008 2002-08 Hal Perkins & UW CSE I-1 Agenda Static semantics Types Attribute grammars Representing types Symbol tables Note: this covers

More information

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

(800) Toll Free (804) Fax   Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented

More information

Orthographic Software Modeling A Practical Approach to View Based Development

Orthographic Software Modeling A Practical Approach to View Based Development Orthographic Software Modeling A Practical Approach to View Based Development Colin Atkinson University of Mannheim Germany MSI 2009 7 th October 2009 Oldenburg Outline Modern software engineering paradigms

More information

EuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation

EuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation EuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation Uwe Zdun Department of Information Systems, Vienna University of Economics, Austria zdun@acm.org Markus Voelter voelter - Ingenieurbüro

More information

C#.Net. Course Contents. Course contents VT BizTalk. No exam, but laborations

C#.Net. Course Contents. Course contents VT BizTalk. No exam, but laborations , 1 C#.Net VT 2009 Course Contents C# 6 hp approx. BizTalk 1,5 hp approx. No exam, but laborations Course contents Architecture Visual Studio Syntax Classes Forms Class Libraries Inheritance Other C# essentials

More information

Object Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia

Object Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia Object Oriented Programming in Java Jaanus Pöial, PhD Tallinn, Estonia Motivation for Object Oriented Programming Decrease complexity (use layers of abstraction, interfaces, modularity,...) Reuse existing

More information

CSE 413 Languages & Implementation. Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341)

CSE 413 Languages & Implementation. Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341) CSE 413 Languages & Implementation Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341) 1 Goals Representing programs as data Racket structs as a better way to represent

More information

Chapter 6 Architectural Design. Chapter 6 Architectural design

Chapter 6 Architectural Design. Chapter 6 Architectural design Chapter 6 Architectural Design 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process for identifying

More information

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP 2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries

More information

Variability Implementation Techniques for Platforms and Services (Interim)

Variability Implementation Techniques for Platforms and Services (Interim) Engineering Virtual Domain-Specific Service Platforms Specific Targeted Research Project: FP7-ICT-2009-5 / 257483 Variability Implementation Techniques for Platforms and Services (Interim) Abstract Creating

More information

ArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology

ArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology ArchiMate Core Structural Concepts Behavioral Concepts Informational Concepts interaction Technology Application Layer Concept Description Notation Concept Description Notation Actor An organizational

More information

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Advanced Topics in Software Engineering (02265) Ekkart Kindler Advanced Topics in Software Engineering (02265) Recapitulation (I. Introduction ) 2 Levels of models ClassDiagram is an instance of PetriNet * Object * Class 1 start 1 end * Association concrete syntax

More information

Generative Programming

Generative Programming Generative Programming based on the book by K.Czarnecki and U.Eisenecker Maja D, Hondt 26/7/2000 C O N T E N T S 1. Principles 1.1 generative domain model 1.2 development steps 2. Domain Engineering 2.1

More information

1. Introduction to the Common Language Infrastructure

1. Introduction to the Common Language Infrastructure Miller-CHP1.fm Page 1 Wednesday, September 24, 2003 1:50 PM to the Common Language Infrastructure The Common Language Infrastructure (CLI) is an International Standard that is the basis for creating execution

More information

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Scripting 1 Overview Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Rationale C++ isn't the best choice for all problems Complicated feature set, syntax Low-level,

More information