2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

71
2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005

Transcript of 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

Page 1: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

20052005 Microsoft PAKISTAN DEVELOPER CONFERENCEJune 13-15, 2005

Page 2: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

22

Arvindra SehmiHead of Enterprise & ArchitectureDeveloper & Platform GroupMicrosoft EMEA [email protected]/asehmi

Acknowledgement:Keith Short & Jack Greenfield, ArchitectsEnterprise Tools, Visual Studio, Microsoft Corporation

Software FactoriesSoftware Factories& DSL Tools& DSL Tools

Page 3: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

33

AgendaAgenda

• Modeling and Methods

• What is a Software Factory?

• A Software Factory Schema

• Domain Specific Languages

• Wrap Up

Page 4: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

44

AgendaAgenda

• Modeling and Methods

• What is a Software Factory?

• A Software Factory Schema

• Domain Specific Languages

• Wrap Up

Page 5: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

55

You all know what You all know what modelingmodeling is… is…

Page 6: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

66

Spend a lot of time drawing loads Spend a lot of time drawing loads of these…of these…

{creditCardDetails->isEmpty( ) =customer.creditAccount->notEmpty( )}

DeliveryAddress

addLine1addLine2postCodetown

CreditAccount

numberbalance

GeneralLedger

Supplier

name

StockReplacementOrder

orderDateorderQuantity

1

0..*

1

0..*

Catalogue

CatalogueItem

stockLeveltitleeditioncomposerminStockLevelstockRequestsidreorderQtypriceExVAT

1

*

1

*

*

1

*

1

CreditCardDetails

accountNumberexpiryDate

Customer

firstNamesecondNameprefixcustomerNumberpasswordemailAddress

*

1

*

1

1

0..1

1

0..1

OrderItem

qty

*

1

*

1

Posting

amountdate

1

0..*

1

0..*

Order

expectedDeliveryDateorderCreationDate*0..1 *0..1

0..*

1

0..*

1

1

1..*

1

1..*

0..*

1

0..*

1

Page 7: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

77

..throw them away and get on with ..throw them away and get on with the codethe code

• But wait!

• Isn’t the code alsoa model?

• So what exactly do we mean by “model”?

UsingMicrosoft.Fabriq.EnterpriseInstrumentation.Schema;

namespace Microsoft.Fabriq.Util{ /// <summary> /// This class provides unified /// management, eventing, … /// </summary> public class Logger { public static void LogErrorMessage(

string message, int severity, string errorCode)

{ ErrorMessageEvent.Raise(

FabriqEvents.FabriqEventSource, message, severity, errorCode );

} }}

Page 8: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

88

Are our models “mathematical Are our models “mathematical models”?models”?

Page 9: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

99

Are they “scale models”?Are they “scale models”?

Page 10: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

1010

Are they “theoretical models”?Are they “theoretical models”?

Page 11: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

1111

Definitely not this kind of model…Definitely not this kind of model…

Copyright: www.gucci.comCopyright: www.gucci.com

Page 12: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

1212

A software “model” isA software “model” is

• Partly about visualisation Abstraction for clarity Because picture worth a thousand words

• Sometimes about algorithms Expression in a convenient form Because compact and efficient

• Often a set of instructions A recipe Because can be automated

Page 13: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

1313

You all know there is a You all know there is a ““methodmethod in the madness” in the madness”

of software development…of software development…

Page 14: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

1414

32

Core Component BuilderDev Lead

-Build core reusable components-Build business objects

-Refine DB schemas on developmentdatabases

-Extend core components

Solution Structure DesignerProgrammer Analyst, Application Architect

-Design applications that implement business processes-Analyze and design solution structures

-Validate an application’s viability against corporatedata model

CoderDeveloper

-Use existing components-Code forms

Business AnalystBusiness Analyst, Executive

-Champion projects-Make go/no go decisions

-Define business process flow

Programming/Platforms ExpertArchitect

-Provide organizations strategic technology direction-Define organizations technology standards

-Oversee design of applications throughout theorganization

15

4

1 Mistakes in application architecture are costly, but so is having a hands on architect for every project.

2 Requirements are often vague or incomplete.

3 Business analysts find it hard to tell if an app design properly implements a business process.

4 Programmer analysts can’t be sure that dev implement what was specified.

5 Mistakes in defining data access patterns are costly, but so is having a hands on data architect for every project.

6 Talent for implementing solutions is too expensive, or requires too much oversight.

