demystifying domain specific languages software factories govind kanshi architect advisor microsoft...

97

Upload: joy-chapman

Post on 18-Jan-2018

215 views

Category:

Documents


0 download

DESCRIPTION

Agenda Modeling and Methods Industrializing Software Domain Specific Languages A Software Factory Schema MDA and UML Wrap Up

TRANSCRIPT

Page 1: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation
Page 2: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Demystifying Domain Demystifying Domain Specific languages & Specific languages & Software FactoriesSoftware Factories

Govind KanshiGovind KanshiArchitect AdvisorArchitect AdvisorMicrosoft CorporationMicrosoft Corporation

Page 3: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

AgendaAgendaModeling and MethodsModeling and MethodsIndustrializing SoftwareIndustrializing SoftwareDomain Specific LanguagesDomain Specific LanguagesA Software Factory SchemaA Software Factory SchemaMDA and UMLMDA and UMLWrap UpWrap Up

Page 4: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

AgendaAgendaModeling and MethodsModeling and MethodsIndustrializing SoftwareIndustrializing SoftwareDomain Specific LanguagesDomain Specific LanguagesA Software Factory SchemaA Software Factory SchemaMDA and UMLMDA and UMLWrap UpWrap Up

Page 5: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Questions We Hear…Questions We Hear…What types of systems can I build?What types of systems can I build?

What’s the architecture of each type?What’s the architecture of each type?How do I go from requirements to deployment?How do I go from requirements to deployment?

What artifacts do I need to build?What artifacts do I need to build?How are they related?How are they related?What are the key decisions that need to be made?What are the key decisions that need to be made?

Why are methodologies so abstract?Why are methodologies so abstract?Why can’t I get concrete guidance for my project?Why can’t I get concrete guidance for my project?

Why isn’t modeling more effective?Why isn’t modeling more effective?Why can’t tools generate production quality code?Why can’t tools generate production quality code?Why don’t models stay synchronized with code?Why don’t models stay synchronized with code?Why don’t models fit my file-oriented environment?Why don’t models fit my file-oriented environment?

Page 6: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

AgendaAgendaModeling and MethodsModeling and MethodsIndustrializing SoftwareIndustrializing SoftwareDomain Specific LanguagesDomain Specific LanguagesA Software Factory SchemaA Software Factory SchemaMDA and UMLMDA and UMLWrap UpWrap Up

Page 7: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Software Development as Software Development as CraftsmanshipCraftsmanship

Labor IntensiveLabor IntensiveGeneric ToolsGeneric ToolsGeneric ProcessesGeneric ProcessesOne off One off applicationsapplicationsHand stitched from Hand stitched from scratchscratchMinimal reuseMinimal reuse

Overruns, defects, security holes, project failures

Page 8: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

MassMassCustomizationCustomization

CraftsmanshipCraftsmanship

MassMassProductionProduction

ContinuousContinuousImprovementImprovement

IndustrializationIndustrializationPr

oduc

t cha

nge

Process changeStable

Stab

le

Dynamic

Dyna

mic

Page 9: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Exploiting CommonalityExploiting Commonality

We already exploit We already exploit economies of scale economies of scale to to automate automate productionproductionStamping out many Stamping out many identical identical copiescopies of a of a prototypeprototypeUsed to produce Used to produce CDs/DVDs CDs/DVDs Does nothing to help Does nothing to help developmentdevelopment

Page 10: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Exploiting CommonalityExploiting CommonalityWe can also exploit We can also exploit economies of scopeeconomies of scopeReuse Reuse designsdesigns & & componentscomponentsBuild many similar Build many similar but distinct but distinct prototypesprototypesKey is supporting Key is supporting variabilityvariability

Define only the unique pieces of each system

Page 11: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Software FactoriesSoftware Factories

Domain-specificDomain-specific processprocessDomain-specificDomain-specific toolstools & & languageslanguagesDomain-specificDomain-specific contentcontentAutomateAutomate rote and rote and menial tasksmenial tasks

General-purpose IDEs become domain-specific software factories

Page 12: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

What Is A Software Factory?What Is A Software Factory?

“ “A set of integrated tool, process and A set of integrated tool, process and content assets delivered to VS users in content assets delivered to VS users in context to accelerate life cycle tasks for a context to accelerate life cycle tasks for a specific type of software deliverable”specific type of software deliverable”Software Factories exploit innovations inSoftware Factories exploit innovations in

Software product linesSoftware product linesService oriented architecture and Service oriented architecture and orchestrationorchestrationModel driven developmentModel driven development

Page 13: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

ExamplesExamplesA set of assets for developing a User Interface Process, A set of assets for developing a User Interface Process, including:including:

The PAG UIP blockThe PAG UIP blockA DSL based UIP designerA DSL based UIP designerA recipe that adds a UIP project to an existing solution from a A recipe that adds a UIP project to an existing solution from a project templateproject templateHelp and documentation based process guidance for building Help and documentation based process guidance for building User Interface ProcessesUser Interface Processes

A set of assets spanning the entire life cycle for B2C extranet A set of assets spanning the entire life cycle for B2C extranet ecommerce systems for small to medium sized businesses, ecommerce systems for small to medium sized businesses, includingincluding

Feature models of requirementsFeature models of requirementsA baseline architectureA baseline architectureA set of assemblies containing prebuilt components for all major A set of assemblies containing prebuilt components for all major subsystemssubsystemsA tailored development processA tailored development processA configurable deployment topologyA configurable deployment topologyA set of test cases and data setsA set of test cases and data setsA set of build scriptsA set of build scriptsDSL based tools for development and deployment tasksDSL based tools for development and deployment tasksRecipes that create the initial solution, and then build out project Recipes that create the initial solution, and then build out project clusters for major components on demandclusters for major components on demand

