Domain Specific Development

Similar documents
Agenda. Introduction Power Of Visuals Introduction to Visio

Modeling pilot project at Ericsson Expert Analytics

Liferay Digital Experience Platform. New Features Summary

Modern Requirements4TFS 2018 Update 3 Release Notes

SHAREPOINT 2010 OVERVIEW FOR DEVELOPERS RAI UMAIR SHAREPOINT MENTOR MAVENTOR

(Introduction Title slide) (Forward engineering) [Start demo]

COPYRIGHTED MATERIAL. Contents. Part One: Team Architect 1. Chapter 1: Introducing the Visual Designers 3

Agenda. Introduction Power Of Visuals Introduction to Visio

Ocean Framework for Studio Extending the Ecosystem

New BMI App p r p o r va o l va Process April 3, 2017

Connect and Transform Your Digital Business with IBM

The 60-Minute Guide to Development Tools for IBM Lotus Domino, IBM WebSphere Portal, and IBM Workplace Applications

Feature: Online App Builder Studio

MODERN APPLICATION ARCHITECTURE DEMO. Wanja Pernath EMEA Partner Enablement Manager, Middleware & OpenShift

Term work presentation

CSSE 490 Model-Based Software Engineering: Software Factories

Module Title : 20484C:Essentials of Developing Windows Store Apps Using C#

EMPLOYEE LOCATION TRACKING SERVICE

Essentials of Developing Windows Store Apps Using HTML5 and JavaScript

Discover, Relate, Model, and Integrate Data Assets with Rational Data Architect

Domain Specific Languages. Requirements (Engineering)

Acano Solution. Acano Manager Release Release Notes. Acano. October J

Application management in Nokia: Getting the most from Company Apps

Lesson 4 Customize the ToolBox

VMware AirWatch Integration with RSA PKI Guide

Winshuttle InfoPath Controls. Adrian Jimenez Winshuttle

Azure Day Application Development. Randy Pagels Sr. Developer Technology Specialist US DX Developer Tools - Central Region

UCT Application Development Lifecycle. UCT Business Applications

Defining Domain-Specific Modeling Languages

Overview of Cisco License Manager

Eclipse SOA Tools Platform Project

How to Build an Appium Continuous Testing Pipeline

Understanding Complete Compare Differences After Converting Your Models

& Cross-Channel Customer Engagement RFP Guide

Source Control. Deployment. What usync Does. usync Versions

Staff Microsoft VISIO Training. IT ESSENTIALS Creating Organisation Charts Using Visio 2013 (ST560) August 2015

This guide will help you with many of the basics of operation for your Epson 485wi BrightLink Projector with interactive functionality.

Using the Random Sampling Option in Profiles

VMware vcloud Air Accelerator Service

LESSON A. The Splash Screen Application

Drools: A detailed introduction. Drools White Paper

A Step-by-step guide to creating a Professional PowerPoint Presentation

Take Your Oracle Forms on the Road Using ADF Mobile. Mia Urman, OraPlayer & Denis Tyrell, Oracle Corporation

ArcGIS Pro SDK for.net Intro and Pro Add-in Programming Patterns. Wolfgang Kaiser

Microsoft Office Programs and SharePoint Products and Technologies Integration Fair, Good, Better, Best

: Course : SharePoint 2016 Site Collection and Site Administration

Sendouts Release Notes Version 8.8

Introduce Grid Service Authoring Toolkit

ECDL Module 6 REFERENCE MANUAL

2. In the Start and End Dates section, use the Calendar icon to change the Displayed Start Date to 1/1/2015 and the Displayed End Date to 5/31/2015.

KWizCom Corporation. SharePoint Repeating Rows Field Type. User Guide

VIVIT TQA Webinar: "DISCOVER THE POSSIBILITIES OF USING THE HP QUALITY CENTER API" May 12th 2010

2015 Ed-Fi Alliance Summit Austin Texas, October 12-14, It all adds up Ed-Fi Alliance

Enterprise Architect. User Guide Series. Portals. Author: Sparx Systems. Date: 19/03/2018. Version: 1.0 CREATED WITH

2012 Microsoft Corporation. All rights reserved. Microsoft, Active Directory, Excel, Lync, Outlook, SharePoint, Silverlight, SQL Server, Windows,

Configuring and Customizing the ArcGIS Viewer for Silverlight. Katy Dalton

Logi Info v12.5 WHAT S NEW

Building a Simple Workflow Application for the Sybase Unwired Server [Part 3]

Erik Bråthen. Oslo, December 22, 2005

A Graphical Editor for LOA

Determining the Best Approach