7 Following architectural guidance requires copious reading and double checking of policies, which takes time away from actual coding.

6

2

7

Page 15: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

1515

Expensive to do thisfor every project

Too much hand holding

Senior User-Domain expert

-Consults on app design-Represents rank and file users

Business Analyst-Champions Project

-Makes Go/No Go Decisions-Defines business process flow

Graphic Designer-Design Look and Feel-Customer Advocate

Data Modeler(Data Atchitect)

-Analyze business requirements-Create conceptual models of information

-Detailed analysis

Solution Structure Designer(Programmer Analyst)

-Design applications that implement biz processes-Validate an application's viability against corporate data model

Web Dev(HTML Centric)

-HTML and Scripting-Script client side and server side behavior

-Implement styles/look and Feel

DBA/Ops-Keep systems running

-Installing/setting up servers and other computers-Setting up/maintaining databases

Lead Developer-Uses VS to build core reusable components

-Builds Biz Objects (data APIs)-Defines DB Schemas

-Uses VS to extend core components

Developer-Uses VS to use components

-Uses VS to code forms

Users

Interaction/Experience Manager

Domain Info<Informal, Verbal>

<Word Docs>

Project/IT Manager-Overall Responsibility

-Keep schedule up to data-Set timelines and key dates

-Set delivery Data

Description of Process<Visio Diagram>

Description of Application-Flow Diagram-Prototype

Policies and restrictions

Programming/Platform Expert(Architect)

-Provide Strategic Direction-Determines Company Tech Standards-Oversees design of app architectures

throughout the organization

Feedback on errors/intent

Database Specs

Possible Solutions

Spec

Feedback

Spec

Spec

Feedback

Description of Application-Flow Diagram-Prototype

Visual Spec

Path to physical DB

Feedback on errors/intent

Status Reports

Estimates

Status Reports

Estimates

Data Access API

Requirements often vague, incomplete

Hard to tell ifapp design correctlydefines biz process

PM has to trust these estimates No way to guarantee

spec is followed

No way to guaranteespec is followed

Requirements(often new)

Logical/physicalarchitecture

Requirements(QOSs)

Work Items

DB Scripts

Feedback on DB Scripts

Policies and restrictions

Advice and designs fortricky parts of the app

Domain Info<Informal, Verbal>

<Word Docs>

Page 16: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

1616

A software “method” isA software “method” is

• A way of working from requirements to through implementation to deployment

• Typically process-oriented Identifying a set of artifacts Building those artifacts Producing deliverables

Page 17: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

1717

Customers Want To KnowCustomers Want To Know

• What types of systems can I build? What’s the architecture of each type?

• How do I go from requirements to deployment? What artifacts and how are they related?

• Why are methodologies so ineffective? Why aren’t they integrated with my tools? Why can’t I get detailed and specific guidance for my

project?

• Why are modeling tools so ineffective? Why can’t they generate production quality code? Why don’t models stay synchronized with code? Why can’t models fit my file-oriented environment?

Page 18: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

1818

Is Agility The Answer?Is Agility The Answer?

• Agile methods optimize for change Collaborating instead of documenting Building and running in small iterations Continuously validating requirements Continuously refactoring the software Time boxing or cash boxing the project

• Where do they fall short? Don’t scale up to large or complex projects One-off development of generic systems Lack of metadata limits degree of automation Lack of architecture documentation creates

integration and support issues

Page 19: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

1919

Is Formality the Answer?Is Formality the Answer?

• Formal methods optimize for complexity Prescribing roles, artifact, activities Emphasizing requirements, analysis, design Using models to document architecture

• Where do they fall short? Don’t respond rapidly to change One-off development of generic systems Coding, testing, debugging, instrumentation,

deployment, management, maintenance Informal languages and mappings limit degree of

automation

Page 20: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

2020

AgendaAgenda

• Modeling and Methods

• What is a Software Factory?

• A Software Factory Schema

• Domain Specific Languages

• Wrap Up

Page 21: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

2121

Software Development as Software Development as CraftsmanshipCraftsmanship

• Labor Intensive

• Generic Tools

• Generic Processes

• One off applications

• Hand stitched from scratch

• Minimal reuse

Overruns, defects, security holes, project failures

Page 22: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

2222

Exploiting CommonalityExploiting Commonality

• We already exploit economies of scale to automate production

• Stamping out many identical copies of a prototype

