Advanced Topics in Software Engineering (02265) Ekkart Kindler

Similar documents
Model-based Software Engineering (02341, spring 2017) Ekkart Kindler

Model-based Software Engineering (02341, spring 2016) Ekkart Kindler

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

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

Language engineering and Domain Specific Languages

Model-based Software Engineering (02341, spring 2017) Ekkart Kindler

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Model-based Software Engineering (02341, spring 2017) Ekkart Kindler

Model-based Software Engineering (02341, Spring 2017) Ekkart Kindler

CS152 Programming Language Paradigms Prof. Tom Austin, Fall Syntax & Semantics, and Language Design Criteria

Syntax. A. Bellaachia Page: 1

CS 242. Fundamentals. Reading: See last slide

Model Driven Engineering (MDE)

CSSE 490 Model-Based Software Engineering: Domain Specific Language Introduction

Compositional Model Based Software Development

Using Scala for building DSL s

Chapter 1. Preliminaries

Modelling in Enterprise Architecture. MSc Business Information Systems

Enabling High Quality Executable Domain Specific Language Specification

CMSC 330: Organization of Programming Languages. Context Free Grammars

Whole Platform Foundation. The Long Way Toward Language Oriented Programming

COLLEGE OF ENGINEERING, NASHIK. LANGUAGE TRANSLATOR

Introduction to OpenArchitectureWare

22c:111 Programming Language Concepts. Fall Syntax III

Chapter 1 Preliminaries

CMPS Programming Languages. Dr. Chengwei Lei CEECS California State University, Bakersfield

Domain-Specific. Languages. Martin Fowler. AAddison-Wesley. Sydney Tokyo. With Rebecca Parsons

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

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

! Broaden your language horizons! Different programming languages! Different language features and tradeoffs. ! Study how languages are implemented

8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES

Programmiersprachen (Programming Languages)

Lecture 10 Parsing 10.1

Chapter 1. Preliminaries

CSSE 490 Model-Based Software Engineering: Software Factories

Compiler Design. Dr. Chengwei Lei CEECS California State University, Bakersfield

Horváth Ákos Bergmann Gábor Dániel Varró István Ráth

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Metamodeling with Metamodels. Using. UML/MOF including OCL

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

Model-Driven Engineering (MDE) Lecture 1: Metamodels and Xtext Regina Hebig, Thorsten Berger

Introduction to R programming a SciLife Lab course

Domain-Specific Languages Language Workbenches

Syntax and Grammars 1 / 21

3rd Lecture Languages for information modeling

CS 415 Midterm Exam Spring 2002

Software Architecture

MSc(IT) Program. MSc(IT) Program Educational Objectives (PEO):

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2014 Euiseong Seo

CST-402(T): Language Processors

EECS 395 Programming Languages

Compilers and Interpreters

Introduction to R programming a SciLife Lab course

Describing Computer Languages

EECS 321 Programming Languages

Working of the Compilers

Triple Graph Grammars: Concepts, Extensions, Implementations, and Application Scenarios

Lecture 1/2. Copyright 2007 STI - INNSBRUCK

DSL vs. Library API Shootout

Meta-Modeling and Modeling Languages

CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN

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

Lecture 4: Syntax Specification

Chapter 3. Describing Syntax and Semantics ISBN

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation

Colored Petri Net Evaluation Tool. Stephen Rojcewicz CS 2310

Regular Expressions. Agenda for Today. Grammar for a Tiny Language. Programming Language Specifications

Reconciling TGGs with QVT

CSc 520. Course Outline (Subject to change) Course Outline (Subject to change)... Principles of Programming Languages. Christian Collberg

Concepts of Programming Languages

Information Retrieval and Knowledge Organisation

Fundamentals of Databases

Crafting a Compiler with C (II) Compiler V. S. Interpreter

Language Translation, History. CS152. Chris Pollett. Sep. 3, 2008.

CSE 311 Lecture 21: Context-Free Grammars. Emina Torlak and Kevin Zatloukal

CSE 3302 Programming Languages Lecture 2: Syntax

Model-based Software Engineering (02341, spring 2016) Ekkart Kindler

Object-Oriented Software Engineering Practical Software Development using UML and Java

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2015 Euiseong Seo

1DL321: Kompilatorteknik I (Compiler Design 1)

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

! Broaden your language horizons. ! Study how languages are implemented. ! Study how languages are described / specified

Index. Comma-separated values (CSV), 30 Conditional expression, 16 Continuous integration (CI), 34 35, 41 Conway s Law, 75 CurrencyPair class,

Compiler Design 1. Introduction to Programming Language Design and to Compilation

Introduction to R programming a SciLife Lab course

Managing Change and Complexity

