Presentation is loading. Please wait.

Presentation is loading. Please wait.

Demystifying Domain Specific languages & Software Factories Govind Kanshi Architect Advisor Microsoft Corporation.

Similar presentations


Presentation on theme: "Demystifying Domain Specific languages & Software Factories Govind Kanshi Architect Advisor Microsoft Corporation."— Presentation transcript:

1

2 Demystifying Domain Specific languages & Software Factories Govind Kanshi Architect Advisor Microsoft Corporation

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

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

5 Questions We Hear… What types of systems can I build? What’s the architecture of each type? How do I go from requirements to deployment? What artifacts do I need to build? How are they related? What are the key decisions that need to be made? Why are methodologies so abstract? Why can’t I get concrete guidance for my project? Why isn’t modeling more effective? Why can’t tools generate production quality code? Why don’t models stay synchronized with code? Why don’t models fit my file-oriented environment?

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

7 Software Development as Craftsmanship Labor Intensive Generic Tools Generic Processes One off applications Hand stitched from scratch Minimal reuse Overruns, defects, security holes, project failures

8 MassCustomizationCraftsmanship MassProductionContinuousImprovement Industrialization Product change Process change Stable Dynamic

9 Exploiting Commonality We already exploit economies of scale to automate production Stamping out many identical copies of a prototype Used to produce CDs/DVDs Does nothing to help development

10 Exploiting Commonality We can also exploit economies of scope Reuse designs & components Build many similar but distinct prototypes Key is supporting variability Define only the unique pieces of each system

11 Software Factories Domain-specific process Domain-specific tools & languages Domain-specific content Automate rote and menial tasks General-purpose IDEs become domain-specific software factories

12 What Is A Software Factory? “A set of integrated tool, process and content assets delivered to VS users in context to accelerate life cycle tasks for a specific type of software deliverable” “A set of integrated tool, process and content assets delivered to VS users in context to accelerate life cycle tasks for a specific type of software deliverable” Software Factories exploit innovations in Software product lines Service oriented architecture and orchestration Model driven development

13 Examples A set of assets for developing a User Interface Process, including: The PAG UIP block A DSL based UIP designer A recipe that adds a UIP project to an existing solution from a project template Help and documentation based process guidance for building User Interface Processes A set of assets spanning the entire life cycle for B2C extranet ecommerce systems for small to medium sized businesses, including Feature models of requirements A baseline architecture A set of assemblies containing prebuilt components for all major subsystems A tailored development process A configurable deployment topology A set of test cases and data sets A set of build scripts DSL based tools for development and deployment tasks Recipes that create the initial solution, and then build out project clusters for major components on demand

14 Agenda Modeling and Methods Industrializing Software Complexity in developing software Using Abstraction to Reduce Complexity A Software Factory Schema MDA and UML Wrap Up

15 Automate business processes Value chains with partners Customer and supplier self service Improve ROI of IT Lower operating costs Cut time to market New Business Requirements

16 New Application Architecture Automate business processes Improve ROI of IT Lower operating costs Cut time to market Value chains with partners Customer and supplier self service Service oriented architecture Web Services, messaging, contracts Security Caching and state management Deployment policies & constraints Heterogeneous platforms

17 Evolving Platform Technology Automate business processes Improve ROI of IT Lower operating costs Cut time to market Value chains with partners Customer and supplier self service Service oriented architecture Messaging and protocols Security Caching and state management Deployment policies & constraints Heterogeneous platforms Application Servers and standards Schemas and databases Code and attributes Configuration files Project structures Physical server configurations

18 Complexity Automate business processes Value chains with partners Customer and supplier self service Improve ROI of IT Lower operating costs Cut time to market Service oriented architecture Web Services, messaging, contracts Security Caching and state management Deployment policies & constraints Heterogeneous platforms Application servers & standards Schemas and databases Code and attributes Configuration files Project structures Physical server configurations ? ?

19 Where Does Complexity Arise? ? ? package com.microsoftpearl circle.auction.auc tionmanager.busine ss.auctionmanager; import java.rmi.RemoteExc eption; import java.util.Vector; package com.microsoftpearl circle.auction.auc tionmanager.busine ss.auctionmanager; import java.rmi.RemoteExc eption; 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 ( ) 11... 0..1 1 1..* «derived» 0..1 1 Low-level Implementation languages