• Used to produce CDs/DVDs

• Does nothing to help development

Page 23: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

2323

Exploiting CommonalityExploiting Commonality• We can also exploit

economies of scope

• Reuse designs & components

• Build many similar but distinct prototypes

• Key is supporting variability

Define only the unique piecesof each system

Page 24: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

2424

Software FactoriesSoftware Factories

• Domain-specific process

• Domain-specific tools & languages

• Domain-specific content

• Automate rote and menial tasks

General-purpose IDEs become domain-specific software factories

Page 25: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

2525

Software Factories Pillars – TBCSoftware Factories Pillars – TBCWarning: This is a personal perspectiveWarning: This is a personal perspective

Process, Tools & Languages, Content, Automation

Software Factories

Visual Studio (Whidbey, Orcas)

DS

L T

ools

GA

T

“FA

LC

ON

”“FA

LC

ON

GA

T

SD

M S

DK

?

MS

F P

rocess

Ag

ile /

Form

al

Tru

stw

ort

hy

Meta

data

Ric

h P

latf

orm

Page 26: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

2626

AgendaAgenda

• Modeling and Methods

• What is a Software Factory?

• A Software Factory Schema

• Domain Specific Languages

• Wrap Up

Page 27: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

2727

XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,

CodeCode

Deployment Deployment UnitsUnits

packaged intopackaged into

Code VisualizationCode Visualization

Class Designerand

two-way code synch

Class Designerand

two-way code synch

Class Designerand

two-way code synch

Class Designerand

two-way code synch

Page 28: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

2828

Raising The Level Of AbstractionRaising The Level Of Abstraction

??

Config Files.asmx Files .asmx Code Behinds

Other Code

Projects and Templates

Assemblies

Page 29: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

2929

??

Raising The Level Of AbstractionRaising The Level Of AbstractionApplication Connection Model

Config Files.asmx Files .asmx Code Behinds

Other Code

Projects and Templates

Assemblies

Page 30: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

3030

Models and FrameworksModels and Frameworks

CustomCustomPartialPartial

ClassesClassesFrameworkFramework

PartialPartialClassesClasses

ASP.NETASP.NET

Config FilesConfig Files

Other Other ResourcesResources

usesuses

usesuses

completescompletes

FrameworkFrameworkToolsTools

DSLDSLEditorEditor

DSLDSLModelModel

generatesgenerates

OtherOtherEditorsEditors

edit / buildedit / build

generatesgenerates

Model FilesModel Files(SDM) (SDM)

Page 31: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

3131

Effective TransformationsEffective Transformations

Model

Application Code

PlatformFrameworks

Model

Generated Code

Platform

Model

Application Code

PlatformFrameworks

Model

Generated Code

Platform

Model

Application Code

PlatformFrameworks

Model

Generated Code

Platform

Model

Application Code

PlatformFrameworks

Model

Generated Code

Platform

GenerateGenerateTo PlatformTo Platform

Application Code

Model

PlatformFrameworks

Generated Code

Model

Platform

Application Code

Model

PlatformFrameworks

Generated Code

Model

Platform

Application Code

Model

PlatformFrameworks

Generated Code

Model

Platform

Application Code

Model

PlatformFrameworks

Generated Code

Model

Platform

Old CaseOld Case

PlatformFrameworks

Application Code

Model

Platform

Generated Code

Model

PlatformFrameworks

Application Code

Model

Platform

Generated Code

Model

PlatformFrameworks

Application Code

Model

Platform

Generated Code

Model

PlatformFrameworks

Application Code

Model

Platform

Generated Code

Model

InterrelatedInterrelatedModelsModels

Model

Application CodeDomain Specific

Framework

PlatformFrameworks

Model

Generated CodeFramework

Pattern Language

Platform

Model

Application CodeDomain Specific

Framework

PlatformFrameworks

Model

Generated CodeFramework

Pattern Language

Platform

Generate to Generate to FrameworkFramework

DSLsDSLs

Page 32: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

3232

XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,

CodeCode

Deployment Deployment UnitsUnits

packaged intopackaged into

Services, Services, Messages, Applications, Messages, Applications,

EndpointsEndpoints

Abstraction/Abstraction/refinementrefinement

Vertical Mapping - System DesignVertical Mapping - System Design

Page 33: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

3333

XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,

CodeCode

Physical Servers Physical Servers and Network and Network

SegmentsSegments