Transition from EBNF to Xtext

CS321 Languages and Compiler Design I. Winter 2012 Lecture 1

Which is the Best Modeling Language? Sukriti Goel Tutorial BPM 2013 August 2013

Concepts in Programming Languages

CSSE 490 Model-Based Software Engineering: More MBSD. Shawn Bohner Office: Moench Room F212 Phone: (812)

Theoretical Part. Chapter one:- - What are the Phases of compiler? Answer:

COMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou

Reading part: Design-Space Exploration with Alloy

Modelling Languages: (mostly) Concrete (Visual) Syntax. Hans Vangheluwe

Language Extension and Composition with Language Workbenches

Seminar in Programming Languages

Transcription:

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 reprs. for 1 source Node 1 target Transition Place Arc * Token :Class :Association :Association :Class :Petrinet :Transition source :Arc target :Place target source :Arc :Arc :Token :Place source target :Arc source target :Transition 3

Goals of this course Acquiring a bit more experience! Learn what is behind the scenes! Understand concepts and technology Apply (some of) them Experiment and evaluate technology Contribute to MBSE? Extend (and develop new) technology Combine them in a new way Formalize and analyze them Understand and work on the meta-level 4

EMF/GMF Technology PetriNet meta model Transition * Object Place Arc Node 1 source 1 target Arc is instance of generate an editor Token Transition :Transition source Place :Arc Token * target :Petrinet :Place target source model :Arc :Arc :Token :Place source target :Arc source target :Transition concrete syntax abstract syntax 5

Basic terminology Concept Formalism Method / methodology Model / meta-model Notation Principle Technique Technology Tool Software engineering Taxonomy Ontology Framework Approach 6

Course organisation Lecture part: Concepts and underlying theory of Model-based Software Engineering (with focus on the meta-level) Relation between the concepts and rationale behind them Tutorial part: Use of basic technology (Eclipse/EMF/ePNK/ECNO Tool) Practical application of (some of the) concepts and techniques for small examples Project: A simple tool for some aspect of software development (which requires to use a combination of some concepts of this course) In groups of 2-4 students There are different predefined topics from which the groups may chose (see other presentation); 7

II. Domain Specific Languages Domain Specific Language (DSL) Domain Specific Languages (DSLs) 8

DSL / DSLs The terms DSL and DSLs are uses since the the mid 90ties; Domain Specific Automatic Programming even dates back to the mid 80ties. Still, there is not is not a uniform or universal understanding of what a DSL or what DSLs are; it depends a bit on the background which characterisitics of DSLs are considered to but important or relevant. This lecture gives an overview but with a modelbased software engineering bias! 9

DSL (singular): A single domain specific language, designed and realised according to some principles and for a specific purpose or a specific domain DSLs (plural): Disipline and principles for designing and realising a DSL A technology or set of technolgies for designing and realising a DSL A way of thinking software design 10

1. Examples COBOL Lisp PROLOG SQL (Structured Query Language DB) BNF (Backus Naur Form syntax definition) regex (regular expressions) lex, yacc (compiler construction) Shell scripting languages OCL 11

BPEL (Business process execution language) BPML (Business process modeling language) Petri nets ECNO OCL Trading strategy language (see next slide) PDF / PostScript HTML / CSS 12

Tool for testing FX strategies 13

Counter-examples C C++ C# Java Ruby... UML... 14

2. Characteristics Traditional distinction of programming languages : General Purpose Languages (GPL): universal same thing can be achieved in many differnent ways Turing complete huge Special Purpose Language (SPL): made for a specific purpose (adequate for this specific purpose) succinct and highly expressive (for given purpose) typically, not Turing complete small 15

SPL and DSL? GPL SPL 16

DSL characteristics Textual (language) vs graphical (notation) Programming vs. modelling Domain of application vs separation of concerns Way of thinking design vs use of specific DSL technology Abstraction vs technical User focus vs technical focus Language vs framework Idiom oriented vs. programming oriented 17

Classification Embedded DSL: Embedded to an existing programming language by adding some framework for some purpose (often some functional languages with syntactic sugaring features) External DSL: Standalone language (graphical/textual) which is then compiled or interpreted. Often realized by DSL development tech 18

3. Parts of a DSL definition Abstract syntax (see L01): language concepts and their relation (API / domain model / framework) Concrete syntax (see L01): syntactical representation of concepts (graphical or textual) Semantics (what it does): Code generation or interpretation, which enacts what an instance of the DSL says 19

4. Philosophy A DSLs should help decrease redundancy and unnecessary work A DSL should help separating the variable or generic parts of a software product from parts which do not change A DSL should improve reuse A DSL should support abstraction form irrelevant technical details A DSL should emphasize the domains idioms 20