Domain Specific Models John D. McGregor M13S1. Tool development Eclipse is an environment intended as a basis for building software engineering tools.

Slides:



Advertisements
Similar presentations
Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger.
Advertisements

CPSC 875 John D. McGregor C17 – Tool Chains. Workflow engine Uses grid.
Automated Test Design ™ © 2011 Conformiq, Inc. CONFORMIQ DESIGNER On ES v1.2.1 Stephan Schulz MBT Working Meeting/MTS#56, Göttingen.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
Telecom and Informatics :: INF5120 :: Mansur Abbasi & Svein Melby Assignment 1 – First aid - Clarifications, issues and insight.
The Knowledge Industry Survival Strategy (KISS) Tony Clark, Thames Valley University, London, UK Jorn Bettin, Sofismo, Switzerland.
1/18 CS 693/793 Lecture 09 Special Topics in Domain Specific Languages CS 693/793-1C Spring 2004 Mo, We, Fr 10:10 – 11:00 CH 430.
Lecture #4 Agenda Cell phones off & name signs out Review Questions? Objects The birds-and-the-bees talk.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
CS 432 Object-Oriented Analysis and Design
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Comparing M2T & M2M Complementary Approaches © 2008 INRIA, University of York & SINTEF Comparing M2T & M2M Complementary Approaches Hugo Bruneliere,
CSCI-383 Object-Oriented Programming & Design Lecture 15.
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
Software Design Description (SDD) Diagram Samples
INTERNATIONAL SUMMER ACADEMIC COURSE UNIVESITY OF NIS ISAC – Android programming.
ANTLR.
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
Chapter 17 Programming Tools The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander.
Fall CIS 764 Database Systems Engineering L3: Two Assignments Relating to J2EE.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
CPSC 871 John D. McGregor MSumS2 Summary – technical issues in software engineering.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 8: More About OOP and GUIs.
1 Introduction to Modeling Languages Striving for Engineering Precision in Information Systems Jim Carpenter Bureau of Labor Statistics, and President,
1 A Web Specific Language for Content Management Systems Viðar Svansson, Roberto E. Lopez-Herrejon Computing Laboratory University of Oxford.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
METACASE. WHAT THIS PRESENTATION IS ABOUT  What’s META MODELING?  What’s METACASE?  METAEDIT+ 5.1 EVALUTION PROGRAM  Diagram and its kinds.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
John D. McGregor Session 2 Preparing for Requirements V & V
Selected Topics in Software Engineering - Distributed Software Development.
Faculty Advisor – Dr. Suraj Kothari Client – Jon Mathews Team Members – Chaz Beck Marcus Rosenow Shaun Brockhoff Jason Lackore.
Software Engineering. Software Engineering is… Design Coding Testing Debugging Documentation Maintenance …of new software.
Copyright © 2013 Curt Hill UML Unified Modeling Language.
CPSC 871 John D. McGregor Module 7 Session 1 More UML.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
WEEK INTRODUCTION CSC426 SOFTWARE ENGINEERING.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Compiler Construction (CS-636)
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
SYSE 802 John D. McGregor Module 1 Session 2 Requirements Modeling in SysML.
LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany.
 Programming - the process of creating computer programs.
Faculty Advisor – Dr. Suraj Kothari Client – Jon Mathews Team Members – Chaz Beck Marcus Rosenow Shaun Brockhoff Jason Lackore.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Software Development Introduction
Digital Design Using VHDL and PLDs ECOM 4311 Digital System Design Chapter 1.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
Automaton-Based Approach for Defining Dynamic Semantics of DSLs Ulyana Tikhonova St. Petersburg State Polytechnical University,
PAPYRUS Tutorial CSOS 손 태 용.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
Use Cases UML. Use Cases What are Use Cases?  A statement of the functionality users expect and need, organized by functional units  Different from.
M&CML: A Monitoring & Control Specification Modeling Language
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Chapter 10 Application Development
Computer Organization, Eclipse Intro
Chapter 8: More About OOP and GUIs
International Research and Development Institute Uyo
Online Shopping APP.
Unit 1: Introduction Lesson 1: PArts of a java program
Chapter 7 –Implementation Issues
Review of Previous Lesson
Software Architecture & Design
Presentation transcript:

Domain Specific Models John D. McGregor M13S1

Tool development Eclipse is an environment intended as a basis for building software engineering tools It provides a basis for construction and testing of these tools Testing requires executing the tool in the “context” of the tool editor Eclipse allows one instance of the workbench to start another and to have special hooks into the child instance

Transformations A transformation is a function that maps one set of symbols to another It can be 1-1 or M-1 It can map text to model (T2M) or model to text (M2T) or M2M or T2T For example, in the AADL tools set we used a text grammar and OSATE generated an IMV (T2M)and an.aaxl2 (xml file) (T2T)

Transformations - 2 Transformations make it easier to work in a mode that is best for you. Text is better for humans; xml is better for computation. To be most useful a transformation should map every symbol in the domain to a symbol in the range so that no information is lost. A chain of transformations can be used. For example I might write a program in Java that is translated into the language of the JVM which in turn translates to the machine code of the target platform.

Coils.aadl

.AAXL2

Covers a larger area than coils

Domain model Defines a vocabulary Use UML/SySML class diagrams (or an AADL model)to start Nouns are entities Verbs are behaviors related to an entity Variants are often subclasses of an abstract entity

Portion of a model

Domain specific language A language that is limited to a smaller set of concepts than a general purpose language AADL vs Java User is more guided but also more constrained UML and SysML are DSLs If I have a hammer every problem looks like a nail.

UML is intended for the types of models used for object-oriented

AADL model Defines components and relationships among them – Systems are entities – Features are either methods or data – Ports are entry/exit points

Requirements Use domain vocabulary to be more precise than general English Write sentences using that vocabulary “The gap between the pads shall be no greater than 5 inches and no less than 3 inches.”

Product line requirements Variants are represented at variation points “The gap between the pads shall be no greater than > > and no less than > >.” “This model of vehicle requires a >.”

Tool support for a DSL Needs a grammar Needs an editor Needs a code generator Debuggers and other items would be nice but DSL programs are usually simpler than general purpose programs

xText xText is a DSL generator It takes a grammar as input and outputs the infrastructure needed for a basic editing environment for a language The current version of editors in OSATE are generated using xText

xText in Eclipse grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals generate myDsl " Model: greetings+=Greeting*; Greeting: 'Hello' name=ID '!';

Wireless power transfer dsl – just a small example grammar org.xtext.wpt.wptdsl.MyDsl with org.eclipse.xtext.common.Terminals generate myDsl " Model: requirements+='The type of coil required is '+Coil*; Coil: 'LowCapacityCoil' | 'HighCapacityCoil';

Results Editor gives error if I deviate from the grammar

Installing xText There are two update sites needed to install xText – updates/composite/releases/ – The first gets the body of xText The second gets antlr which is a parser generator Licensing issues require the separation

on.html#FirstFiveMinutes Read through all of this Work through

Here’s what you are going to do Submit 2 or 3 screen shots of the Eclipse environment showing your work at the end of the last tutorial Submit by 11:59PM Oct 23rd