DSL Tools in Visual Studio - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

DSL Tools in Visual Studio

Description:

DSL unifies points of variability scattered amongst artefacts. Delivers software product lines ... DSL Tools in Visual Studio V1 ... – PowerPoint PPT presentation

Number of Views:83
Avg rating:3.0/5.0
Slides: 21
Provided by: stuar4
Category:
Tags: dsl | dsl | studio | tools | visual

less

Transcript and Presenter's Notes

Title: DSL Tools in Visual Studio


1
DSL Tools in Visual Studio
  • Stuart Kent
  • Senior Program Manager
  • Visual Studio Team System DSL Tools
  • http//blogs.msdn.com/stuart_kent
  • http//lab.msdn.microsoft.com/vs2005/teamsystem/wo
    rkshop/dsltools/

DSL Domain Specific Language
2
What is a domain?
Business Systems
Real-Time Systems
Requirements
Aircraft control systems
Airline Baggage Handling Systems
Insurance Management Systems
Specification
Implementation
Deployment
3
What is a language?
Declarative
agtb cd
ltCallRecordgt ltcallergtltnumbergt07713248lt/numbergt
Textual
Pictorial
class Magnox NuclearPowerStation public
void dropRods ()
Procedural
4
Domain Specific Languages (DSLs) make problems
Small Scale
  • Small scale
  • Not much design beyond existing platform
  • ?
  • easy to understand
  • agile
  • small team
  • early prototypes
  • easy maintenance
  • changes inexpensive

5
Finding prime numbers is Small Scale
  • If we have a system that can
  • do multiplication and division
  • do things repeatedly

language
platform
6
Finding parts lists is Small Scale
  • If we have a system that can
  • keep large lists of parts scan them quickly
  • combine and filter the lists efficiently

CREATE
JOIN WHERE
SELECT
platform
language
Relational Database
7
Developing a GUI is Small Scale
  • If we have a system that can
  • display combinations of windows and widgets
  • show things and interact with user in them

language
platform
Visual programming languages
Interactive app platform
8
Phone billing systems are Small Scale
  • if we have a language of phone billing
  • and a platform to run it on

Phone Billing Engine
9
Using a domain specific language
customer
tablet PC
customer -facing developer
10
Other things you can do
prototype for review
animator
11
Other inputs to generation
functional model
refine
prototype for review
animator
functional modelrefined/augmented for performance
phone bill system
generator
data model
existing api model
etc
12
Mind The Gap DSLs Code Generation
13
What are (could) DSLs (be) used for?
  • To write models that drive code generators
  • Configuring code frameworks, configuring
    deployment
  • DSL unifies points of variability scattered
    amongst artefacts
  • Delivers software product lines
  • To write interpreted configuration files
  • Often expressed in XML
  • To provide a domain-specific abstractions for the
    purposes of
  • Simulation/animation
  • Monitoring system execution
  • What-if analysis
  • Metric taking
  • Generating business plans and reports
  • As part of a software factory
  • Combines all of the above

14
How are DSLs implemented now?
  • XML
  • Syntax very raw, no graphics
  • Validation weak
  • Multiple cross-referencing docs are difficult to
    manage
  • N.B. Required for large models in a team
    environment
  • UML profiles (UML stereotypes / tagged values)
  • XML persistence ugly hard to handle
  • Stereotypes / tagged values not very powerful
  • UML profiles can bear little semantic resemblance
    to mainstream UML
  • Game of square peg in round hole
  • Packaging in UML is not so conducive to working
    with large models in a team environment

15
How are DSLs implemented now?
  • MOF/EMF
  • Deals with conceptual aspects of language
  • Rest of designer/editor is hand-coded
  • In meta-environments
  • Releases a meta-monster that can be hard to tame
  • Often doesnt scale to large models in a team
    environment
  • Tools not integrated into familiar IDEs

16
DSL Tools in Visual Studio V1
  • To make it cost-effective to develop
    DSL-specific, visual designers hosted in Visual
    Studio
  • For SIs large enterprises (at least)
  • For a particular class of DSLs
  • In a way that makes the model data easily
    accessible by automation tools, that are easy to
    author using XML and/or .Net technology
  • In a way that enables working with large models
    in a team environment
  • To make it cost-effective to author DSL-driven
    code/artefact generators

17
Mainline scenario
18
Demo
  • Well build a designer from scratch
  • Heres a screenshot of the target designer

19
(No Transcript)
20
DSL Tools in Visual Studio
  • Stuart Kent
  • Senior Program Manager
  • Visual Studio Team System DSL Tools
  • http//blogs.msdn.com/stuart_kent
  • http//lab.msdn.microsoft.com/vs2005/teamsystem/wo
    rkshop/dsltools/
Write a Comment
User Comments (0)
About PowerShow.com