Presentation is loading. Please wait.

Presentation is loading. Please wait.

Microsoft Architects Forum 1 Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Software Architect Enterprise.

Similar presentations


Presentation on theme: "Microsoft Architects Forum 1 Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Software Architect Enterprise."— Presentation transcript:

1 Microsoft Architects Forum 1 Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Software Architect Enterprise Tools, Visual Studio

2 Microsoft Architects Forum 2 Agenda  Software Industrialization  Domain Specific Languages  Viewpoints and Languages  A Software Factory Schema  MDA and UML

3 Microsoft Architects Forum 3 The Software Crisis (ca. 2004)  $250B/yr in US (average $430K to $2.3M per project)  16% on time and budget but deliver less than planned (avg 42%)  53% overrun (avg 189%)  31% are canceled, losing $140B/yr

4 Microsoft Architects Forum 4 From “Kurzweil, Moore, and Accelerating Change”, Ilkka Tuomi, http://www.jrc.es/~tuomiil/articles/Kurzweil.pdf

5 Microsoft Architects Forum 5 MassCustomizationCraftsmanship MassProductionContinuousImprovement Industrialization Product change Process change Stable Dynamic

6 Microsoft Architects Forum 6 Software Development as Craftsmanship  Labour Intensive  Generic Tools  Generic Processes  One off applications  Hand stitched from scratch  Minimal reuse Overruns, defects, security holes, project failures

7 Microsoft Architects Forum 7 MassCustomizationCraftsmanship MassProductionContinuousImprovement Industrialization Product change Process change Stable Dynamic

8 Microsoft Architects Forum 8 Mass Production / Continuous Improvement  Exploit economies of scale to automate & improve production  Stamping out many identical copies of a prototype  Used to produce CDs/DVDs  Does nothing to help software development

9 Microsoft Architects Forum 9 MassCustomizationCraftsmanship MassProductionContinuousImprovement Dynamic stability Industrialization Product change Process change Stable Dynamic

10 Microsoft Architects Forum 10 Mass Customization  Exploit economies of scope  Reuse designs & components  Use well-understood processes  Key is supporting variability Define only the unique pieces of each system

11 Microsoft Architects Forum 11 Software Factories  Domain-specific process  Domain-specific tools & languages  Domain-specific content  Automate rote and menial tasks  Improve through experience and measurement General-purpose IDEs become domain- specific software factories

12 Microsoft Architects Forum 12 Agenda  Software Industrialization  Domain Specific Languages  Viewpoints and Languages  A Software Factory Schema  MDA and UML

13 Microsoft Architects Forum 13 Raising the Level of Abstraction The history of programming is an exercise in hierarchical abstraction. In each generation, language designers produce constructs for lessons learned in the previous generation, and then architects use them to build more complex and powerful abstractions. (Smith and Stotts)

14 Microsoft Architects Forum 14  C(x) h    C(x)  t 2m  x  ih = – Domain Specific Languages TextualPictorial Declarative Procedural 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

15 Microsoft Architects Forum 15 Domain Specific Languages  Focused on a single aspect of application building  Success in broad horizontal domains: SQL, Windows Form Designer  Easy to understand by domain experts  Designed to support the concepts defined by an underlying framework  Automate rote tasks with effective code generation  Increase agility by visualizing concepts, generating code and other artifacts, enabling rapid iteration Building them must be fast, cheap and easy

16 Microsoft Architects Forum 16 Parts of a DSL Concepts & Well-formedness Rules Generated and Related Artifacts Notations & Mappings XML Serialization

17 Microsoft Architects Forum 17 adds code (optional) feeds in language / tool design Software / systems designer Modeling Language (tool) designer Developer adds detail to design e.g. extra metadata to drive code generation generate code Implementing a DSL

18 Microsoft Architects Forum 18 Models and Frameworks CustomPartialClasses FrameworkPartialClasses ASP.NET Config Files OtherResources uses uses completes FrameworkTools DSLEditor DSLModel generates OtherEditors edit / build generates Model Files (SDM)

19 Microsoft Architects Forum 19 Effective Transformations Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Generate to Framework DSLs

20 Microsoft Architects Forum 20 Agenda  Software Industrialization  Domain Specific Languages  Viewpoints and Languages  A Software Factory Schema  MDA and UML

21 Microsoft Architects Forum 21 XML, Projects, Configs, Classes, Code Deployment Units packaged into Code Visualization

22 Microsoft Architects Forum 22.asmx Files.asmx Code Behinds Other CodeConfig Files Projects and Templates Assemblies ? ? Raising The Level Of Abstraction

23 Microsoft Architects Forum 23 Raising The Level Of Abstraction Application Connection Model Projects and Templates Assemblies.asmx Files.asmx Code Behinds Other CodeConfig Files