Publishing and reviewing models on the Web Dr. Andrius Armonas, MagicDraw Product Manager

Kony MobileFabric. Release Notes. On-Premises. Release 6.5. Document Relevance and Accuracy

Evaluation Guide for ASP.NET Web CMS and Experience Platforms

Object-Oriented Programming

Enterprise Architect. User Guide Series. Portals

Lionbridge Connector for Sitecore. User Guide

Pegasystems PEGACSA71V1 Exam

Essentials of Developing Windows Store Apps Using C#

What is a prototype?

Enterprise Architect. User Guide Series. Portals

Telerik Corp. Test Studio Standalone & Visual Studio Plug-In Quick-Start Guide

Upgrading Your Development Skills to SharePoint 2013

Course 20484: Essentials of Developing Windows Store Apps Using C#

Composer Basics. By, Adarsh Srivastava & Tammy Lake

Intellicus Getting Started

In This Webinar. ConEnuous Load TesEng & ConEnuous Delivery with Jenkins

Certifying LXI Products Testing Criteria and Process

VitalAxis Deployment Tracker User Manual

PowerPoint 2010 Quick Start to a Presentation

Module Title : Course 55014A : Upgrading Your Development Skills to SharePoint 2013 Duration : 5 days

For more tips on using this workbook, press F1 and click More information about this template.

CREATING A CLOUD STRONGHOLD: Strategies and Methods to Manage and Secure Your Cloud

Oracle Identity and Access Management

Unit 10: Advanced Actions

Workspace ONE UEM Integration with RSA PKI. VMware Workspace ONE UEM 1810

What is a prototype?

Mesosphere and Percona Server for MongoDB. Peter Schwaller, Senior Director Server Eng. (Percona) Taco Scargo, Senior Solution Engineer (Mesosphere)

The latest version of Collage is 4.1 which includes all earlier features, and these new features: Additional items for Helio Output have been added.

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory

Exam Name: Developing Microsoft SharePoint Server 2013 Core Solutions

Sequence 8.2 Release Notes. Date: 13 th November 2016

UNDERGRADUATE. Background Information. Project Description

Fusion Registry 9 SDMX Data and Metadata Management System

VST System & Foundation

Mobile Computing Professor Pushpedra Singh Indraprasth Institute of Information Technology Delhi Andriod Development Lecture 09

Red Hat Developer Studio 12.0

Authoring Business Rules in IBM Case Manager 5.2

Modern Requirements4TFS 2018 Release Notes

Azure Logic Apps. The big picture. API Apps, Logic Apps & API Management

Transcription:

Domain Specific Development Stuart Kent, Senior Program Manager, Visual Studio Team System, Microsoft Copyright Microsoft 2006

Domain Specific Development Pattern Model Abstraction of the variable part, expressed in a Domain Specific Language Framework, API, Interpreter, Integrate Fixed Part Hand-crafted Generate, interpret, some of each Microsoft 2006 2

Contents Domain Specific Development Pattern Demo 1 Wizard UIP example DSD a Software Factory Pattern Domain Specific Languages (DSLs) Integration: Generation versus Interpretation from/of models Costs & benefits of the DSD approach DSL Tools in Visual Studio Demo 2 Building and deploying a DSL What Next? DSL Tools What Next? Software Factories Microsoft 2006 3

Demo 1 Wizard User Interaction Process Model Expressed in Graphical Page Flow DSL UIP framework Windows Forms Integrate Fixed Part Additional control logic code added Generate: Some control logic code Starter UI Config file that s interpreted Microsoft 2006 4

Reminder DSD Pattern Model Abstraction of the variable part, expressed in a Domain Specific Language Framework, API, Interpreter, Integrate Fixed Part Hand-crafted Generate, interpret, some of each Microsoft 2006 5

Domain Specific Language Classification domain specific language Horizontal GUI web business logic database deployment Vertical telephone bills insurance ticketing hardware construction next slide general purpose specific Microsoft 2006 6

Parts of a DSL + validation Domain Model Microsoft 2006 7

Reminder DSD Pattern Model Abstraction of the variable part, expressed in a Domain Specific Language Framework, API, Interpreter, Integrate Fixed Part Hand-crafted Generate, interpret, some of each Microsoft 2006 8

What does Integrate mean? Generate Generate code that talks to framework APIs E.g. completely new classes Generate code that completes a framework Interpret E.g. C# partial classes The model file itself, or some data pushed into a live environment from the model (e.g. xml configuration file, data in a database) is interpreted A Combination of the above Easier to produce initially More customization options Behavior can be changed at run-time Fewer artifacts to keep in sync Microsoft 2006 9