20 Agenda Modeling and Methods Industrializing Software Complexity in developing software Using Abstraction to Reduce Complexity A Software Factory Schema MDA and UML Wrap Up

21 Abstraction Reduces Complexity Assembler, Pcode, CLR IL Bytecode or machine languages General Purpose Abstractions C#, Java, etc Domain Specific Abstractions

22 Frameworks Reduce Translation Complexity Assembler, Pcode, CLR IL Bytecode or machine languages General Purpose Abstractions C#, Java, etc Domain Specific Abstractions Frameworks E.g. ASP.Net Domain Specific Frameworks

23 Domain-specific language A language specific to a domain horizontal – e.g.: * GUI * GUI * web * web * business logic * business logic * database * database * deployment * deployment vertical – e.g.: * telephone bills * telephone bills * insurance * insurance * plane tickets * plane tickets * hardware construction * hardware construction PictorialflowchartsUML Textual C#, Java OCL

24 Domain Specific Modeling Language Domain Specific Abstractions Narrow Scope Graphical Highly Expressive Coarse-grained abstractions May be translated into General purpose programming languages Specific framework completion Other modeling languages

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

26 Telephone billing scheme call calendar month Call Record call length  base rate: £/s call length  friend discount rate: £/s store friends calls other calls - bill billing period store   + -

27 Understanding Web Services Activities Services Web services MessagesContractsSequencesSecurityReuse Wire-level protocols etc

28 Where Does Complexity Arise? ? ? package com.microsoftpearl circle.auction.auc tionmanager.busine ss.auctionmanager; import java.rmi.RemoteExc eption; import java.util.Vector; package com.microsoftpearl circle.auction.auc tionmanager.busine ss.auctionmanager; import java.rmi.RemoteExc eption; import java.util.Vector; High Level Concepts Activities Messages Security Reuse Services Contracts High Level Concepts Activities Messages Security Reuse Services Contracts «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 ( ) 11... 0..1 1 1..* «derived» 0..1 1 Low-level Implementation languages

29 .asmx files.asmx code behindssource code Statements and attributes XML Configuration Files and schemas (e.g. WSDL files) Project Files and templates Deployment Policies And Packages ? ? Scattered Concepts …

30 .asmx files.asmx code behindssource code Statements and attributes XML Configuration Files and schemas (e.g. WSDL files) Project Files and templates Deployment Policies And Packages …Replaced By A Holistic View Web Service Interaction DSL

31 Need A Designer Infrastructure For a specific aspect of overall development Define a metamodel for the abstractions Define a graphical notation Define a synchronization engine

32 Complexity ?? Automate business processes Value chains with partners Customer and supplier self service Improve ROI of IT Lower operating costs Cut time to market Service oriented architecture Web Services, messaging, contracts Security Caching and state management Deployment policies & constraints Heterogeneous platforms Application servers & standards Schemas and databases Code and attributes Configuration files Project structures Physical server configurations

33 Simplify Using DSLs Assess DesignImplement PlanRun Business IT StrategicObjectivesStrategicObjectives TechnologyArchitectureTechnologyArchitecture Business Processes and Entities Business Processes and Entities Logical Data Center Logical Physical servers and segments Services, Messages, Contracts, Schedules Services, Messages, Contracts, Schedules XML, Database, Classes, Code Code Manual Procedures Each work product can be a separate modeling language Mappings are defined between modeling languages

34 What’s Inside A Viewpoint? Assess DesignImplement PlanRun Business IT StrategicObjectivesStrategicObjectives TechnologyArchitectureTechnologyArchitecture Business Processes and Entities Business Processes and Entities Logical Data Center Logical Physical servers and segments Services, Messages, Contracts, Schedules Services, Messages, Contracts, Schedules XML, Database, Classes, Code Code Manual Procedures DSLsPatternsProcessesFrameworksComponentsAspectsTransformsConstraints

