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

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

description

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

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

EMEA

Beat Schwegler ArchitectMicrosoft EMEA HQhttp://blogs.msdn.com/beatsch/

Ingo RammerPrincipal Consultantthinktecturehttp://www.thinktecture.com/

A Software Factory to Build Factories

This Session Is About

Patterns & practicesAutomated guidanceDomain specific languages

Factory Ingredients

PatternsProvide general solutions to common problems

FrameworksProvide supporting and reusable assets

Concrete e.g. .NET FxAbstract e.g. Zachman Framework

ModelsProvide a formal way to describe a specific problemAre able to execute or produce formal artifacts

MethodologiesDefine a codified set of recommended practices

ToolsSupport creating, maintaining and debugging

Factory Ingredients

Patterns

Frameworks

Models

Methodologies

Tools

SoftwareFactory

Template

CRUD Data Application

Customer Store

Factory Composability

Smart Client

GAT4WS UIP

Data Service

GAT4WS DAL

Database

http://msdn.microsoft.com/practices

GuidesE.g. Application Interoperability: Microsoft .NET and J2EE

Reference and baseline implementationsE.g. Applied Integration Baseline Reference Implementation

Application blocksE.g. Enterprise Library

PAG

Guides

Consist of written guidance25+ guides cover…

PatternsApplication architectureIntegrationPerformanceSecurity …

E.g.

E.g. Application Architecture

User Interface Components

User Process Components

Service Interfaces

BusinessWorkflows

BusinessComponents

BusinessEntities

Data Access LogicComponents Service Agents

Data Source Service

Secu

rity

Ope

ratio

nal M

anag

emen

t

Com

mun

icat

ion

Reference and Baseline Implementations

Are executable samples and baselinesApplied Integration Baseline Reference ImplementationWS-I Basic Security Profile Reference Implementation

More baselines to come…Smart client baseline…

Global Bank IntegrationGlobal Bank Integration

demodemo

Application Blocks

Reusable source code components that provide proven solutions14+ blocks cover…

Data accessLoggingUser interface processComposite user interfaces …

Enterprise Library

A consistent set of application blocksCaching Application Block Configuration Application BlockData Access Application BlockCryptography Application BlockException Handling Application BlockLogging and Instrumentation Application BlockSecurity Application Block

Assets of a SF Template

GuidelinesPatternsTemplatesWizardsLibrariesFrameworksTests

LanguagesDesignersConfigurations ResourcesSchemasHelp…

Assets of a SF Template

GuidelinesPatternsTemplatesWizardsLibrariesFrameworksTests

LanguagesDesignersConfigurations ResourcesSchemasHelp…

VSTS Support for Building SFs

DSL ToolkitProduct line development tools

Schema designer, templates

Life cycle development tool suite integrationMethodology templates, dynamic help

Visual Studio SDK (VS SDK)Guidance Automation Toolkit (GAT)

Integration with MSF Agile and FormalDistributes process fragments across software factory schemaCustomizes guidance for target application type

Product development toolsModeling platform, configuration editor

Guidance Automation Extension (GAX)

VSTS Support for Using SFs

GAX

Install

GAT

Install

GuidancePackage

Add, Remove

Test

Guidance Author(Architect)

GuidanceConsumer

(Developer)

GAT/GAX

Recipes & Actions

ActionsAtomic operation on a VS solution item

Recipesexecute one or a sequence of actions define how to collect arguments for actionsdefine how the user can “trigger” recipe execution

recurring or non-recurring bound or unbound

The Power of ModelsThe Power of Models

demodemo

Visual Languages

ImportantShapesLinks, ends, styleLabelsNestingLayout, routing

propertyCorona

Corona

Corona

labelShape

GroupBase

members

waiting

runningpause begin

stop

playing

+v

0v0.7CR

R

C

0.1R

C

R0.1R

Language Types

Natural languagesDifficult to process by machinesE.g. English, music, art, …

Formal languagesDesigned for machine processingE.g. C#, SQL, XML, …

Concrete Syntax

Serialization Syntax

Anatomy of Formal Languages

Abstract Syntax

Semantics

Possible Representation of Concrete Syntax

ToolboxToolbox

PropertyPropertyBrowserBrowser

ExplorerExplorer

ValidationValidation

Drawing surface Drawing surface with domain with domain

specific notationspecific notation

Assets of a SF Template

GuidelinesPatternsTemplatesWizardsLibrariesFrameworksTests

LanguagesDesignersConfigurations ResourcesSchemasHelp…

SDK To Build Visual Modeling Tools

VisualStudio2005

Microsoft Modeling PlatformMicrosoft Modeling PlatformIn Visual StudioIn Visual Studio

DistributedDistributedSystemsSystems

DesignersDesignersClassClass

DesignerDesigner

DSL Tools for Visual StudioDSL Tools for Visual Studio

Your newYour newDesignerDesigner

Microsoft Modeling PlatformIn Visual Studio

Modeling Platform

Domain ModelFramework

Design SurfaceFramework

TemplateEngineShell

Frame-work

ValidationFrame-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

Creating a Language for Creating a Language for simple Use Case Diagramssimple Use Case Diagrams

DSLDSL

Actors

Use Cases

System

Comment

Relationships

Concrete Syntax

Serialization Syntax

Anatomy of Formal Languages

Abstract Syntax

Semantics

Defining the Domain Model

Base Concepts

Inheriting Concepts

Defining Relationships

Defining Properties

Concrete Syntax

Serialization Syntax

Anatomy of Formal Languages

Abstract Syntax

Semantics

Define Shape

Define Shape

Concrete Syntax

Serialization Syntax

Anatomy of Formal Languages

Abstract Syntax

Semantics

Semantic Representation: Generated Artifact

A Language for simple A Language for simple Use Case DiagramsUse Case Diagrams

demodemo

Summary

Automated guidance is a key pillar of Software FactoriesThe VS 2005 modeling platform and the DSL Toolkit enable the use and creation of formal languagesSoftware Factory templates glue the ingredients together

© 2004 Microsoft Corporation. All rights reserved.© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.