Customization (1) What? Customize/extend the behavior expressed by the model + fixed part Why? However good the fixed part, not every point of variability will have been predicted Some things (e.g. complex logic) are just easier to express in code avoids reinventing programming languages in a DSL There will be undiscovered bugs in the code generators / interpreter / framework which need to be fixed somehow DSL Area customization Microsoft 2006 10

Customization (2) customization Platform customization DSL Area Customization step Hand crafted code for specific plug-points Expert customization step Change the code generators Change the framework Microsoft 2006 11

Customization (2) Platform customization DSL Area Interpretation Customization step Hand crafted code for specific plug-points Expert customization step Generation Change the code generators Change the framework Microsoft 2006 12

Domain Specific Development Cost / Benefit Benefits Cost Fewer copies of the same code to maintain Fix bug in code generators or framework fixes for all Change in requirements (e.g. business rules) = change in model Change in technology = change in code generators / framework Better communication with stakeholders Creating/maintaining the DSL / code generators / framework potentially across many projects and versions Model Integrate Fixed Part Goal of Microsoft DSL Tools is to bring down this cost Microsoft 2006 13

DSL Tools in Visual Studio What? Tools for authoring and deploying DSLs and templatebased text artefact (e.g. code) generators Where? Now installed as part of the Visual Studio SDK http://msdn.microsoft.com/vstudio/extend/ Also see http://msdn.microsoft.com/vstudio/dsltools/ When? About to release Version 1 (Sept 06) Microsoft 2006 14

Reminder Parts of a DSL + validation Domain Model DSL Tools V1 Microsoft 2006 15

Designer for a DSL in Visual Studio Microsoft 2006 16

DSL Tools Modeling Platform In-memory graph database with rich services (e.g., transactions, serialization, rules, ) Artifact generation Extensible drawing surface with support for routing and auto-layout Visual Studio UI integration for components like toolbox, menus, properties grid, explorer Templating Engine Checks constraints and guides user to resolve issues Validation F work Design Surface Framework Domain Model Framework Shell Framework Microsoft 2006 17

DSL Tools Architecture of a Designer DSL Definition hand crafted designer extensions text templates generated directive processor Templating Engine hand coded validation logic Validation F work generate generated serializers generated domain classes generated shape 2 class mappings generated shapes Design Surface Framework Domain Model Framework generated shell code Shell Framework Microsoft 2006 18

A DSL for Activities Rejected Apply for pre-approved Loan Accepted Setup on-line account for customer Create credit check report Microsoft 2006 19

Defining a DSL, Step 1: Define Domain model Apply for pre-approved Loan Setup on-line account for customer Create credit check report Microsoft 2006 20

Defining a DSL, Step 2: Define Notation Rounded Rectangle Outline color: orange Fill color: white Apply for pre-approved loan Text Decorator Position: Source, bottom Accepted Text Decorator Position: Center Connector solid orange filled arrowhead Microsoft 2006 21

Defining a DSL, Step 3 Define visualization of domain model via notation elements Shape Domain Model Apply for pre-approved loan Microsoft 2006 22

Demo 2 Building & Deploying a DSL Microsoft 2006 23

Contents Domain Specific Development Pattern Demo 1 Wizard UIP example DSD a Software Factory Pattern Domain Specific Languages (DSLs) Integration: Generation versus Interpretation from/of models Costs & benefits of the DSD approach DSL Tools in Visual Studio Demo 2 Building and deploying a DSL What Next? DSL Tools What Next? Software Factories Microsoft 2006 24

What Next? DSL Tools Key problem is how to deal with large-scale models Possible solutions Visualize the model through multiple diagrams, possibly involving many designers Better facilities for expand/collapse, exploiting model structure (e.g. trees) Zooming in/out of diagrams Drill-in/drill-out with different notations being used for different levels of detail Use of autolayout Break up model into multiple files to support finer-grained source control Small designers integrated into software factories What else? Also new notations, better authoring, Microsoft 2006 25

What Next? Software factory platform DSL Tools become part of a wider Software Factory platform A software factory is a configuration of a software development environment aimed at developing systems in a particular domain E.g. you may have a software factory aimed at building web front ends for enterprise systems Software factories might need further customization on a per project basis, or indeed constructed for a specific project (generative programming) E.g. code generators may need to be adjusted to account for existing legacy systems Software factories integrate: DSLs associated with viewpoints Code generation actions Discovery actions Orchestration & coordination of DSLs, mappings between DSLs and actions Guidance for users of the factory, that integrate with the orchestration & coordination of actions & DSLs We (Microsoft) are working on this now Microsoft 2006 26