35 What’s Inside A Viewpoint? Assess DesignImplement PlanRun Business IT StrategicObjectivesStrategicObjectives TechnologyArchitectureTechnologyArchitecture Business Processes and Entities Business Processes and Entities Logical Data Center Logical Physical servers and segments Services, Messages, Contracts, Schedules Services, Messages, Contracts, Schedules XML, Database, Classes, Code Code Manual Procedures

36 Agenda Complexity in Connected Systems Using Abstraction to Reduce Complexity Domain Specific Modeling Languages and Patterns Scenario 1 - Web Services & Design for Operations Scenario 2 – Implementing Business Processes Microsoft Strategy and Tools for Visual Studio Whidbey

37 Web Service design & operations Assess DesignImplement PlanRun Business IT StrategicObjectives TechnologyArchitecture Business Processes and Entities Business Processes and Entities Logical Data Center Logical Physical servers and segments Services, Messages, Contracts, Schedules Services, Messages, Contracts, Schedules XML, Database, Classes, Code Code Manual Procedures

38 Dynamic Systems Initiative (DSI) Network Topology & Operating Systems Hardware System Definition Model Application Hosts Applications

39 Whidbey Solutions… A logical data center designer An application designer Application Hosts Applications A system hosting designer System Definition Model

40 A DSL In Use Today

41

42

43

44

45 Web Service Interaction Patterns Service Interface GatewayFaçade Layered Architecture AspectsTransactionsSecurityTransformations Validate against deployment infrastructure Transform into implementation artifacts

46 Logical System Architecture Logical System Architecture Patterns “Hardened IIS” – metabase settings MSA Patterns IDC, EDC Tiered Architecture Patterns Aspects Firewall Settings Protocol Settings Transformations Validate against Web service application design Transform into implementation SDM

47 Applying A Service Façade Pattern Policy Management Customer Management Customer Self-Service Service Facade Pattern Facade Messages Service Selected Messages Project Structures References Default XSD schemas Security Policy Access Policy Pass-thru Logic & Filters Customer Mgmt Facade

48 Aspect Weaving – Instrumentation Policy Management Customer Management Customer Self-Service Instrumentation Aspect Framework Call Structure Pointcut Code Aspect

49 Designing Business process Assess DesignImplement PlanRun Business IT StrategicObjectives TechnologyArchitecture Business Processes and Entities Business Processes and Entities Logical Data Center Logical Physical servers and segments Services, Messages, Contracts, Schedules Services, Messages, Contracts, Schedules XML, Database, Classes, Code Code Manual Procedures

50 Invoice To Payment

51 How Do We Describe BPs? Business Process DSL Activities Business Event Dependencies Business Entities DocumentsEtc.

52 Patterns And Transforms Process Patterns User Process Scheduled Process Case Process Rules Process Transformations Transform into Web service collaborations

53 Build One Business Process DSL? Assess DesignImplement PlanRun Business IT StrategicObjectivesStrategicObjectives TechnologyArchitectureTechnologyArchitecture Business Processes and Entities Business Processes and Entities Logical Data Center Logical Physical servers and segments Services, Messages, Contracts, Schedules Services, Messages, Contracts, Schedules XML, Database, Classes, Code Code Manual Procedures Huge Variation Few Platforms

54 Building Applications With DSLs Choose a specific aspect of overall development Define a metamodel for the abstractions OR extend an existing one Define a graphical notation Define a synchronization engine Define Patterns Define Aspects

55 Agenda Complexity in Connected Systems Using Abstraction to Reduce Complexity Domain Specific Modeling Languages and Patterns Scenario 1 - Web Services & Design for Operations Scenario 2 – Implementing Business Processes Microsoft Strategy and Tools for Visual Studio Whidbey

56 Making Use Of Metadata Metadata collected in DSLs can be made available across the life cycle Source control systems Debuggers Testing Tools Compilers and language editors

57 Enterprise Design Tools Build an initial set of model-driven development tools supporting DSLs Focused on specific development tasks With hi-fidelity, continuously synchronized mappings to code or other models Expand and integrate model data throughout life cycle tools Productize and promote underlying tool- building frameworks and tools Goal: Simplify design and deployment of SOA’s

