Presentation is loading. Please wait.

Presentation is loading. Please wait.

EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture

Similar presentations


Presentation on theme: "EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture"— Presentation transcript:

1 EMEA Beat Schwegler Architect Microsoft EMEA HQ http://blogs.msdn.com/beatsch/ Ingo Rammer Principal Consultant thinktecture http://www.thinktecture.com/ A Software Factory to Build Factories

2 What if...... you could take the model and let it become source code?

3 UIP: Sample Process

4 ... you could right-click in Visual Studio and "Add UIP Form..."?

5 IDEs are Extensible VSIP / Visual Studio Extensibility AddIn Supports all these requirements But extensibility model doesn’t directly support domains to communicate experience And: Complex! (We have first hand experience here with WSCF)

6 Roles and Artifacts Visual Studio 2005 Guidance & Experience Runtime Guidance & Experience Toolkit Guidance Package SourceCode Application Guidance & Experience Author (Architect) Guidance & Experience Consumer (Developer) End User builds generates compiles to

7 Roles & Artifacts "Architect" selects guidance and creates two artifacts: A framework Codified guidance (domain-specific language, wizard,...) A developer uses a model and the codified guidance to implement a solution

8 How Guidance EvolvesGuidelines Patterns Templates Frameworks Designers Provide tool to help framework users Ship stable features in compiled form Automate pattern application Formalize based on experience

9 What’s A Factory? A highly customized instance of Visual Studio Supplies key life cycle artifacts Supplies partial or prototypical components containing key mechanisms and design elements To accelerate frequently encountered tasks Specific to a certain type of solution or product

10 Value vs. Scope Scope Value Increasing value decreases scope. The value of an abstraction is proportional to its specificity. Michael Jackson

11 What’s In A Factory? A structured installable collection of customizable, integrated tool, process and content assets (software factory template) A description of the software factory (software factory schema)

12 Factory for Factories GAT/GAX (Guidance Automation Toolkit, Guidance Automation Extension) DSL Tools

13 DSL Domain Specific Languages Highly focused custom languages designed for specific problems, platforms or tasks Many proven examples SQL, GUI builders, HTML, regular expressions Visual Studio Team System Distributed System Designers Make solution easier to understand and maintain

14 Guidance Automation Expert guidance can accelerate development Need to capture and deliver it Guidance produced in various forms, e.g. Microsoft patterns & practices More complex challenges  more complex guidance Solution is to build guidance into the tools Guides and enforces at the same time

15 Guidance Lifecycle Visual Studio 2005 Guidance Automation eXtensions Guidance Automation Toolkit GuidancePackage SourceCode Application Guidance Author (Architect) Guidance Consumer (Developer) End User builds generates compiles to

16 What is In Your Factory? Documentation Baseline solution template Solution component templates and recipies UIP designer Code snippets Reusable blocks and libraries Development use case automation Development use case: Create solution Add subsystem Define UIP wizard Connect wizard with business logic Add service agent

17 Governance and Process Similar to components and services No new model is needed, it can fit existing processes Governance Enterprise global (product families) Project specific Team specific

18 The next steps … Patterns & practices Automated guidance Domain specific languages

19 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

20 Factory Ingredients Patterns Frameworks Models Methodologies Tools Software Factory Template

21 CRUD Data Application Customer Store Factory Composability Smart Client GAT4WS UIP Data Service GAT4WS DAL Database

22 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 PAG

23 Guides Consist of written guidance 25+ guides cover… Patterns Application architecture Integration Performance Security …

24 E.g.

25 E.g. Application Architecture User Interface Components User Process Components Service Interfaces Business Workflows Business Components Business Entities Data Access Logic Components Service Agents Data Source Service Security Operational Management Communication

26 Application Blocks Reusable source code components that provide proven solutions 14+ blocks cover… Data access Logging User interface process Composite user interfaces …

27 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

28 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

29 Global Bank Integration demo demo

30 “BATs” are a new guidance form-factor designed to make it easy to build customized baseline architectures within a specific application scenario Integrated into Visual Studio (built using the Guidance Automation Toolkit), using wizards, templates, code generation etc. Combines existing guidance assets such as blocks and patterns into an end-to-end architecture Designed to be flexible and customizable Baseline Architecture Toolkits

31 Patterns, Blocks Feature Guidance Packages Solution Guidance Packages Baseline Arch Toolkits Docs, Ref Impls Etc. Docs, Ref Impls Etc. Scenario 1 BAT Scenario 2 BAT Assembly of BATs

32 Assets of a SF Template Guidelines Patterns Templates Wizards Libraries Frameworks Tests Languages Designers Configurations Resources Schemas Help …

33 Assets of a SF Template Guidelines Patterns Templates Wizards Libraries Frameworks Tests Languages Designers Configurations Resources Schemas Help …

34 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)

35 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) VSTS Support for Using SFs

36 GAX Install GAT Install Guidance Package Add, Remove Test Guidance Author (Architect) Guidance Consumer (Developer) GAT/GAX

37 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

38

39

40

41

42 The Power of Models demo demo

43 Visual Languages Important Shapes Links, ends, style Labels Nesting Layout, routing property Corona label Shape GroupBase members waiting running pausebegin stop playing +v 0v 0.7CR R C 0.1R C R

44 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, …

45 Concrete Syntax Serialization Syntax Anatomy of Formal Languages Abstract Syntax Semantics

46 Possible Representation of Concrete Syntax Toolbox PropertyBrowser Explorer Validation Drawing surface with domain specific notation

47 Assets of a SF Template Guidelines Patterns Templates Wizards Libraries Frameworks Tests Languages Designers Configurations Resources Schemas Help …

48 SDK To Build Visual Modeling Tools Visual Studio 2005 Microsoft Modeling Platform In Visual Studio DistributedSystemsDesignersClassDesigner DSL Tools for Visual Studio Your new Designer

49 Microsoft Modeling Platform In Visual Studio Modeling Platform Domain Model Framework Design Surface Framework Template Engine Shell Frame- work Validation Frame- work In-Memory graph database with rich services (e.g., transactions, serialization…) and queries Extensible drawing surface with support for routing and auto- layout Artifact generation Constraint checking and guides user to resolve issues Visual Studio UI Integration for components like Toolbox, Menus

50 Creating a Language for simple Use Case Diagrams DSL DSL

51

52 Actors

53 Use Cases

54 System

55 Comment

56 Relationships

57 Concrete Syntax Serialization Syntax Anatomy of Formal Languages Abstract Syntax Semantics

58 Defining the Domain Model

59 Base Concepts

60 Inheriting Concepts

61 Defining Relationships

62 Defining Properties

63 Concrete Syntax Serialization Syntax Anatomy of Formal Languages Abstract Syntax Semantics

64 Define Shape

65

66 Concrete Syntax Serialization Syntax Anatomy of Formal Languages Abstract Syntax Semantics

67 Semantic Representation: Generated Artifact

68 Use Case DSL demo demo

69 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

70 © 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 "EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture"

Similar presentations


Ads by Google