Deployment Deployment UnitsUnits

packaged intopackaged into deployed ondeployed on

Services, Services, Messages, Applications, Messages, Applications,

EndpointsEndpointsLogical Data Center Logical Data Center

Host SoftwareHost Software

Abstraction/Abstraction/refinementrefinement

Vertical Mapping - Data Center DesignVertical Mapping - Data Center Design

Page 34: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

3434

Providing TraceabilityProviding Traceability

Applications

ApplicationHosting

Logical Machines & Network Topology

Hardware

SystemDefinition

Model

Page 35: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

3535

XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,

CodeCode

Physical Servers Physical Servers and Network and Network

SegmentsSegments

Deployment Deployment UnitsUnits

packaged intopackaged into deployed ondeployed on

Services, Services, Messages, Applications, Messages, Applications,

EndpointsEndpointsLogical Data Center Logical Data Center

Host SoftwareHost Software

constraintsconstraints

Horizontal Mapping - DeploymentHorizontal Mapping - Deployment

Page 36: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

3636

DB DB DefinitionsDefinitions

XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,

CodeCode

Physical Servers Physical Servers and Network and Network

SegmentsSegments

Deployment Deployment UnitsUnits

packaged intopackaged into deployed ondeployed on

Services, Services, Messages, Applications, Messages, Applications,

EndpointsEndpoints

Logical Business Logical Business Entities,Entities,

Operations, RulesOperations, Rules

Implementable Business Implementable Business Processes and EntitiesProcesses and Entities

User InterfaceUser InterfaceProcessProcess

Logical Data Center Logical Data Center Host SoftwareHost Software

User Interface Process DesignUser Interface Process Design

Page 37: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

3737

DB DB DefinitionsDefinitions

XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,

CodeCode

Physical Servers Physical Servers and Network and Network

SegmentsSegments

Deployment Deployment UnitsUnits

packaged intopackaged into deployed ondeployed on

Services, Messages, Applications,

Endpoints

LogicalBusiness Entities,LogicalBusiness Entities,Operations, RulesOperations, Rules

BiztalkSchedules & Rules

Implementable Business Implementable Business Processes and EntitiesProcesses and Entities

User Interface Process

Business Processes and Entities

Manual Manual ProcessesProcesses

Business Business CapabilitiesCapabilities

Logical Data Center Logical Data Center Host SoftwareHost Software

Business Entity Business Entity ImplementationImplementation

Page 38: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

3838

DB DB DefinitionsDefinitions

XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,

CodeCode

Physical Servers Physical Servers and Network and Network

SegmentsSegments

Deployment Deployment UnitsUnits

packaged intopackaged into deployed ondeployed on

Services, Services, Messages, Applications, Messages, Applications,

EndpointsEndpointsLogical Business Entities,Logical Business Entities,

Operations, RulesOperations, Rules

Implementable Business Implementable Business Processes and EntitiesProcesses and Entities

User InterfaceUser InterfaceProcessProcess

Business Processes and Business Processes and EntitiesEntities

Business Business CapabilitiesCapabilities

Logical Data Center Logical Data Center Host SoftwareHost Software

Business Process ModelingBusiness Process Modeling

Page 39: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

3939

DB DB DefinitionsDefinitions

XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,

CodeCode

Physical Servers Physical Servers and Network and Network

SegmentsSegments

Deployment Deployment UnitsUnits

packaged intopackaged into deployed ondeployed on

Services, Services, Messages, Applications, Messages, Applications,

EndpointsEndpointsLogicalBusiness Entities,LogicalBusiness Entities,

Operations, RulesOperations, Rules

BiztalkBiztalkSchedules & RulesSchedules & Rules

Implementable Business Implementable Business Processes and EntitiesProcesses and Entities

User Interface User Interface ProcessProcess

Business Processes and Business Processes and EntitiesEntities

Manual Manual ProcessesProcesses

Business Business CapabilitiesCapabilities

Logical Data Center Logical Data Center Host SoftwareHost Software

Business Process Business Process ImplementationImplementation

Page 40: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

4040

DB Definitions

XML, Projects,Configs, Classes,

Code

Physical Servers and Network

Segments

Deployment Units

Services, Messages, Applications,

EndpointsLogical Business Entities

Rules, Operations

BizTalkSchedules & Rules

Implementable Business Processes and Entities

User InterfaceProcess

Business Processes and Entities

Manual Processes

Business Capabilities

