Download presentation
Presentation is loading. Please wait.
Published byJoseph Scott Modified over 9 years ago
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.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.