Roles in Software Development using Domain Specific Modelling Languages Holger Krahn, Bernhard Rumpe, Steven Völkel Software Systems Engineering Technische.

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Domain Engineering Arie van Deursen May Software Product Line  Group of products  sharing a common, managed set of features  to satisfy the.
Software Reuse SEII-Lecture 28
Alternate Software Development Methodologies
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
Software Reuse Building software from reusable components Objectives
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
A Domain-specific Modeling Approach to the Development of Online Peer Assessment Yongwu Miao and Rob Koper Educational Technology Expertise Centre Open.
Bridging the Gap between Practitioners and E-learning Standards: A Domain-specific Modeling Approach Yongwu Miao, Tim Sodhi, Francis Brouns, Peter Sloep,
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
Software Process Model
Ranga Rodrigo. Class is central to object oriented programming.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 2 The process Process, Methods, and Tools
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
Workflow and SharePoint Presented by Ben Geers. Overview What is workflow? Windows Workflow Foundation How does workflow apply to SharePoint? WSS v3 vs.
1. 2 Purpose of This Presentation ◆ To explain how spacecraft can be virtualized by using a standard modeling method; ◆ To introduce the basic concept.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
RUP Implementation and Testing
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
1M.Sc.(I.T.), VNSGU, Surat. Structured Analysis Focuses on what system or application is required to do. It does not state how the system should be implement.
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
Cluster Reliability Project ISIS Vanderbilt University.
Key Challenges for Modeling Language Creation by Demonstration Hyun Cho, Jeff Gray Department of Computer Science University of Alabama Jules White Bradley.
Configuration Management (CM)
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Chapter 12: User Interface Design
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
CPSC 371 John D. McGregor Session 32 This is it..
Effort.vs. Software Product “Quality” Effort Product “Quality” Which curve? - linear? - logarithmic? - exponential?
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Configuration Management CSCI 5801: Software Engineering.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Software Engineering Lecture # 1.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Getting Started with.NET Getting Started with.NET/Lesson 1/Slide 1 of 31 Objectives In this lesson, you will learn to: *Identify the components of the.NET.
Making Software Executable by Others Varun Ratnakar USC/ISI April 17, 2015
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Chapter – 8 Software Tools.
4 th Workshop for TAO and CIAO July 16, 2004 MOF-Compliant Modeling of Middleware Jeff Parsons & Matt Emerson ISIS Vanderbilt University Nashville, TN.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
A Framework for Automated and Composable Testing of Component-based Services Miguel A. Jiménez, Ángela Villota, Norha M. Villegas, Gabriel Tamura, Laurence.
Northwest Arkansas.Net User Group Jay Smith Tyson Foods, Inc. Unit Testing nUnit, nUnitAsp, nUnitForms.
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
The Development Process of Web Applications
Maintaining software solutions
Advantages OF BDD Testing
Agile Development – a new way of software development?
Oriented Design and Abstract Data Type
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Chapter 2: Building a System
Building a “System” Moving from writing a program to building a system. What’s the difference?! Complexity, size, complexity, size complexity Breadth.
Software Architecture & Design
Presentation transcript:

Roles in Software Development using Domain Specific Modelling Languages Holger Krahn, Bernhard Rumpe, Steven Völkel Software Systems Engineering Technische Universität Braunschweig

cvs://mc/doc/praesentationen Holger Krahn Software Systems Engineering TU Braunschweig Seite 2 Roles in Software Development using Domain Specific Modelling Languages An agile development process involving DSMLs1.HMI example2.MontiCore3.Conclusion4.

cvs://mc/doc/praesentationen Holger Krahn Software Systems Engineering TU Braunschweig Seite 3 Problem setting: Using off-the-shelf generators  Off-the-shelf generators DSMLs cannot be changed on demand → Notations are not domain-specific as possible Generator using templates can be changed → But: General structure of generation is not changeable  Modification of generated code is often needed → Round-Trip is often not possible Desired modification of code cannot be expressed in DSML DSML instance developer generated code Handwritten code product developer

