A Software Factory to Build Factories EMEA Beat Schwegler Architect Microsoft EMEA HQ http://blogs.msdn.com/beatsch/ Ingo Rammer Principal Consultant thinktecture http://www.thinktecture.com/ This Session Is About Patterns & practices Automated guidance Domain specific languages Factory Ingredients Patterns Provide general solutions to common problems Frameworks Provide supporting and reusable assets Concrete e.g. .NET Fx Abstract e.g. Zachman Framework Models Provide a formal way to describe a specific problem Are able to execute or produce formal artifacts Methodologies Define a codified set of recommended practices Tools Support creating, maintaining and debugging Factory Ingredients Patterns Frameworks Software Factory Template Models Tools Methodologies Factory Composability CRUD Data Application Customer Store Smart Client GAT4WS UIP Data Service GAT4WS DAL Database PAG http://msdn.microsoft.com/practices Guides E.g. Application Interoperability: Microsoft .NET and J2EE Reference and baseline implementations E.g. Applied Integration Baseline Reference Implementation Application blocks E.g. Enterprise Library Guides Consist of written guidance 25+ guides cover… Patterns Application architecture Integration Performance Security … E.g. E.g. Application Architecture Operational Management Security Communication User Interface Components User Process Components Service Interfaces Business Workflows Business Components Data Access Logic Components Data Source Business Entities Service Agents Service Reference and Baseline Implementations Are executable samples and baselines Applied Integration Baseline Reference Implementation WS-I Basic Security Profile Reference Implementation More baselines to come… Smart client baseline … demo Global Bank Integration Application Blocks Reusable source code components that provide proven solutions 14+ blocks cover… Data access Logging User interface process Composite user interfaces … Enterprise Library A consistent set of application blocks Caching Application Block Configuration Application Block Data Access Application Block Cryptography Application Block Exception Handling Application Block Logging and Instrumentation Application Block Security Application Block Assets of a SF Template Guidelines Patterns Templates Wizards Libraries Frameworks Tests Languages Designers Configurations Resources Schemas Help … Assets of a SF Template Guidelines Patterns Templates Wizards Libraries Frameworks Tests Languages Designers Configurations Resources Schemas Help … VSTS Support for Building SFs DSL Toolkit Product line development tools Schema designer, templates Life cycle development tool suite integration Methodology templates, dynamic help Visual Studio SDK (VS SDK) Guidance Automation Toolkit (GAT) VSTS Support for Using SFs Integration with MSF Agile and Formal Distributes process fragments across software factory schema Customizes guidance for target application type Product development tools Modeling platform, configuration editor Guidance Automation Extension (GAX) GAT/GAX Guidance Author (Architect) Add, Remove Install Install GAX GAT Guidance Package Test Guidance Consumer (Developer) Recipes & Actions Actions Atomic operation on a VS solution item Recipes execute one or a sequence of actions define how to collect arguments for actions define how the user can “trigger” recipe execution recurring or non-recurring bound or unbound demo The Power of Models Visual Languages Corona Important Shapes Links, ends, style Labels Nesting Layout, routing property label Shape members Corona Base Corona Group playing waiting pause begin running stop R 0.1R C +v 0.1R R C 0.7CR 0v Language Types Natural languages Difficult to process by machines E.g. English, music, art, … Formal languages Designed for machine processing E.g. C#, SQL, XML, … Anatomy of Formal Languages Concrete Syntax Abstract Syntax Semantics Serialization Syntax Possible Representation of Concrete Syntax Toolbox Explorer Property Browser Validation Drawing surface with domain specific notation Assets of a SF Template Guidelines Patterns Templates Wizards Libraries Frameworks Tests Languages Designers Configurations Resources Schemas Help … SDK To Build Visual Modeling Tools DSL Tools for Visual Studio Visual Studio 2005 Distributed Systems Designers Class Designer Your new Designer Microsoft Modeling Platform In Visual Studio Modeling Platform Extensible drawing Visual Studio UI surface with support Integration Microsoft for forModeling routing and autoPlatform components like layout In Visual Studio Toolbox, Menus Artifact generation Design Surface Template Framework Engine Shell Validation FrameFramework work Domain Model Framework Constraint checking and guides user to resolve issues In-Memory graph database with rich services (e.g., transactions, serialization…) and queries DSL Creating a Language for simple Use Case Diagrams Actors Use Cases System Comment Relationships Anatomy of Formal Languages Concrete Syntax Abstract Syntax Semantics Serialization Syntax Defining the Domain Model Base Concepts Inheriting Concepts Defining Relationships Defining Properties Anatomy of Formal Languages Concrete Syntax Abstract Syntax Semantics Serialization Syntax Define Shape Define Shape Anatomy of Formal Languages Concrete Syntax Abstract Syntax Semantics Serialization Syntax Semantic Representation: Generated Artifact demo A Language for simple Use Case Diagrams Summary Automated guidance is a key pillar of Software Factories The VS 2005 modeling platform and the DSL Toolkit enable the use and creation of formal languages Software Factory templates glue the ingredients together © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.
© Copyright 2026 Paperzz