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/ Defining and Building a Software Factory

2 Vision Ingredients of a Software Factory Implementation How to create artifacts for a Software Factory Creating a guidance package Defining a DSL This Session Is About

3 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

4 How to build a Software Factory Vision Vision

5 Inception Identify example solutions Use them to elicit requirements Use them to validate factory Determine what you have to work with Do you have any existing assets? What are the constraints on the solutions you build? Required technologies, preferred vendors What are the constraints on how you build them? Existing development process conventions Approval by an internal architectural review board Safety critical certification from a third party

6 Construction (iterative) Identify experience to be harvested Common solution elements Requirements, architecture, feature groups, components and subsystems, deployment topology, development process, cross cutting aspects Viewpoints, relationships and operations Artifacts and activities in each viewpoint Develop assets to describe and support activities Domain assets like specifications from standards bodies Design assets like styles, patterns or idioms Implementation assets like class libraries, frameworks, templates, wizards, tools Separate common and variable features Map feature variations onto variability points Package and deliver the assets

7 Refine Along Three Dimensions Coverage Start with a small kernel and prove its value (UIP) Grow to address more of the problem (Service Access) Generality Start with a constrained problem domain (caching) Grow by adding variability (pluggable key algorithm) Depth Start telling them what to do (UIP guide) Grow by doing more for them (UIP block, UIP designer)

8 Learning A Domain module users builders guidelines patterns templates wizards libraries frameworks languages designers spike finishedmodule spec learnings

9 Composing Viewpoints XyZ module XyZ GUI Viewpoint guidelines patterns templates wizards libraries frameworks languages designers XyZ GUI spec GUIview networkview biz logic view appointmentsview recordsview XyZ Records Viewpoint guidelines patterns templates wizards libraries frameworks languages designers XyZ Appointments Viewpoint guidelines patterns templates wizards libraries frameworks languages designers XyZ Network Viewpoint guidelines patterns templates wizards libraries frameworks languages designers XyZRecordsspec XyZApptsspec XyZnetworkspec

10 Specializing Viewpoints XyZ module XyZ GUI Viewpoint framework patterns guidelines templates tools recipes models languages XyZ GUI spec GUIview AbC module GUIview AbC GUI Viewpoint framework patterns guidelines templates tools recipes models languages AbC GUI spec System GUI Viewpoint framework patterns guidelines templates tools recipes models languages System GUI spec Corporate GUI Viewpoint framework patterns guidelines templates tools recipes models languages. Net GUI Guidlines Viewpoint framework patterns guidelines templates tools recipes models languages

11 Defining Relationships XyZ module XyZ GUI Viewpoint framework patterns guidelines templates tools recipes models languages XyZ GUI spec GUIview biz model view XyZ biz logic Viewpoint framework patterns guidelines templates tools recipes models languages XyZ biz spec Relate metadata, tasks and artifacts in one life cycle phase, one part of a system, one level of abstraction to metadata, tasks and artifacts in other phases, parts and levels of abstraction

12 How it was built GAT4WS GAT4WS

13 Assets for the GAT4WS Patterns Adapter pattern Frameworks asmx Tools Schema designer Schema to class generator WSDL creation tool Service interface and adapter generator

14 The Factory Schema Project Engineering Software Engineering Infrastructure Engineering Infrastructure Design and Provisioning System Deployment System Operation System Requirements Infrastructure Requirements Infrastructure Operation Business Engineering Business Requirements Business Operation Business Design System Development

15 System Development System Deployment System Operation Project Engineering System Requirements Business Design Software Engineering System Design Application Development Business Requirements Application Development Software Contract Design

16 Service Contract Design : Software Contract Design Data & Message Contract Design Application Development System Design Service Contract Design Lifecycle Management Business Design Business Contract Design

17 Software Contract Design Service Contract Design : Software Contract Design XSD Design Service Contract Design Data & Message Contract Design : Software Contract Design Class Design Message Contract Data Contract Service Contract Design : Software Contract Design WSDL DesignInterface Design

18 System Development System Operation Project Engineering System Requirements Business Design Software Engineering System Design Application Development Software Contract Design Business Requirements Application Development Software Contract Design System Deployment

19 Module Development Application Development System Development Software Contract Design System Design Application Development System Operation System Requirements Application Specification Application Implementation Module Development System Deployment

20 Service Implementation Application Implementation : System Development Adapter Service Implementation : Application Implementation Business Logic Transport Software Contract Design

21 GAT4WS Recipes (1/2) Create solution Activates on creation of the solution Generate data and message types Activates on *.xsd items Scope: data & message contract projects Create service contract Activates on service contract project item Scope: service contract project Generate service interface Activates on *.wsdl items Scope: service contract project

22 GAT4WS Recipes (2/2) Generate adapter Activates on *.wsdl items Scope: service contract project Create Web Service endpoint Activates on Endpoints solution folder Scope: Endpoints solution folder Expose service interface Activates on endpoint projects Scope: Endpoint solution folder

23 Creating a Guidance Package

24

25

26 Guidance Package Actions Converters CustomWizardPages Editors References Templates Items Projects Solutions Text ValueProviders Guidance schema Installer Setup

27 Adding an Action

28

29

30 Creating an Unbound Recipe

31 Execute an Unbound Recipe

32 Bind a Recipe

33

34 Execute a Bound Recipe

35 GAT demo demo

36 How it was built DSL for UIP DSL for UIP

37 Assets for the UIP DSL Patterns MVC (in UIP) Frameworks UIP Windows Forms Tools DSL Toolkit Property Editor

38 Approach for building DSL Defining the requirements and the abstractions Pattern languages vs. domain languages The syntax Transformations Moving down the abstraction layers

39 UIP Starting Point Manual development of Controller View to Controller binding Configuration file

40 Controller implements Page Flow

41 Views "offer" their State

42 Views call the Controller

43 Configuration Defines Flow

44 Defining the Abstract Syntax

45 Defining the Concrete Syntax

46 Transformations Configuration File Controller Page classes Wizard-related page classes

47 Creating a DSL from scratch...

48 Identifying the Product Product families and product lines Generic, similar and individual features

49 Designing a Language User Focused Start with the concrete syntax User in mind Grammar Focused Start with domain model and abstract syntax Templating in mind

50 Grammar Focused

51 User Focused (Use Case)

52 How Can You Start Today? Designing frameworks? Think about a custom language for your framework How would it look like? Does it simplify the use of your framework? Does it reduce the training effort?

53 Technical Issues Today Even if the DSL tools are not yet released Determine that your framework's architecture supports DSLs How could you generate code (partial classes, config files,...)? Which parts are cumbersome, where do you need support? How will developers use the DSL?

54 Summary Vision Ingredients of a Software Factory Implementation How to create artifacts for a Software Factory Creating a guidance package Defining a DSL

55 Closing Notes Closing Notes

56 Software Factories Software Product Lines Architecture Frameworks Model Driven Development Guidance In Context

57 Software Factories We have to step up to the next level Predictability Quality Efficiency Software Factories are a long term vision to Improve productivity and predictability across the software life cycle Make it easy to deliver a wide range of tailored solutions

58 Q & A Q & A

59 © 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