cvs://mc/doc/praesentationen Holger Krahn Software Systems Engineering TU Braunschweig Seite 4 Tool development inside the project: Roles in Process using DSMLs  Language developer defines or enhances an existing DSML  Tool developer writes code generators for DSML comprises tools  Product developer uses tools developed in the project to influence outcome  Library developer develops software libraries Thereby simplifies the code generator DSML code generator language developer product developer DSML instance library developer generated code SW-Library tool developer

cvs://mc/doc/praesentationen Holger Krahn Software Systems Engineering TU Braunschweig Seite 5 Principle: The generated code is never changed  Generated code is never changed manually not part of the source code shared between developers (Only DSMLs and hand-written code are shared)  Pros round-trip engineering is not needed no inconsistencies between generated code and DSML build process is clear to understand and can be automated DSMLs and hand-written source code are the primary artifacts that determine the behavior of the resulting system  Cons/Additional requirements this approach Generated code needs interfaces to interact with manual code DSMLs need gaps where exceptions of the standard generation can be specified

cvs://mc/doc/praesentationen Holger Krahn Software Systems Engineering TU Braunschweig Seite 6 Human-Machine-Interfaces  Human-Machine-Interfaces (HMIs) in cars provide user interface have different functionality depending on the configuration of the car  Main reasons for using DSMLs and code generation Separate menu structure (which might change rapidly during development) from look&feel (that is fixed for a manufacturer) Ensure by design that the HMI software can handle multiple configurations correctly status bar central panel buttons

cvs://mc/doc/praesentationen Holger Krahn Software Systems Engineering TU Braunschweig Seite 7 Roles in the HMI example generates input uses DSLTool framework (Part of MontiCore) HMI Software Feature DSL processor Menu DSL processor Manually defined generator Manually written HMI-Library Feature Diagram Menu Structure Diagram DSML Menu Diagrams DSML Feature Diagrams MontiCore code generator MontiCore code generator defines language developer product developer defines library developer tool developer designs programs assembles programs

cvs://mc/doc/praesentationen Holger Krahn Software Systems Engineering TU Braunschweig Seite 8 Agile Values & Methods  Communication DSMLs allow to communicate in domain specific notations  Simplicity As generated code is strictly not modified: models and handwritten code are used at same level of abstraction (they are the primary development artifacts) Language-based approach: For domain experts possibly easier to understand than (meta)metamodels  Feedback On-site customer: Might be a product developer (who directly influences the resulting software)

cvs://mc/doc/praesentationen Holger Krahn Software Systems Engineering TU Braunschweig Seite 9 Agile Values & Methods  Courage Courage is needed to change DSML or generator  Humility Different stakeholders have different expertise: Directly reflected in the different roles  Continuous Integration text-based approach allows to use standard versioning systems no release plan for internal tool in project is needed, because it can be automatically build on demand  Refactoring Refactoring should work on interacting source code and models  Testing models can be used for production code and testing

cvs://mc/doc/praesentationen Holger Krahn Software Systems Engineering TU Braunschweig Seite 10 Features of MontiCore supporting an agile development process  Generation of reusable language components for different tools and use inside other languages  Generation of Java source code that can be easily integrated in other applications  Standardized solution for implementing a generator model traversal file and error handling processing of DSML separated in transform and workflow layer template engine partially supporting generator refactoring  Reusable ant scripts to compile a project whenever an artifact is changed DSML definition DSML instance code generator hand-written source code

cvs://mc/doc/praesentationen Holger Krahn Software Systems Engineering TU Braunschweig Seite 11 Conclusion  Transfered agile values & methods for code-based development to a process where DSML are used  Explained the different roles developers play in such an process  Agility is improved by Making the on-site customer a first class developer DSMLs support the communication  Principle of not modifying generated code ensures that models and code are used at the same level of abstraction  MontiCore simplifies the development of tools inside an agile project  Open issues How do Refactorings look like that are applied to interacting DSMLs and source code? Which predefined DSMLs are frequently required?