24 Microsoft Architects Forum 24 XML, Projects, Configs, Classes, Code Deployment Units packaged into Services, Messages, Applications, Endpoints Abstraction/refinement Vertical Mapping - Application Design

25 Microsoft Architects Forum 25 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 Vertical Mapping - Data Center Design

26 Microsoft Architects Forum 26 Providing Traceability Applications Application Hosting Logical Machines & Network Topology Hardware System Definition Model

27 Microsoft Architects Forum 27 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 constraints Horizontal Mapping - Deployment

28 Microsoft Architects Forum 28 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 Process Design

29 Microsoft Architects Forum 29 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 Entity Implementation

30 Microsoft Architects Forum 30 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

31 Microsoft Architects Forum 31 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

32 Microsoft Architects Forum 32 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 Business Capabilities Logical Data Center Host Software Configuring Business Capabilities

33 Microsoft Architects Forum 33 Agenda  Software Industrialization  Domain Specific Languages  Viewpoints and Languages  A Software Factory Schema  MDA and UML

34 Microsoft Architects Forum 34 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

35 Microsoft Architects Forum 35 DB Definitions 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 WinOE Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes Business Capabilities Logical Data Center Host Software Recipe for a system family Software Factory Schema ModelsPatternsBlocksFrameworksComponentsProcess Test Cases Tools

36 Microsoft Architects Forum 36 …A Software Factory Schema  Like a recipe for a specific class of systems  A set of viewpoints related by formal mappings  Describes artifacts required to build systems in the class and explains how to combine them  Implemented by a software factory template  Configures Visual Studio to build members of the class  Provides the necessary ingredients and tools  Solution template, project templates, file templates, patterns, dynamic help, work item types, workflow, check in policy, reports, groups & permissions, phase exit criteria  Creates a domain specific IDE called a software factory  Integrates tools, process and content for the class of systems  Domain specific editing, compilation, debugging, refactoring, building, testing, deployment, configuration management, defect tracking, reporting

37 Microsoft Architects Forum 37 Why Software Factories  Consolidate implicit business and system development knowledge for software product lines 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

38 Microsoft Architects Forum 38 Agenda  Software Industrialization  Domain Specific Languages  Viewpoints and Languages  A Software Factory Schema  MDA and UML

39 Microsoft Architects Forum 39 What About MDA?  Camp 1: A way to build applications in UML using  A platform-independent UML model (PIM)  Many platform-specific UML models (PSM)  Camp 2: Promoting the Meta Object Facility (MOF) as a substrate for defining models and their relationships  Few vendors implement MOF  Interoperability is poor  Camp 3: UML as a programming language  Interacting state machines define the behavior  Useful for real-time niches eg avionics

40 Microsoft Architects Forum 40 About UML  Popular and successful set of notational conventions for modelling  Addresses only a few domains well  Misses Testing, Database, User Interaction, Services, Business Capabilities  Weak extension mechanisms  Stereotypes and tags have no behavior  Hard to implement consistently in tools  Large, complex, inconsistent, disorganized  Inconsistent one-size-fits-all semantics  Defined by prose not by translation or execution  Defines model structure inside the model  Makes models hard to map to storage systems

41 Microsoft Architects Forum 41 “UML and More”  Introduce family of Domain Specific Languages as an alternative to a generic UML  Allow existing Visio tools to address needs of Sketchers  Reduce cost and effort to produce custom languages and designers  Provide templates for UML-like notations as starting-points for language design  Sign up partners to build UML tools on our platform

42 Microsoft Architects Forum 42 Summary  Software Industrialization  Domain Specific Languages  Viewpoints and Languages  A Software Factory Schema  MDA and UML

43 Microsoft Architects Forum 43 Resources  Websites  Software Factories  http://msdn.microsoft.com/architecture/softwarefactories http://msdn.microsoft.com/architecture/softwarefactories  Visual Studio 2005 Team System  http://msdn.microsoft.com/vstudio/teamsystem http://msdn.microsoft.com/vstudio/teamsystem  Visual Studio 2004 Team System Workshop  http://lab.msdn.microsoft.com/vs2005/teamsystem/workshop http://lab.msdn.microsoft.com/vs2005/teamsystem/workshop  Newsgroups  Microsoft.private.whidbey.teamsystem.architect  Microsoft.private.whidbey.teamsystem.architect.modeling  Email  stcook@microsoft.com stcook@microsoft.com  Weblog  http://blogs.msdn.com/stevecook http://blogs.msdn.com/stevecook

44 Microsoft Architects Forum 44 © 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 "Microsoft Architects Forum 1 Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Software Architect Enterprise."

Similar presentations


Ads by Google