Page 14: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

AgendaAgendaModeling and MethodsModeling and MethodsIndustrializing SoftwareIndustrializing SoftwareComplexity in developing softwareComplexity in developing softwareUsing Abstraction to Reduce ComplexityA Software Factory SchemaA Software Factory SchemaMDA and UMLMDA and UMLWrap UpWrap Up

Page 15: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Automate business processesAutomate business processesValue chains with partnersValue chains with partnersCustomer and supplier self service Customer and supplier self service Improve ROI of ITImprove ROI of ITLower operating costsLower operating costsCut time to marketCut time to market

New Business RequirementsNew Business Requirements

Page 16: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

New Application New Application ArchitectureArchitectureAutomate business processesAutomate business processes

Improve ROI of ITImprove ROI of ITLower operating costsLower operating costsCut time to marketCut time to marketValue chains with partnersValue chains with partnersCustomer and supplier self serviceCustomer and supplier self serviceService oriented architectureService oriented architecture

Web Services, messaging, contractsWeb Services, messaging, contractsSecuritySecurityCaching and state managementCaching and state managementDeployment policies & constraintsDeployment policies & constraintsHeterogeneous platformsHeterogeneous platforms

Page 17: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Evolving Platform TechnologyEvolving Platform TechnologyAutomate business processesAutomate business processesImprove ROI of ITImprove ROI of ITLower operating costsLower operating costsCut time to marketCut time to marketValue chains with partnersValue chains with partnersCustomer and supplier self serviceCustomer and supplier self serviceService oriented architectureService oriented architectureMessaging and protocolsMessaging and protocolsSecuritySecurityCaching and state managementCaching and state managementDeployment policies & constraintsDeployment policies & constraintsHeterogeneous platformsHeterogeneous platforms

Application Servers and standardsApplication Servers and standardsSchemas and databasesSchemas and databasesCode and attributesCode and attributesConfiguration filesConfiguration filesProject structuresProject structuresPhysical server configurationsPhysical server configurations

Page 18: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

ComplexityComplexityAutomate business processesAutomate business processesValue chains with partnersValue chains with partnersCustomer and supplier self service Customer and supplier self service Improve ROI of ITImprove ROI of ITLower operating costsLower operating costsCut time to marketCut time to marketService oriented architectureService oriented architectureWeb Services, messaging, contractsWeb Services, messaging, contractsSecuritySecurityCaching and state managementCaching and state managementDeployment policies & constraintsDeployment policies & constraintsHeterogeneous platformsHeterogeneous platformsApplication servers & standardsApplication servers & standardsSchemas and databasesSchemas and databasesCode and attributesCode and attributesConfiguration filesConfiguration filesProject structuresProject structuresPhysical server configurationsPhysical server configurations

?

Page 19: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Where Does Complexity Arise?Where Does Complexity Arise?

?package com.microsoftpearlcircle.auction.auctionmanager.business.auctionmanager;import java.rmi.RemoteException;import java.util.Vector;

High Level Concepts

«entity»Auction

+ categoryUid : String+ creditCardAccount : String+ creditCardExpiration : Long+ creditCardName : String+ creditCardType : String+ endTime : Long+ itemUid : String+ minimumBidIncrement : Float+ sellerUid : String+ startingPrice : Float+ startTime : Long+ status : String+ timezoneUid : String+ uid : String

+ setValues ( )+ getValues ( )

«entity»Bid

+ amount : Float+ auctionUid : String+ buyerUid : String+ cancelExplanation : String+ date : Long+ status : String+ uid : String

«entity»Seller

«entity»User

+ address : String+ city : String+ country : String+ email : String+ groupId : String+ password : String+ secretNumber : Integer+ state : String+ status : String+ uid : String+ userId : String+ zip : String

«entity»Buyer

«entity»Credit Card

+ accountNumber : String+ cardType : String+ expirationDate : Long+ nameOnCard : String+ uid : String+ userUid : String+ setValues ( )+ getValues ( )

1 1...

0..11

1..*

«derived»

0..1

1

Low-level Implementation languages

Page 20: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

AgendaAgendaModeling and MethodsModeling and MethodsIndustrializing SoftwareIndustrializing SoftwareComplexity in developing softwareComplexity in developing softwareUsing Abstraction to Reduce ComplexityA Software Factory SchemaA Software Factory SchemaMDA and UMLMDA and UMLWrap UpWrap Up

Page 21: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Abstraction Reduces Abstraction Reduces ComplexityComplexity

Assembler, Pcode, Assembler, Pcode, CLR ILCLR IL

Bytecode or Bytecode or machine machine languageslanguages

General Purpose General Purpose AbstractionsAbstractionsC#, Java, etcC#, Java, etc

Domain Specific Domain Specific AbstractionsAbstractions

Page 22: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Frameworks Reduce Frameworks Reduce Translation ComplexityTranslation Complexity

Assembler, Pcode, Assembler, Pcode, CLR ILCLR IL

Bytecode or Bytecode or machine machine languageslanguages

General Purpose General Purpose AbstractionsAbstractionsC#, Java, etcC#, Java, etc

Domain Specific Domain Specific AbstractionsAbstractionsFrameworksFrameworks

E.g. ASP.NetE.g. ASP.NetDomain Specific Domain Specific FrameworksFrameworks

Page 23: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Domain-specific languageDomain-specific languageA language specific to a domainA language specific to a domain

horizontal – e.g.:horizontal – e.g.: * GUI* GUI * web* web * business logic* business logic * database * database * deployment* deployment

vertical – e.g.:vertical – e.g.: * telephone bills* telephone bills * insurance* insurance * plane tickets* plane tickets * hardware construction* hardware construction

PictorialPictorialflowchartsflowchartsUMLUML

TextualTextualC#, JavaC#, JavaOCLOCL

