Roles in Software Development using Domain Specific Modelling Languages - PowerPoint PPT Presentation

About This Presentation
Title:

Roles in Software Development using Domain Specific Modelling Languages

Description:

of the car. Main reasons for using DSMLs and code generation ... Transfered agile values & methods for code-based development to a process where DSML are used ... – PowerPoint PPT presentation

Number of Views:33
Avg rating:3.0/5.0
Slides: 12
Provided by: bernhar61
Learn more at: http://www.dsmforum.org
Category:

less

Transcript and Presenter's Notes

Title: Roles in Software Development using Domain Specific Modelling Languages


1
Roles in Software Development using Domain
Specific Modelling Languages
Holger Krahn, Bernhard Rumpe, Steven
Völkel Software Systems Engineering Technische
Universität Braunschweig http//www.sse.cs.tu-bs.
de/
2
Roles in Software Development usingDomain
Specific Modelling Languages
3
Problem settingUsing 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 isnot
    changeable
  • Modification of generated codeis often needed
  • ? Round-Trip is often not possible
  • Desired modification of codecannot be expressed
    in DSML

DSML instance
product developer
Handwrittencode
generated code
developer
4
Tool development inside the projectRoles 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 inthe project to
    influenceoutcome
  • Library developer
  • develops software libraries
  • Thereby simplifies the codegenerator

DSML instance
product developer
DSML
languagedeveloper
codegenerator
tooldeveloper
generated code
SW-Library
library developer
5
PrincipleThe 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

6
Human-Machine-Interfaces
  • Human-Machine-Interfaces (HMIs) in cars
  • provide user interface
  • have different functionality depending on the
    configurationof the car
  • Main reasons for using DSMLs and code generation
  • Separate menu structure (which might change
    rapidly during development) from lookfeel (that
    is fixed for a manufacturer)
  • Ensure by design that the HMI software can
    handlemultiple configurationscorrectly

buttons
central panel
status bar
7
Roles in the HMI example
defines
defines
languagedeveloper
designs
DSML Feature Diagrams
DSML Menu Diagrams
Feature Diagram
input
MontiCore code generator
MontiCore code generator
input
productdeveloper
Menu Structure Diagram
designs
MenuDSL processor
Manually definedgenerator
FeatureDSL processor
programs
tooldeveloper
assembles
generates
programs
HMI Software
Manually written HMI-Library
uses
librarydeveloper
8
Agile Values Methods
  • Communication
  • DSMLs allow to communicate in domain specific
    notations
  • Simplicity
  • As generated code is strictly not
    modifiedmodels and handwritten code are used at
    same level of abstraction (they are the primary
    development artifacts)
  • Language-based approachFor domain experts
    possibly easier to understand than
    (meta)metamodels
  • Feedback
  • On-site customerMight be a product
    developer(who directly influences the resulting
    software)

9
Agile Values Methods
  • Courage
  • Courage is needed to change DSML or generator
  • Humility
  • Different stakeholders have different
    expertiseDirectly 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

10
Features of MontiCore supportingan 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

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?
Write a Comment
User Comments (0)
About PowerShow.com