58 DSL’s Supported in Whidbey Rich support for designing and constructing connected applications from Web services Designing WS for operational deployment Logical infrastructure requirements considered early – inform and constrain developers Verify application settings against logical infrastructure

59 Standards: UML and MDA UML has been very successful as a source of vocabulary and diagrammatic conventions for OO design UML specification is overly complex, difficult to understand and full of ambiguities and inconsistencies UML (as specified) is “one-size-fits-all” – difficult to extend and not a good foundation for domain specific languages UML does not map effectively onto CLR without significant alterations Properties, fields, indexers Type system CLR attributes

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

61 Review Modeling languages can help reduce complexity Domain-specific abstractions Holistic view of scattered concepts Microsoft is working to improve Web service design and deployment scenarios Implementing DSLs can be made effective with the right underlying engine Tool Extensibility is very important

62 A Design DSL In Use Today

63 E.g., Issues in web service dev The concept of the web service is spread out Developer must keep files in sync Refactoring engines ignorant of web services Cannot process files like schemas and.config files Debugging, intellisense, editors all ignorant of web service concepts Source control, work items, tests all ignorant of Web Service concepts

64 .asmx files.asmx code behindSource code.config siles and schemas (e.g. WSDL files) Projects and templates Deployment policies and packages ? ? Scattered Concepts …

65 .asmx files.asmx code behindsource code.config files and schemas (e.g. WSDL files) Projects and templates Deployment policies and packages …a Holistic View Web Service Connectivity DSL

66 XML, Projects, Configs, Classes, Code Deployment Units packaged into Services, Messages, Applications, Endpoints Abstraction/refinement System Design

67 Web Service Connectivity DSL Services, Messages, Applications, Endpoints Services, Messages, Applications, Endpoints XML, Projects, DBs, Classes, Code XML, Projects, DBs, Classes, Code Physical servers & segments DeploymentUnitsDeploymentUnits Abstraction/ Refinement packaged into deployed on

68 Web Service Designer

69 IT Operations doesn’t understand application requirements Development IT Operations Developers don’t understand operations policy Plan/Design DevelopmentTestingDeploymentOperations

70 Design for Operations Services, Messages, Applications, Endpoints Services, Messages, Applications, Endpoints XML, Projects, DBs, Classes, Code XML, Projects, DBs, Classes, Code Logical Data Center Logical Physical servers & segments DeploymentUnitsDeploymentUnits Abstraction/ Refinement Abstraction/ Refinement Constraints packaged into deployed on

71 XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints Logical Data Center Host Software Abstraction/refinement Data Center Design

72 Providing Traceability Applications Application Hosting Logical Machines & Network Topology Hardware System Definition Model

73 Constraining design to deployment

74 Code Visualization Services, Messages, Applications, Endpoints Services, Messages, Applications, Endpoints XML, Projects, DBs, Classes, Code XML, Projects, DBs, Classes, Code Logical Data Center Logical Physical servers & segments DeploymentUnitsDeploymentUnits Abstraction/ Refinement Abstraction/ Refinement Constraints packaged into deployed on

75 Class designer

76 DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints Logical Business Entities, Operations, Rules Implementable Business Processes and Entities User Interface Process Logical Data Center Host Software User Interface Navigation

77 DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints LogicalBusiness Entities, Operations, Rules Biztalk Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes BusinessCapabilities Logical Data Center Host Software Business Entities

78 DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints Logical Business Entities, Operations, Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities BusinessCapabilities Logical Data Center Host Software Business Process Modeling

79 DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints LogicalBusiness Entities, Operations, Rules Biztalk Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes BusinessCapabilities Logical Data Center Host Software Business Process Implementation

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

81 DB Definitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units Services, Messages, Applications, Endpoints Logical Business Entities Rules, Operations BizTalk Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes Business Capabilities Logical Data Center Host Software A graph of interrelated viewpoints Software Factory Schema

82 DB Definitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units Services, Messages, Applications, Endpoints Logical Business Entities Rules, Operations BizTalk Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes Business Capabilities Logical Data Center Host Software A recipe for a family of applications Software Factory Schema ModelsPatternsBlocksFrameworksComponentsProcess Test Cases Tools