Page 24: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Domain Specific Modeling Domain Specific Modeling LanguageLanguage

Domain Specific AbstractionsDomain Specific AbstractionsNarrow ScopeNarrow ScopeGraphicalGraphicalHighly ExpressiveHighly ExpressiveCoarse-grained abstractionsCoarse-grained abstractionsMay be translated into May be translated into

General purpose programming languagesGeneral purpose programming languagesSpecific framework completionSpecific framework completionOther modeling languagesOther modeling languages

Page 25: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

C(x) h C(x) t 2m xih = –

Languages : Modelling and Languages : Modelling and ProgrammingProgramming

Textual Pictorial

Descriptive

Prescriptiveclass Magnox : NuclearPowerStation { public void dropRods ()

jo biscuits 24 green

pat cakes 32 pink

Employeename

addresspromote

Jobdescription

payassign

0..*

a>b && c==d

call

CallRecord

call length

base rate: £/s

store

<CallRecord> <caller><number>07713248</number>

Page 26: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Telephone billing schemeTelephone billing scheme

call

calendarmonth

CallRecord

call length

base rate: £/s

call length

friend discount rate: £/sstore

friends calls

other calls

-

bill

billing period

store

+-

Page 27: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Understanding Web Understanding Web ServicesServices

Activities <-> ServicesActivities <-> ServicesWeb servicesWeb servicesMessagesMessagesContractsContractsSequencesSequencesSecuritySecurityReuseReuseWire-level protocolsWire-level protocolsetcetc

Page 28: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Where Does Complexity Where Does Complexity Arise?Arise?

?package com.microsoftpearlcircle.auction.auctionmanager.business.auctionmanager;import java.rmi.RemoteException;import java.util.Vector;

High Level ConceptsActivitiesMessagesSecurityReuseServicesContracts

«entity»Auction

+ categoryUid : String+ creditCardAccount : String+ creditCardExpiration : Long+ creditCardName : String+ creditCardType : String+ endTime : Long+ itemUid : String+ minimumBidIncrement : Float+ sellerUid : String+ startingPrice : Float+ startTime : Long+ status : String+ timezoneUid : String+ uid : String

+ setValues ( )+ getValues ( )

«entity»Bid

+ amount : Float+ auctionUid : String+ buyerUid : String+ cancelExplanation : String+ date : Long+ status : String+ uid : String

«entity»Seller

«entity»User

+ address : String+ city : String+ country : String+ email : String+ groupId : String+ password : String+ secretNumber : Integer+ state : String+ status : String+ uid : String+ userId : String+ zip : String

«entity»Buyer

«entity»Credit Card

+ accountNumber : String+ cardType : String+ expirationDate : Long+ nameOnCard : String+ uid : String+ userUid : String+ setValues ( )+ getValues ( )

1 1...

0..11

1..*

«derived»

0..1

1

Low-level Implementation languages

Page 29: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

.asmx files .asmx code behinds source code Statements and attributes

XML ConfigurationFiles and schemas(e.g. WSDL files)

Project Files and templates

Deployment PoliciesAnd Packages

?«entity»Auction

+ categoryUid : String+ creditCardAccount : String+ creditCardExpiration : Long+ creditCardName : String+ creditCardType : String+ endTime : Long+ itemUid : String+ minimumBidIncrement : Float+ sellerUid : String+ startingPrice : Float+ startTime : Long+ status : String+ timezoneUid : String+ uid : String

+ setValues ( )+ getValues ( )

«entity»Bid

+ amount : Float+ auctionUid : String+ buyerUid : String+ cancelExplanation : String+ date : Long+ status : String+ uid : String

«entity»Seller

«entity»User

+ address : String+ city : String+ country : String+ email : String+ groupId : String+ password : String+ secretNumber : Integer+ state : String+ status : String+ uid : String+ userId : String+ zip : String

«entity»Buyer

«entity»Credit Card

+ accountNumber : String+ cardType : String+ expirationDate : Long+ nameOnCard : String+ uid : String+ userUid : String+ setValues ( )+ getValues ( )

1 1...

0..11

1..*

«derived»

0..1

1

Scattered Concepts …Scattered Concepts …

Page 30: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

.asmx files .asmx code behinds source code Statements and attributes

XML ConfigurationFiles and schemas(e.g. WSDL files)

Project Files and templates

Deployment PoliciesAnd Packages

……Replaced By A Holistic Replaced By A Holistic ViewView

Web Service Interaction DSL

Page 31: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Need A Designer Need A Designer InfrastructureInfrastructure

For a specific aspect of overall For a specific aspect of overall developmentdevelopment

Define a metamodel for the Define a metamodel for the abstractionsabstractionsDefine a graphical notationDefine a graphical notationDefine a synchronization engine Define a synchronization engine

Page 32: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

ComplexityComplexity

??Automate business processesAutomate business processesValue chains with partnersValue chains with partnersCustomer and supplier self service Customer and supplier self service Improve ROI of ITImprove ROI of ITLower operating costsLower operating costsCut time to marketCut time to marketService oriented architectureService oriented architectureWeb Services, messaging, contractsWeb Services, messaging, contractsSecuritySecurityCaching and state managementCaching and state managementDeployment policies & constraintsDeployment policies & constraintsHeterogeneous platformsHeterogeneous platformsApplication servers & standardsApplication servers & standardsSchemas and databasesSchemas and databasesCode and attributesCode and attributesConfiguration filesConfiguration filesProject structuresProject structuresPhysical server configurationsPhysical server configurations

Page 33: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Simplify Using DSLsSimplify Using DSLsAssessAssess DesigDesig

nnImplemenImplementt

PlanPlan RunRun

BusinessBusiness

ITIT

Strategic Strategic ObjectivesObjectives

TechnologyTechnologyArchitectureArchitecture

Business Processes Business Processes and Entitiesand Entities

Logical Logical Data CenterData Center

Physical Physical servers servers and segmentsand segments

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

XML, Database, Classes,XML, Database, Classes,CodeCode

Manual ProceduresManual Procedures

Each work Each work product can product can be a be a separate separate modeling modeling languagelanguage

Mappings are Mappings are defined defined between between modeling modeling languageslanguages

Page 34: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

What’s Inside A Viewpoint?What’s Inside A Viewpoint?AssessAssess DesigDesig

nnImplemenImplementt

PlanPlan RunRun

BusinessBusiness

ITIT

Strategic Strategic ObjectivesObjectives

TechnologyTechnologyArchitectureArchitecture

Business Processes Business Processes and Entitiesand Entities

Logical Logical Data CenterData Center

Physical Physical servers servers and segmentsand segments

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

XML, Database, Classes,XML, Database, Classes,CodeCode

Manual ProceduresManual Procedures

DSLsDSLsPatternsPatternsProcessesProcessesFrameworksFrameworksComponentsComponentsAspectsAspectsTransformsTransformsConstraintsConstraints

Page 35: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

What’s Inside A Viewpoint?What’s Inside A Viewpoint?AssessAssess DesigDesig

nnImplemenImplementt

PlanPlan RunRun

BusinessBusiness

ITIT

Strategic Strategic ObjectivesObjectives

TechnologyTechnologyArchitectureArchitecture

Business Processes Business Processes and Entitiesand Entities

Logical Logical Data CenterData Center

Physical Physical servers servers and segmentsand segments

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

XML, Database, Classes,XML, Database, Classes,CodeCode

Manual ProceduresManual Procedures

Page 36: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

AgendaAgenda

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce ComplexityUsing Abstraction to Reduce ComplexityDomain Specific Modeling Languages and Domain Specific Modeling Languages and PatternsPatternsScenario 1 - Web Services & Design for Scenario 1 - Web Services & Design for OperationsOperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Studio Microsoft Strategy and Tools for Visual Studio WhidbeyWhidbey

Page 37: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Web Service design & operationsWeb Service design & operations

AssessAssess DesigDesignn

ImplemenImplementt

PlanPlan RunRun

BusinessBusiness

ITIT

Strategic Strategic ObjectivesObjectives

TechnologyTechnologyArchitectureArchitecture

Business Processes Business Processes and Entitiesand Entities

Logical Logical Data CenterData Center

Physical Physical servers servers and segmentsand segments

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

XML, Database, Classes,XML, Database, Classes,CodeCode

Manual ProceduresManual Procedures

Page 38: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Dynamic Systems Initiative Dynamic Systems Initiative (DSI)(DSI)

Network Topology& Operating Systems

Hardware

SystemDefinition

ModelApplication

Hosts

Applications

Page 39: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Whidbey Solutions…Whidbey Solutions…

A logical data center designer

An application designer

ApplicationHosts

Applications

A system hosting designer

SystemDefinition

Model

Page 40: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

A DSL In Use TodayA DSL In Use Today

Page 41: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation
Page 42: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation
Page 43: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation
Page 44: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation
Page 45: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Web Service Interaction Web Service Interaction PatternsPatterns

Service InterfaceService InterfaceGatewayGatewayFaçadeFaçadeLayered ArchitectureLayered Architecture

AspectsAspectsTransactionsTransactionsSecuritySecurity

TransformationsTransformationsValidate against deployment infrastructureValidate against deployment infrastructureTransform into implementation artifactsTransform into implementation artifacts

Page 46: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Logical System ArchitectureLogical System ArchitectureLogical System Architecture PatternsLogical System Architecture Patterns

““Hardened IIS” – metabase settingsHardened IIS” – metabase settingsMSA PatternsMSA Patterns

IDC, EDCIDC, EDCTiered Architecture PatternsTiered Architecture Patterns

AspectsAspectsFirewall SettingsFirewall SettingsProtocol SettingsProtocol Settings

TransformationsTransformationsValidate against Web service application designValidate against Web service application designTransform into implementation SDMTransform into implementation SDM

Page 47: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Applying A Service Façade Applying A Service Façade PatternPattern

Policy Policy ManagementManagement

Customer Customer ManagementManagement

Customer Customer Self-ServiceSelf-Service

Service Facade Pattern

FacadeMessages

Service

Selected Messages

Project StructuresReferencesDefault XSD schemasSecurity PolicyAccess PolicyPass-thru Logic & Filters

Customer Customer Mgmt Mgmt

FacadeFacade

Page 48: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Aspect Weaving – Instrumentation Aspect Weaving – Instrumentation

Policy Policy ManagementManagement

Customer Customer ManagementManagement

Customer Customer Self-ServiceSelf-Service

Instrumentation Aspect

FrameworkCall Structure

Pointcut

Pointcut

Pointcut

Pointcut

Pointcut

Pointcut

Code

Aspect

Aspect

Aspect

Page 49: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Designing Business processDesigning Business process

AssessAssess DesigDesignn

ImplemenImplementt

PlanPlan RunRun

BusinessBusiness

ITIT

Strategic Strategic ObjectivesObjectives

TechnologyTechnologyArchitectureArchitecture

Business Processes Business Processes and Entitiesand Entities

Logical Logical Data CenterData Center

Physical Physical servers servers and segmentsand segments

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

XML, Database, Classes,XML, Database, Classes,CodeCode

Manual ProceduresManual Procedures

Page 50: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Invoice To PaymentInvoice To PaymentSeller OrgBuyer Org

Buyer’sFinancial ServicesProvider

Accounts PayableSupplier

B3.1 Receive, Process, &File Invoice

B3.2 Process 3-Way Match(PO, Receipt, Invoice)

Invoice (Original)/Debit Memo

Invoice

PO info

Procurement

Purchasing

Logistics and Distribution

WarehouseManagement

Receiving

B3.8 Remit Payment atSettlement Period

AP Clerk POV

B3.3 2-Way Match(Receipt, Invoice)

B3.15 Update VendorMaster (including set-up

customers as vendors forrefunds)

Vendor MasterData Store

Vendorinitiatedbillingprofile

changesB3.13 Receive Vendor

Profile Changes

B3.5 Reject/Dispute Invoice

Invoices (MatchException or

Out ofTolerance)

Out of ToleranceNotification

Remittance Advice & Payment (hardcopy)

B3.4 Invoice Approval

Invoice (&Image)

Data Store

Employee DataStoreApprover(s)

Project Accounting

Project Management

Business Intelligence

Business Intelligence

Manage Tax Compliance

Advisory

Human Resources

Time & ExpenseManagement

B3.7 Pending Invoices

Invoices(blocked -pendingreceipt)

Invoice (Non POtype (e.g. card,

direct order, etc))

Bank

B3.14 AuthorizeVendor Profile Changes

Invoices(cleared)

Invoices (w/inTolerance Match)

B3.6 Contact Supplier &Discuss Dispute/Rejection

Invoices(disputed, rejected)

B3.9 Respond to PaymentInquiry Remittance

Deposit

Vendorprofiledata

Acceptedprofile

changes

EmployeedataEmployee

data

Remittance Advice & Payment Release (electronic)

Vendor updateacknowledgement(approved, denied)

AgreementData Store

Agreement/Contract(negotiated terms, etc)

Vendorchanges

Approvals,rejections

Approval notifications

Requester orBuyer

(whoever owns txn)

Invoice (service based)

PO Change(out of tolerance

accepted)

Notification(rejected)

Invoices (MatchException or

Out ofTolerance)

Invoices (approved)

ReceiptNotice

Receipt Info

Invoice (w/inTolerance Match)

ReceiptedInvoices

ReceiptedInvoices

B3.10 Receive and reviewSummary Statement (card

based programs only)

Monthly Summary Invoice (card based programs only)Payment (to bank)

B3.11 Match SummaryStatement to card receipts/

invoicesstatement

Chargeback (Summary Invoice errors)

B3.12 Authorize/RejectPayment (by line item)

Card based receipts/invoices

statement

Employee

Billing Inquiry and ResponseNegotiation

Payment Inquiry/Invoice Status Response

Invoice Status Response

Financial Management

Electronic FundsProcessing

General Ledger

Capital AssetManagement

Treasury

Invoice,Payment JEs

Capital Goods Line Item Details

Cash DisbursementNeeds

Invoice Details

Remittance Advice & Payment (electronic)

Project Related Invoice Line Items

Tax Liability

Supplier Performance Data,Requester/Buyer

Performance Data,Financial Performance

Data,

Expense ReportExpense Reimbursement

Request

Payment (expense reimbursement)

Notification(accepted,rejected)

Refundchequeor EFT

Accounts Receivable

Refund payment

Credit memo

B3.16 Perform Prepayments

Prepayment

Credit Memo

Initial Prepayment

Dunning Letter

Example KPI’s:% Match (2-way)% Match (3-way)Invoice aging

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

Manage Tax Compliance

FaxPhoneSnail MailE-MailEDI VANMarketPlace Exchange

Buyer Org Perspective: Requisition to PaymentB3. Invoice to Payment (AP)

Acronyms: AP: Accounts Payable, JEs: Journal EntriesPO: Purchase Order, KPI: Key Performance Indicator

Preconditions: A purchase order has been created and sent to the Seller Organization.

A supplier invoice usually triggers the Invoice to Payment process. In process step B3.1, a supplier submits an invoice to the buyer organization, usually after they’ve picked, packed, and shipped product to the buyer (although pre-payments sometimes occur). The invoice is reviewed for accuracy and entered into a payables system for matching purposes. This can also trigger the flow of information to Capital Asset management tracking for depreciationpurposes, Project Accounting for project financials tracking, Tax for compliance reporting, and the General Ledger to account for liability owed. In process step B3.2, the buying organization’s Accounts Payable group/person then canperform a 3-way match between the original PO, the materials Receipt, and the Invoice. Process step B3.3 illustrates how some alternative purchasing models can be accommodated, such as direct orders, employee expense reportsubmission (which requires payment to the employee) or procurement card (like a credit card) based purchases, where a the requisition and PO is entirely bypassed. Process B3.4 allows for these alternative 3-way matching scenarios, as the invoice is approved and verified before payment is made to the vendor. In the event of match exception or out of tolerance scenarios (where amount invoiced is considerably different than expected), Accounts Payable notifiesthe requester of over tolerance (which could trigger a PO change) or rejects (disputes) the invoice (B3.5). In process step B3.6, Accounts Payable (or the Buyer) contacts the Supplier to resolve the rejected invoice. If matching andtolerance proceeds as planned, in process step B3.7 the invoice could be held in a pending state until a settlement period has been reached, optimizing working capital. Payment is then remitted to the supplier either electronically (viaa banking institution) or manually via a cheque-run (step B3.8). The invoice to payment process asserts a tight audit trail, which enables AP to know everything about the invoice and payment, supporting the ability to investigate andrespond to supplier payment issues (process B3.9). As mentioned above with the non-PO purchasing models, process steps B3.10 - B3.12 provide further details around procurement card purchasing verification and paymentprocessing since it evokes a different payment model - to the bank as opposed to the supplier (since payment has already been made). Finally, in steps B3.13 - B3.15 related vendor data maintenance processes are performed, whichplay an important role in ensuring correct and proper payment to suppliers, as well as avoiding late charges resulting from incorrect payments (locations, addresses, bank acct #s, etc).

Core Function/Module

LogicalData Store

Process

Inter-face

RelatedFunction/Module

Productoverlay

Data Flow

CollaborativeB2B Data Flow

B2B Data Flow

Key

start

Page 51: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

How Do We Describe BPs?How Do We Describe BPs?

Business Process DSLBusiness Process DSLActivitiesActivitiesBusiness EventBusiness EventDependenciesDependenciesBusiness EntitiesBusiness EntitiesDocumentsDocumentsEtc.Etc.

Page 52: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Patterns And Transforms Patterns And Transforms

Process PatternsProcess PatternsUser ProcessUser ProcessScheduled ProcessScheduled ProcessCase ProcessCase ProcessRules ProcessRules Process

TransformationsTransformationsTransform into Web service Transform into Web service collaborationscollaborations

Page 53: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Build One Business Process Build One Business Process DSL?DSL?

AssessAssess DesigDesignn

ImplemenImplementt

PlanPlan RunRun

BusinessBusiness

ITIT

Strategic Strategic ObjectivesObjectives

TechnologyTechnologyArchitectureArchitecture

Business Processes Business Processes and Entitiesand Entities

Logical Logical Data CenterData Center

Physical Physical servers servers and segmentsand segments

Services, Messages, Services, Messages, Contracts, SchedulesContracts, Schedules

XML, Database, Classes,XML, Database, Classes,CodeCode

Manual ProceduresManual Procedures

Huge Variation

Huge Variation

Few PlatformsFew Platforms

Page 54: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Building Applications With DSLsBuilding Applications With DSLs

Choose a specific aspect of overall Choose a specific aspect of overall developmentdevelopmentDefine a metamodel for the Define a metamodel for the abstractionsabstractions

OR OR extend an existing oneextend an existing oneDefine a graphical notation Define a graphical notation Define a synchronization engine Define a synchronization engine Define PatternsDefine PatternsDefine AspectsDefine Aspects

Page 55: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

AgendaAgenda

Complexity in Connected SystemsComplexity in Connected SystemsUsing Abstraction to Reduce ComplexityUsing Abstraction to Reduce ComplexityDomain Specific Modeling Languages and Domain Specific Modeling Languages and PatternsPatternsScenario 1 - Web Services & Design for Scenario 1 - Web Services & Design for OperationsOperationsScenario 2 – Implementing Business Scenario 2 – Implementing Business ProcessesProcessesMicrosoft Strategy and Tools for Visual Studio Microsoft Strategy and Tools for Visual Studio WhidbeyWhidbey

Page 56: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Making Use Of MetadataMaking Use Of Metadata

Metadata collected in DSLs can be Metadata collected in DSLs can be made available across the life made available across the life cyclecycle

Source control systemsSource control systemsDebuggersDebuggersTesting ToolsTesting ToolsCompilers and language editorsCompilers and language editors

Page 57: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Enterprise Design ToolsEnterprise Design Tools

Build an initial set of model-driven development tools supporting DSLsBuild an initial set of model-driven development tools supporting DSLsFocused on specific development tasksFocused on specific development tasksWith hi-fidelity, continuously synchronized mappings to code or other modelsWith hi-fidelity, continuously synchronized mappings to code or other models

Expand and integrate model data throughout life cycle toolsExpand and integrate model data throughout life cycle toolsProductize and promote underlying tool-building frameworks and toolsProductize and promote underlying tool-building frameworks and tools

Goal: Simplify design and deployment of SOA’s

Page 58: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

DSL’s Supported in WhidbeyDSL’s Supported in WhidbeyRich support for designing and constructing Rich support for designing and constructing connected applications from Web servicesconnected applications from Web servicesDesigning WS for operational deploymentDesigning WS for operational deployment

Logical infrastructure requirements considered early – inform Logical infrastructure requirements considered early – inform and constrain developersand constrain developersVerify application settings against logical infrastructureVerify application settings against logical infrastructure

Page 59: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Standards: UML and MDAStandards: UML and MDAUML has been very successful as a source of UML has been very successful as a source of vocabulary and diagrammatic conventions vocabulary and diagrammatic conventions for OO designfor OO designUML specification is overly complex, difficult UML specification is overly complex, difficult to understand and full of ambiguities and to understand and full of ambiguities and inconsistenciesinconsistenciesUML (as specified) is “one-size-fits-all” – UML (as specified) is “one-size-fits-all” – difficult to extend and not a good foundation difficult to extend and not a good foundation for domain specific languagesfor domain specific languagesUML does not map effectively onto CLR UML does not map effectively onto CLR without significant alterationswithout significant alterations

Properties, fields, indexersProperties, fields, indexersType systemType systemCLR attributesCLR attributes

Page 60: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Standards: UML and MDAStandards: UML and MDA

MDA refers specifically to model-driven MDA refers specifically to model-driven development based on the use of OMG’s development based on the use of OMG’s modeling technologies - UML and MOFmodeling technologies - UML and MOFExtending the reach of MDA to other areas is Extending the reach of MDA to other areas is difficult difficult MDA does not address broader issues MDA does not address broader issues involved in using integrated models, involved in using integrated models, patterns, frameworks, and tools patterns, frameworks, and tools synergistically to support software product synergistically to support software product lineslines

Page 61: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

ReviewReview

Modeling languages can help reduce Modeling languages can help reduce complexitycomplexity

Domain-specific abstractionsDomain-specific abstractionsHolistic view of scattered conceptsHolistic view of scattered concepts

Microsoft is working to improve Web Microsoft is working to improve Web service design and deployment service design and deployment scenariosscenariosImplementing DSLs can be made Implementing DSLs can be made effective with the right underlying effective with the right underlying engineengineTool Extensibility is very importantTool Extensibility is very important

Page 62: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

A Design DSL In Use TodayA Design DSL In Use Today

Page 63: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

E.g., Issues in web service E.g., Issues in web service devdevThe concept of the web service is The concept of the web service is

spread outspread outDeveloper must keep files in syncDeveloper must keep files in sync

Refactoring engines ignorant of web Refactoring engines ignorant of web servicesservices

Cannot process files like schemas Cannot process files like schemas and .config filesand .config files

Debugging, intellisense, editors all Debugging, intellisense, editors all ignorant of web service conceptsignorant of web service conceptsSource control, work items, tests all Source control, work items, tests all ignorant of Web Service conceptsignorant of Web Service concepts

Page 64: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

.asmx files .asmx code behind Source code .config siles and schemas(e.g. WSDL files)

Projects and templates

Deployment policiesand packages

?

Scattered Concepts …Scattered Concepts …

Page 65: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

.asmx files .asmx code behind source code .config files andschemas(e.g. WSDL files)

Projects and templates

Deployment policiesand packages

……a Holistic Viewa Holistic View

Web Service Connectivity DSL

Page 66: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

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

System DesignSystem Design

Page 67: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Web Service Connectivity DSLWeb Service Connectivity DSL

Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints

XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code

Physical Physical servers & servers & segmentssegments

DeploymentDeploymentUnitsUnits

Abstraction/Refinement

packaged into deployed on

Page 68: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Web Service DesignerWeb Service Designer

Page 69: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

IT Operations doesn’t IT Operations doesn’t understand application understand application requirementsrequirements

DevelopmenDevelopmentt IT OperationsIT Operations

Developers Developers don’t don’t understand understand operations operations policypolicy

Plan/DesignPlan/Design DevelopmentDevelopment TestingTesting DeploymentDeployment OperationsOperations

Page 70: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Design for OperationsDesign for Operations

Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints

XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code

Logical Logical Data CenterData Center

Physical Physical servers & servers & segmentssegments

DeploymentDeploymentUnitsUnits

Abstraction/Refinement

Abstraction/Refinement

Constraints

packaged into deployed on

Page 71: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

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 Data Center Logical Data Center Host SoftwareHost Software

Abstraction/Abstraction/refinementrefinement

Data Center DesignData Center Design

Page 72: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Providing TraceabilityProviding TraceabilityApplications

ApplicationHosting

Logical Machines & Network Topology

Hardware

SystemDefinition

Model

Page 73: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Constraining design to deploymentConstraining design to deployment

Page 74: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Code VisualizationCode Visualization

Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints

XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code

Logical Logical Data CenterData Center

Physical Physical servers & servers & segmentssegments

DeploymentDeploymentUnitsUnits

Abstraction/Refinement

Abstraction/Refinement

Constraints

packaged into deployed on

Page 75: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Class designerClass designer

Page 76: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

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 NavigationUser Interface Navigation

Page 77: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

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,

EndpointsLogicalBusiness 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 EntitiesBusiness Entities

Page 78: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

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 79: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

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 ImplementationBusiness Process Implementation

Page 80: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

AgendaAgendaModeling and MethodsModeling and MethodsIndustrializing SoftwareIndustrializing SoftwareDomain Specific LanguagesDomain Specific LanguagesA Software Factory SchemaA Software Factory SchemaMDA and UMLMDA and UMLWrap UpWrap Up

Page 81: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

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

Software Factory SchemaSoftware Factory Schema

Page 82: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

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 recipe fora family ofapplications

Software Factory SchemaSoftware Factory Schema

ModelsModelsPatternsPatternsBlocksBlocksFrameworkFrameworkssComponentComponentssProcessProcessTest CasesTest CasesToolsTools

Page 83: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

DB Definitions

XML, Projects,Configs, Classes,

Code

Physical Servers and Network

Segments

Deployment Units

Services, Messages, Protocols,

EndpointsLogical Business Entities

and 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

A Software Factory SchemaA Software Factory Schema

Page 84: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

DB Definitions

XML, Projects,Configs, Classes,

Code

Physical Servers and Network

Segments

Deployment Units

Services, Messages, Protocols,

EndpointsLogical Business Entities

and Operations

BizTalkSchedules & Rules

Implementable Business Processes and Entities

User InterfaceProcess

Manual Processes

Logical Data Center Host Software

A Software Factory SchemaA Software Factory SchemaSupported in Visual Studio 2005 Team Architect

Business Processes and Entities

Business Capabilities

Page 85: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

AgendaAgendaModeling and MethodsModeling and MethodsIndustrializing SoftwareIndustrializing SoftwareDomain Specific LanguagesDomain Specific LanguagesA Software Factory SchemaA Software Factory SchemaMDA and UMLMDA and UMLWrap UpWrap Up

Page 86: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

UML and DSLsUML and DSLsSimple QuestionsSimple Questions

How many diagrams exist in UML 2How many diagrams exist in UML 2How many do we end up usingHow many do we end up usingHow do we use it (sketch,compiler,language)How do we use it (sketch,compiler,language)

According to MF(Steve cook) 99% people use it as According to MF(Steve cook) 99% people use it as sketchsketch

Can one trace across one diagram to another Can one trace across one diagram to another with easewith easeCan one model(diagram) auto synchronize with Can one model(diagram) auto synchronize with anotheranotherCan model capture the patterns/tools/patterns for Can model capture the patterns/tools/patterns for specific situationspecific situationCan we use UML for GUI design, compilers, Can we use UML for GUI design, compilers, embedded systemsembedded systems

Page 87: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

UML Is Great For UML Is Great For Sketching…Sketching…Set of popular and successful notationsSet of popular and successful notations

5 of 13 UML 2 diagrams widely recognized5 of 13 UML 2 diagrams widely recognizedDeveloped to unify competing notationsDeveloped to unify competing notations

Booch, Rumbaugh, Jacobson, and othersBooch, Rumbaugh, Jacobson, and othersCreated for Object Oriented Analysis & Created for Object Oriented Analysis & DesignDesign

Where models are a form of documentationWhere models are a form of documentationRepository for modeling conceptsRepository for modeling concepts

Contains many useful common abstractionsContains many useful common abstractionsBasis for many domain modeling effortsBasis for many domain modeling efforts

From choreographies (RosettaNet) to Health Care From choreographies (RosettaNet) to Health Care (HL7)(HL7)

Page 88: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

……But Not For DevelopmentBut Not For DevelopmentNot designed to support automationNot designed to support automationAddresses only a few domains wellAddresses only a few domains well

Class, interaction, use case, process, Class, interaction, use case, process, statesstates

Hard to extend to additional domainsHard to extend to additional domainsStereotypes and tags do not carry Stereotypes and tags do not carry behaviorbehavior

Page 89: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

DSL: UML and MoreDSL: UML and MoreUse generic UML for documentationUse generic UML for documentationUse DSLs for model driven developmentUse DSLs for model driven developmentReduce cost and effort of building DSLsReduce cost and effort of building DSLsUse UML notational styles for DSLsUse UML notational styles for DSLsTransform UML profile definitions into DSLsTransform UML profile definitions into DSLsTransform UML profile based models into Transform UML profile based models into corresponding DSL based modelscorresponding DSL based models

Page 90: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

What About MDA?What About MDA?A way to build applications A way to build applications in UMLin UML using using

A platform-independent A platform-independent UMLUML model (PIM) model (PIM)Many platform-specific Many platform-specific UMLUML models (PSM) models (PSM)

Its primary goal is Its primary goal is platform independenceplatform independenceReal needs areReal needs are interoperability interoperability and and productivityproductivity

What doesn’t MDA address?What doesn’t MDA address?How to make models How to make models precise enough toprecise enough to compilecompileWhat to modelWhat to model for given type of system for given type of systemHow to How to integrateintegrate models with requirements, models with requirements, architecture, frameworks, patterns and codearchitecture, frameworks, patterns and codeHow to fit models into theHow to fit models into the development process development processHow to use models across theHow to use models across the life cycle life cycle

Page 91: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

AgendaAgendaModeling and MethodsModeling and MethodsIndustrializing SoftwareIndustrializing SoftwareSeparating ConcernsSeparating ConcernsDomain Specific LanguagesDomain Specific LanguagesA Software Factory SchemaA Software Factory SchemaMDA and UMLMDA and UMLWrap UpWrap Up

Page 92: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Support For Building Support For Building FactoriesFactories

GuidanceGuidance for building Software Factories for building Software FactoriesWith Visual Studio 2005 Team SystemWith Visual Studio 2005 Team System

IntegrationIntegration with Visual Studio 2005 with Visual Studio 2005Methodology Templates, Dynamic HelpMethodology Templates, Dynamic Help

Visual Visual toolstools for building Software Factories for building Software FactoriesDSL DesignerDSL Designer, Feature Modeler, Schema , Feature Modeler, Schema Designer, Template Designer, Guidance Package Designer, Template Designer, Guidance Package Generator, Process DesignerGenerator, Process Designer

Possibilities we are considering

Page 93: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Support For Using Support For Using FactoriesFactories

GuidanceGuidance for using Software Factories for using Software FactoriesIntegrationIntegration with MSF Agile and Formal with MSF Agile and Formal

Guidance tuned for specific types of systemsGuidance tuned for specific types of systemsOrganized according to viewpointOrganized according to viewpoint

Visual Visual toolstools for using Software Factories for using Software FactoriesDSLs, Guidance PackagesDSLs, Guidance Packages, Configuration Editor, , Configuration Editor, Template InstallerTemplate Installer

Possibilities we are considering

Page 94: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Why Software FactoriesWhy Software Factories

Consolidate implicit Consolidate implicit business and business and system development knowledgesystem development knowledge into into specialized tools, process, and contentspecialized tools, process, and contentIncrease Increase productivity and predictabilityproductivity and predictability by better organizing and automating the by better organizing and automating the development processdevelopment processReduce cost and risk by Reduce cost and risk by distributing the distributing the software life cycle acrosssoftware life cycle across networks of networks of interdependent groups and partnersinterdependent groups and partners

Page 95: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Resources Resources BooksBooks

Software Factories by Jack Greenfield and Keith ShortSoftware Factories by Jack Greenfield and Keith ShortWebsitesWebsites

http://http://msdn.microsoft.com/architecture/softwarefactoriesmsdn.microsoft.com/architecture/softwarefactorieshttp://msdn.microsoft.com/vstudio/teamsystemhttp://msdn.microsoft.com/vstudio/teamsystemhttp://lab.msdn.microsoft.com/vs2005/teamsystem/workshohttp://lab.msdn.microsoft.com/vs2005/teamsystem/workshopp

NewsgroupsNewsgroupsMicrosoft.private.whidbey.teamsystem.architectMicrosoft.private.whidbey.teamsystem.architectMicrosoft.private.whidbey.teamsystem.architect.modelingMicrosoft.private.whidbey.teamsystem.architect.modeling

[email protected]@[email protected]@microsoft.com

BlogsBlogshttp://blogs.msdn.com/keith_short/http://blogs.msdn.com/keith_short/http://blogs.msdn.com/jackgr/http://blogs.msdn.com/jackgr/

Page 96: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

Your FeedbackYour Feedbackis Important!is Important!Please Fill Out a Survey forPlease Fill Out a Survey forThis Session on CommNetThis Session on CommNet

Page 97: Demystifying Domain Specific languages  Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.