Logical Data Center Host Software

A Graph of Interrelated Viewpoints

(IEEE1471)

Software Factory SchemaSoftware Factory Schema

Page 41: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

4141

DB Definitions

XML, Projects,Configs, Classes,

Code

Physical Servers and Network

Segments

Deployment Units

packaged into deployed on

Services, Messages, Applications,

Endpoints

Logical Business EntitiesOperations, Rules

WinOESchedules & Rules

Implementable Business Processes and Entities

User InterfaceProcess

Business Processes and Entities

Manual Processes

Business Capabilities

Logical Data Center Host Software

Recipe for a system family

Software Factory SchemaSoftware Factory Schema

ModelsModelsPatternsPatternsBlocksBlocksFrameworkFrameworkssComponentComponentssProcessProcessTest CasesTest CasesToolsTools

Page 42: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

4242

……A Software Factory SchemaA Software Factory Schema

• Like a recipe for a specific class of systems A set of viewpoints related by formal mappings Describes artifacts required to build systems in the class and

explains how to combine them

• Implemented by a software factory template Configures Visual Studio to build members of the class Provides the necessary ingredients and tools Solution template, project templates, file templates, patterns,

dynamic help, work item types, workflow, check in policy, reports, groups & permissions, phase exit criteria

• Creates a domain specific IDE called a software factory Integrates tools, process and content for the class of systems Domain specific editing, compilation, debugging, refactoring,

building, testing, deployment, configuration management, defect tracking, reporting

Page 43: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

4343

AgendaAgenda

• Modeling and Methods

• What is a Software Factory?

• A Software Factory Schema

• Domain Specific Languages

• Wrap Up

Page 44: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

4444

Domain-Specific LanguagesDomain-Specific Languages

• Focused on a single aspect of app building Success in broad horizontal domains: SQL, Windows

Form Designer

• Designed support the concepts defined by an underlying framework Automate rote tasks with effective code generation

• Increase agility by visualizing concepts, generating code and other artifacts, enabling rapid iteration

Building them must be fast, cheap and easy

Page 45: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

4545

Building a DSLBuilding a DSLConcepts & Concepts & Well-formednessWell-formednessRulesRules

Generated and Generated and Related ArtifactsRelated Artifacts

Notations & Notations & Well-formednessWell-formednessRulesRules

XML SerializationXML Serialization

Page 46: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

4646

Visual LanguagesVisual LanguagesImportant

• Shapes

• Links, ends, style

• Labels

• Nesting

• Layout, routing

property

Corona

Corona

Corona

label

Shape

GroupBase

members

waiting

runningpause begin

stop

playing

+v

0v0.7CR

R

C

0.1R

C

R0.1R

Page 47: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

4747

Domain Specific Languages In The Domain Specific Languages In The Context Of The DSL ToolsContext Of The DSL Tools

• Visual Languages… To understand or define requirements To understand or define design To generate parts of the solution To implement design patterns for specific

frameworks and architectures To customize applications and

application components To visualize existing systems

Page 48: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

4848

Building A Designer For Visual Building A Designer For Visual StudioStudio

ToolboxToolbox

PropertyPropertyBrowserBrowser

ExplorerExplorer

ValidationValidation

Drawing surface Drawing surface with domain with domain

specific notationspecific notation

Page 49: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

4949

Visual Studio Team SystemVisual Studio Team System

Change Management

Work Item Tracking

Reporting

Project Portal

Visual StudioTeam Foundation Server Integration Services

Project Management

Pro

ces

s a

nd

Arc

hit

ect

ure

P

roc

ess

an

d A

rch

ite

ctu

re

Gu

idan

ce

Gu

idan

ce

Dynamic Code Analyzer

Visual Studio Team Edition

Software Architects

Static Code Analyzer

Code Profiler

Unit Testing

Code Coverage

Team Explorer (includes Team Foundation Server CAL)

Visual Studio Professional Edition

Load Testing

Manual Testing

Test Case Management

Visual Studio Team Edition

Software DevelopersVisual Studio Team Edition

Software Testers

Vis

ua

l Stu

dio

Ind

us

try

V

isu

al S

tud

io In

du

str

y

Pa

rtn

ers

Pa

rtn

ers

Team Build

Visio for Enterprise Architects (in MSDN Premium Subscription)

Modeling PlatformModeling PlatformDSL ToolsDSL Tools

Application Designer

System Designer

