DSL * Tools in Visual Studio Stuart Kent Senior Program Manager Visual Studio Team System – DSL Tools

Slides:



Advertisements
Similar presentations
SSIS Field Notes Darren Green Konesans Ltd. SSIS Field Notes After years of careful observation and recording of the Species SSIS, Genus ETL, in both.
Advertisements

Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Microsoft Visual Studio and C# Programming
Ralph Johnson - University of Illinois1 Reflection and the Adaptive Object Model Architecture Ralph Johnson University of Illinois at Urbana-Champaign.
Interpret Application Specifications
Tom Hollander Solution Architect Solutions Development Centre Microsoft Australia ARC308.
© Prentice Hall CHAPTER 3 Computer Software.
Computer Skills Preparatory Year Presented by: L.Obead Alhadreti.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Microsoft Architects Forum 1 Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Software Architect Enterprise.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Chapter 13 Programming Languages and Program Development 1.
CSCI 3327 Visual Basic Chapter 1: Introduction to Visual Basic
LIUPPA – Movies Team DSM’10 – Reno/Tahoe, Nevada, USA 17 October 2010 A DSML for Mobile Applications Testing Youssef RIDENE*/**, Nicolas BELLOIR*, Franck.
Ihr Logo Data Explorer - A data profiling tool. Your Logo Agenda  Introduction  Existing System  Limitations of Existing System  Proposed Solution.
MobeSys Technologies MobeSys – helping you overcome mobile technology challenges.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
Architecture of.NET Framework .NET Framework ٭ Microsoft.NET (pronounced “dot net”) is a software component that runs on the Windows operating.
Using the WDK for Windows Logo and Signature Testing Craig Rowland Program Manager Windows Driver Kits Microsoft Corporation.
JBoss Developer Studio. JBoss Developer Studio provides a certified open source development environment that includes and integrates: Eclipse Eclipse.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Framework Universal & Infinite Software Solution.
Introduction to MDA (Model Driven Architecture) CYT.
Views The architecture was specifically changed to accommodate multiple views. The used of the QStackedWidget makes it easy to switch between the different.
Configuration Management (CM)
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
Computer Concepts 2014 Chapter 12 Computer Programming.
Domain-Specific Development Stuart Kent, Senior Program Manager, DSL Tools, Visual Studio Team System, Microsoft.
ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation.
Visual C++ Programming: Concepts and Projects
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
Building Information Systems & Managing Projects.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Selected Topics in Software Engineering - Distributed Software Development.
MANAGING SOFTWARE ASSETS ~ pertemuan 6 ~ Oleh: Ir. Abdul Hayat, MTI 1[Abdul Hayat, SIM, Semester Genap 2007/2008]
Slide title In CAPITALS 50 pt Slide subtitle 32 pt Model based development for the RUNES component middleware platform Gabor Batori
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
When buying a product in today’s marketplace, an individual is faced with the challenge of remembering an abundance of information about the product that.
ABSTRACT The JDBC (Java Database Connectivity) API is the industry standard for database- independent connectivity between the Java programming language.
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,
Software Product Lines Peter Bell CEO/CTO, SystemsForge cf.Objective() 2008 Peter Bell CEO/CTO, SystemsForge cf.Objective() 2008.
CMPE 226 Database Systems October 28 Class Meeting
Workforce Scheduling Release 5.0 for Windows Implementation Overview OWS Development Team.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Architect Visual Studio.
IT System Administration Lesson 3 Dr Jeffrey A Robinson.
ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft.
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Chapter 4 Software. Introduction Program: is a set of sequence instructions that tell the computer what to do. Software: is a collection of programs,
FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University.
Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools Jack Greenfield Architect Enterprise Tools Microsoft Corporation.
INFSO-RI JRA2 Test Management Tools Eva Takacs (4D SOFT) ETICS 2 Final Review Brussels - 11 May 2010.
CMPE 226 Database Systems April 19 Class Meeting Department of Computer Engineering San Jose State University Spring 2016 Instructor: Ron Mak
Microsoft Visual Basic 2015 CHAPTER ONE Introduction to Visual Basic 2015 Programming.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
Information and Communication Technology Lecture 6 Reference: Chapter 5.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
Keynote Enabling Mobile DevOps
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
Building Enterprise Applications Using Visual Studio®
Introduction to Visual Basic 2008 Programming
Jochen Seemann Program Manager Enterprise Tools Microsoft Corporation
The JSF Tools Project – WTP (internal) release review
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

DSL * Tools in Visual Studio Stuart Kent Senior Program Manager Visual Studio Team System – DSL Tools * DSL = Domain Specific Language

What is a domain? Implementation Specification Requirements Deployment Business Systems Real-Time Systems Aircraft control systems Airline Baggage Handling Systems Insurance Management Systems

What is a language?  C(x) h    C(x)  t 2m  x  ih = – TextualPictorial Declarative Procedural class Magnox : NuclearPowerStation { public void dropRods () jo biscuits 24 green pat cakes 32 pink Employee name address promote Job description pay assign 0..* a>b && c==d call Call Record call length  base rate: £/s store

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

Finding prime numbers is Small Scale … If we have a system that can: do multiplication and division do things repeatedly _*_ _/_ _%_ while (…) {…} C, Pascal, Fortran,… Von Neumann computer with conventional CPU language: platform:

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 … JOIN … … WHERE … SELECT … Relational Database SQL platform: language:

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 Visual programming languages Interactive app platform platform: language:

if we have a language of phone billing and a platform to run it on Phone billing systems are Small Scale … Phone Billing Engine call calendar month Call Record call length  base rate: £/s call length  friend discount rate: £/s store friends calls other calls - bill billing period store   Telephone Billing Scheme

prospect initiated prospective sale empty overflow Sat weekly accumulator 4 £20 1 week delay £30 prospect cancels salesperson’s account 31 monthly bank a/c pay 7 £ tablet PC customer -facing developer animator prototype for review tweak hack Using a domain specific language generator phone bill system

Other things you can do… prospect initiated prospective sale empty overflow Sat weekly accumulator 4 £20 1 week delay £30 prospect cancels salesperson’s account 31 monthly bank a/c pay 7 £ generator phone bill system animator prototype for review generator list of parts generator business plan C# XML C# C#, Java XML SQL mixed code and config files

prospect initiated prospective sale empty overflow Sat weekly accumulator 4 £20 1 week delay £30 prospect cancels salesperson’s account 31 monthly bank a/c pay 7 £ animator prototype for review generator phone bill system Other inputs to generation functional model data model existing api model tweak hack functional model refined/augmented for performance refine etc

“Mind The Gap” – DSLs & Code Generation

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

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

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 doesn’t scale to large models in a team environment Tools not integrated into familiar IDEs

DSL Tools in Visual Studio – V1 To make it cost-effective to develop DSL- specific, visual designers hosted in Visual Studio For SI’s & 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

Mainline scenario

Demo We’ll build a designer from scratch Here’s a screenshot of the target designer…

DSL Tools in Visual Studio Stuart Kent Senior Program Manager Visual Studio Team System – DSL Tools