83 DB Definitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units Services, Messages, Protocols, Endpoints Logical Business Entities and Operations BizTalk Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes Business Capabilities Logical Data Center Host Software A graph of interrelated viewpoints A Software Factory Schema

84 DB Definitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units Services, Messages, Protocols, Endpoints Logical Business Entities and Operations BizTalk Schedules & Rules Implementable Business Processes and Entities User Interface Process Manual Processes Logical Data Center Host Software A Software Factory Schema Supported in Visual Studio 2005 Team Architect Business Processes and Entities Business Capabilities

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

86 UML and DSLs Simple Questions How many diagrams exist in UML 2 How many do we end up using How do we use it (sketch,compiler,language) According to MF(Steve cook) 99% people use it as sketch Can one trace across one diagram to another with ease Can one model(diagram) auto synchronize with another Can model capture the patterns/tools/patterns for specific situation Can we use UML for GUI design, compilers, embedded systems

87 UML Is Great For Sketching… Set of popular and successful notations 5 of 13 UML 2 diagrams widely recognized Developed to unify competing notations Booch, Rumbaugh, Jacobson, and others Created for Object Oriented Analysis & Design Where models are a form of documentation Repository for modeling concepts Contains many useful common abstractions Basis for many domain modeling efforts From choreographies (RosettaNet) to Health Care (HL7)

88 …But Not For Development Not designed to support automation Addresses only a few domains well Class, interaction, use case, process, states Hard to extend to additional domains Stereotypes and tags do not carry behavior

89 DSL: UML and More Use generic UML for documentation Use DSLs for model driven development Reduce cost and effort of building DSLs Use UML notational styles for DSLs Transform UML profile definitions into DSLs Transform UML profile based models into corresponding DSL based models

90 What About MDA? A way to build applications in UML using A platform-independent UML model (PIM) Many platform-specific UML models (PSM) Its primary goal is platform independence Real needs are interoperability and productivity What doesn’t MDA address? How to make models precise enough to compile What to model for given type of system How to integrate models with requirements, architecture, frameworks, patterns and code How to fit models into the development process How to use models across the life cycle

91 MDA and More… DSLs are better languages for development Platform independence is nice, but… Interoperability, productivity and predictability also matter Other practical aspects of software development What types of systems can be developed What is the architecture of each type of system What to model for given type of system How to use models with frameworks, patterns, code How to use models in file oriented environments How to use models for requirements, deployment, testing, operations, maintenance

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

93 Support For Building Factories Guidance for building Software Factories With Visual Studio 2005 Team System Integration with Visual Studio 2005 Methodology Templates, Dynamic Help Visual tools for building Software Factories DSL Designer, Feature Modeler, Schema Designer, Template Designer, Guidance Package Generator, Process Designer Possibilities we are considering

94 Support For Using Factories Guidance for using Software Factories Integration with MSF Agile and Formal Guidance tuned for specific types of systems Organized according to viewpoint Visual tools for using Software Factories DSLs, Guidance Packages, Configuration Editor, Template Installer Possibilities we are considering

95 Why Software Factories Consolidate implicit business and system development knowledge into specialized tools, process, and content Increase productivity and predictability by better organizing and automating the development process Reduce cost and risk by distributing the software life cycle across networks of interdependent groups and partners

96 Resources Books Software Factories by Jack Greenfield and Keith Short Websites http://msdn.microsoft.com/architecture/softwarefactories http://msdn.microsoft.com/vstudio/teamsystem http://lab.msdn.microsoft.com/vs2005/teamsystem/worksho p http://lab.msdn.microsoft.com/vs2005/teamsystem/worksho pNewsgroupsMicrosoft.private.whidbey.teamsystem.architectMicrosoft.private.whidbey.teamsystem.architect.modelingEmailramkoth@microsoft.comgovindk@microsoft.comBlogs http://blogs.msdn.com/keith_short/ http://blogs.msdn.com/jackgr/

97 Your Feedback is Important! Please Fill Out a Survey for This Session on CommNet

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


Download ppt "Demystifying Domain Specific languages & Software Factories Govind Kanshi Architect Advisor Microsoft Corporation."

Similar presentations


Ads by Google