Logical Datacenter Designer

Deployment Designer

Class Designer (in Visual Studio Standard Edition and higher)

Page 50: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

5050

A SDK To Build Visual Modeling A SDK To Build Visual Modeling ToolsTools

VisualStudio2005

Microsoft Modeling PlatformMicrosoft Modeling PlatformIn Visual StudioIn Visual Studio

DistributedDistributedSystemsSystems

DesignersDesigners

ClassClassDesignerDesigner

DSL Tools for Visual StudioDSL Tools for Visual Studio

Your newYour newDesignerDesigner

Page 51: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

5151

Microsoft Modeling PlatformMicrosoft Modeling PlatformIn Visual StudioIn Visual Studio

Modeling PlatformModeling Platform

Domain ModelDomain ModelFrameworkFramework

Design SurfaceDesign SurfaceFrameworkFramework

TemplateTemplateEngineEngine

ShellShellFrame-Frame-workwork

ValidationValidationFrame-Frame-workwork

In-Memory graph database In-Memory graph database with rich services (e.g., with rich services (e.g.,

transactions, serialization…) transactions, serialization…) and queries and queries

Extensible drawing Extensible drawing surface with surface with

support for routing support for routing and auto-layoutand auto-layout

Artifact Artifact generation generation

Constraint checking Constraint checking and guides user to and guides user to

resolve issuesresolve issues

Visual Studio UI Visual Studio UI Integration for Integration for

components like components like Toolbox, MenusToolbox, Menus

Page 52: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

5252

A Simple Workflow LanguageA Simple Workflow Language

AttendDSL Session

Download &Try out

DSL ToolsHands-On Lab

GoParty

Tonight

Fascinated Fascinated by DSL Toolsby DSL Tools

AlreadyAlreadyBoredBored

Too lateToo late

Bored Bored nownow

Page 53: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

5353

Define Domain Model Define Domain Model Task ClassTask Class

AttendDSL Session

Download &Try out

DSL Tools Hands-On Lab

GoParty

Tonight

Page 54: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

5454

Define Domain Model Define Domain Model InheritanceInheritance

AttendDSL Session

Download &Try out

DSL ToolsHands-On Lab

GoParty

Tonight

Page 55: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

5555

Define Domain Model Define Domain Model RelationshipsRelationships

AttendDSL Session

Download &Try out

DSL ToolsHands-On Lab

GoParty

Tonight

Page 56: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

5656

Define ShapeDefine Shape

AttendDSL Session

Rounded RectangleRounded Rectangle Outline color: blackOutline color: black Fill color: gray Fill color: gray

Text DecoratorText Decorator Position: centerPosition: center

Page 57: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

5757

Define Connector Define Connector AppearanceAppearance

AttendDSL Session

Download &Try out

DSL ToolsHands-On Lab

Text DecoratorText Decorator Position: Source, TopPosition: Source, Top

ConnectorConnector solidsolid blackblack filled arrowheadfilled arrowhead

Fascinated Fascinated by DSL Toolsby DSL Tools

Page 58: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

5858

Define ConnectorDefine ConnectorVisual SyntaxVisual Syntax

AttendDSL Session

Download &Try out

DSL ToolsHands-On Lab

GoParty

Tonight

Page 59: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

5959

Define MappingDefine Mapping

AttendDSL Session

ShapeShape Domain ModelDomain Model

Page 60: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

6060

CustomCustomBehaviorBehavior

Building A DesignerBuilding A Designer

NotationNotationDefinitionDefinition

MappingMappingDefinitionDefinition

DomainDomainModelModel

DefinitionDefinition

Code generated Code generated by DSL Toolsby DSL Tools

Validation/Validation/ConstraintsConstraints

Custom Custom XMLXML

SerializationSerialization

Code/Code/ArtifactArtifact

GenerationGeneration

Custom CodeCustom Code(SDK)(SDK)

Page 61: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

6161

Simple UIP Example Simple UIP Example

BA designer based on UIP BA designer based on UIP application blockapplication block• Define a domain model

• Define shapes

• Define mapping

• Generate code

• Build designer

• Run designer

Page 62: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

6262

Generators Based On TemplatesGenerators Based On Templates

standardStuff;standardStuff;standardStuff;standardStuff;<# foreach Task t in this.Workflow.Tasks<# foreach Task t in this.Workflow.Tasks {{#>#>

class <#= t.Name #> : TaskBaseclass <#= t.Name #> : TaskBase{ … }{ … }

