Upload
joy-chapman
View
220
Download
0
Embed Size (px)
DESCRIPTION
Agenda Modeling and Methods Industrializing Software Domain Specific Languages A Software Factory Schema MDA and UML Wrap Up
Citation preview
Demystifying Domain Demystifying Domain Specific languages & Specific languages & Software FactoriesSoftware Factories
Govind KanshiGovind KanshiArchitect AdvisorArchitect AdvisorMicrosoft CorporationMicrosoft Corporation
AgendaAgendaModeling and MethodsModeling and MethodsIndustrializing SoftwareIndustrializing SoftwareDomain Specific LanguagesDomain Specific LanguagesA Software Factory SchemaA Software Factory SchemaMDA and UMLMDA and UMLWrap UpWrap Up
AgendaAgendaModeling and MethodsModeling and MethodsIndustrializing SoftwareIndustrializing SoftwareDomain Specific LanguagesDomain Specific LanguagesA Software Factory SchemaA Software Factory SchemaMDA and UMLMDA and UMLWrap UpWrap Up
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?
AgendaAgendaModeling and MethodsModeling and MethodsIndustrializing SoftwareIndustrializing SoftwareDomain Specific LanguagesDomain Specific LanguagesA Software Factory SchemaA Software Factory SchemaMDA and UMLMDA and UMLWrap UpWrap Up
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
MassMassCustomizationCustomization
CraftsmanshipCraftsmanship
MassMassProductionProduction
ContinuousContinuousImprovementImprovement
IndustrializationIndustrializationPr
oduc
t cha
nge
Process changeStable
Stab
le
Dynamic
Dyna
mic
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
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
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
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
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
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
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
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
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
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
?
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
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
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
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
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
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
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>
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
+-
Understanding Web Understanding Web ServicesServices
Activities <-> ServicesActivities <-> ServicesWeb servicesWeb servicesMessagesMessagesContractsContractsSequencesSequencesSecuritySecurityReuseReuseWire-level protocolsWire-level protocolsetcetc
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
.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 …
.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
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
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
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
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
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
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
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
Dynamic Systems Initiative Dynamic Systems Initiative (DSI)(DSI)
Network Topology& Operating Systems
Hardware
SystemDefinition
ModelApplication
Hosts
Applications
Whidbey Solutions…Whidbey Solutions…
A logical data center designer
An application designer
ApplicationHosts
Applications
A system hosting designer
SystemDefinition
Model
A DSL In Use TodayA DSL In Use Today
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
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
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
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
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
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
How Do We Describe BPs?How Do We Describe BPs?
Business Process DSLBusiness Process DSLActivitiesActivitiesBusiness EventBusiness EventDependenciesDependenciesBusiness EntitiesBusiness EntitiesDocumentsDocumentsEtc.Etc.
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
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
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
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
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
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
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
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
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
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
A Design DSL In Use TodayA Design DSL In Use Today
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
.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 …
.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
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
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
Web Service DesignerWeb Service Designer
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
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
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
Providing TraceabilityProviding TraceabilityApplications
ApplicationHosting
Logical Machines & Network Topology
Hardware
SystemDefinition
Model
Constraining design to deploymentConstraining design to deployment
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
Class designerClass designer
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
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
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
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
AgendaAgendaModeling and MethodsModeling and MethodsIndustrializing SoftwareIndustrializing SoftwareDomain Specific LanguagesDomain Specific LanguagesA Software Factory SchemaA Software Factory SchemaMDA and UMLMDA and UMLWrap UpWrap Up
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
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
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
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
AgendaAgendaModeling and MethodsModeling and MethodsIndustrializing SoftwareIndustrializing SoftwareDomain Specific LanguagesDomain Specific LanguagesA Software Factory SchemaA Software Factory SchemaMDA and UMLMDA and UMLWrap UpWrap Up
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
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)
……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
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
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
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
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
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
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
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/
Your FeedbackYour Feedbackis Important!is Important!Please Fill Out a Survey forPlease Fill Out a Survey forThis Session on CommNetThis Session on CommNet
© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.