<# }<# }#>#>moreStandardStuff; …moreStandardStuff; …

prospectinitiated

prospective sale

empty

overflow

Sat

weekly

accumulator4

£20

1 week delay

£30

prospectcancels

salesperson’saccount31

monthly

bank a/c

pay

7

£

standardStuff;standardStuff;standardStuff;standardStuff;class DoFirst : TaskBase {…}class DoFirst : TaskBase {…}class DoNext : TaskBase {…} class DoNext : TaskBase {…} ……

TemplateTemplate

Generated Generated CodeCode

ModelModel

QueriesQueries

Page 63: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

6363

Software Factories Software Factories Multiple DesignersMultiple Designers

prospectinitiated

prospective sale

empty

overflow

Sat

weekly

accumulator4

£20

1 week delay

£30

prospectcancels

salesperson’saccount31

monthly

bank a/c

pay

7

£

Model 1 – FlowModel 1 – Flow

Model 2 – EntitiesModel 2 – Entities

7

£

<xxx yyy> <zzz /></xxx>

Model 3 – ControlModel 3 – Control

Flow aspect Flow aspect codecode

Control aspect Control aspect codecode

Entities aspect Entities aspect codecode

Page 64: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

6464

AgendaAgenda

• Modeling and Methods

• What is a Software Factory?

• A Software Factory Schema

• Domain Specific Languages

• Wrap Up

Page 65: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

6565

Why Software FactoriesWhy Software Factories

• Consolidate implicit business and system development knowledge into specialized tools, process, and content

• Increase productivity and predictability by better organizing and automating the development process

• Reduce cost and risk by distributing the software life cycle across networks of interdependent groups and partners

Page 66: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

6666

Support For Building FactoriesSupport For Building Factories

• Guidance for building Software Factories With Visual Studio 2005 Team System

• Integration with Visual Studio 2005 Methodology Templates, Dynamic Help

• Visual tools for building Software Factories Schema Designer, Template Builder

Possibilities that we are consideringPossibilities that we are considering

Page 67: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

6767

Support For Using FactoriesSupport For Using Factories

• Guidance for using Software Factories

• Integration with MSF Agile and Formal Guidance tuned for specific types of systems Distributed across software factory schema

• Visual tools for using Software Factories Template Installer, Configuration Console

Possibilities that we are consideringPossibilities that we are considering

Page 68: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

6868

DSL - What’s Next?DSL - What’s Next?

• DSL Tools are in an early stage

• CTP releases for Visual Studio 2005 available

• Continue to release every 2-3 months with growing feature set Designer SDK

Model Data Access Model Validation UI and Designer Behavior Custom XML Serialization

Richer design experience for Domain Models, Notation and Mapping

Multiple Views and Multiple Models Designer Deployment Support

Page 69: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

6969

Microsoft Domain Specific Language Microsoft Domain Specific Language (DSL) Tools For Visual Studio 2005(DSL) Tools For Visual Studio 2005

• Generates executable designer based on description of the “Domain Specific Language” (DSL) used in the designer

• Generated Designer Is a complete usable tool (fully functional,

undo, persistence/XML file support… ) Is starting point of designer development

(SDK, artifact generation… )

Page 70: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

7070

Resources Resources

• Book Software Factories: Assembling Applications with Patterns, Models,

Frameworks, and Tools, Jack Greenfield, Keith Short, et al, ISBN 0-471-20284-3, Wiley Publishing Inc., 2004.

• Websites Software Factories

http://msdn.microsoft.com/architecture/softwarefactories DSL Tools HomepageDSL Tools Homepage

http://lab.msdn.microsoft.com/teamsystem/workshop/dsltools/ DSL Tools Community ForumDSL Tools Community Forum

http://forums.microsoft.com/msdn/ShowForum.aspx?http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=61ForumID=61

Visual Studio 2005 Team System http://msdn.microsoft.com/vstudio/teamsystem

Visual Studio Team System Workshop Domain-Specific Language (DSL) Tools

http://lab.msdn.microsoft.com/vs2005/teamsystem/workshop/

• Newsgroups Microsoft.private.whidbey.teamsystem.architect Microsoft.private.whidbey.teamsystem.architect.modeling

Page 71: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.

THANK YOUTHANK YOU

20052005 Microsoft PAKISTAN DEVELOPER CONFERENCEJune 13-15, 2005