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/ Software Factories Today

2 Main Issues Today Tactical Communicating Guidance and Experience Capturing Intent Engineering vs. Implementation Strategic Formalization of the architectural schema

3 Intent Today

4 Guidance Today Context Free Guidance "Best Practices" Context Aware "Patterns" Often: Only context aware guidance is really applicable

5 Applying Guidance Today: Developer filters 100s or 1000s of sources (blogs.msdn.com: 50.000 posts by 2000+ authors) Other issues: Guidance with different intention Guidance with different context Guidance based on different levels of experience Guidance with different degrees of correctness and applicability

6 1st Step A solution architect defines a set of guidance which is applicable for a certain project

7 Using Guidance shouldn't be Engineering Today it takes an engineering approach to use guidance Discovery, Evaluation, Prototyping, Trial- and-error Different sources of guidance Books, articles, weblogs, conferences, application blocks, source code fragments Employees, Vendors, consultants, universities,

8 Using a Fx shouldn’t be Engineering Let's look at an exemplary piece of guidance User Interface Process Application Block Created by Microsoft's PAG Team Implementation of MVC and other patterns Close to 140 pages of documentation Lots of interfaces and base classes to implement and extend

9

10 UIP: Sample Process

11 ... the process as XML <navigationGraph iViewManager="WinFormViewManager" name="Shopping" state="State" statePersist="SqlServerPersistState" startView="cart">

12 The culprit The shown UIP model is only used as documentation The "real" process flow has to be expressed as XML and C# source code Interfaces have to be implemented, base classes extended A lot of the original intent is lost in the transformation process...

13 Capturing Intent Modeling captures intent Source code: just implementation Most models are either One-way source to generate implementation Only be used for documentation What if the model were an artefact in the same way as a C# source code file?

14 Software Factory Schema schema schema

15 Architecture Frameworks Define viewpoints that identify and separate key stakeholder concerns Organize tools, process and content by viewpoint Relate and integrate life cycle phases, system components, and levels of abstraction Software Product Lines Architecture Frameworks Model Driven Development Guidance In Context

16 Software Architecture IEEE 1471 - Architecture Description Standards

17 Software Architecture IEEE 1471 - Architecture Description Standards

18 A Rectangular Framework (Grid) A grid cannot express... variation because it is static relationships between non-adjacent viewpoints because it is rectangular a specific solution because it is generic A grid is a rectangular, static, generic view of a multi- dimensional, dynamic, domain-specific space

19 A Non-Rectangular Framework A graph of viewpoints that separates and interrelates concerns Business process, user interface layout, data access, logical database design A viewpoint captures information relevant to its stakeholders What activities are performed What guidance assets are used for each activity, and how to configure them What artifacts are involved, and how they are organized What types are involved, where they are defined, and how they interact Viewpoint X Viewpoint Y Viewpoint XZ Viewpoint Z Mapping Reference Transformation Traceability References Transformation Synch Constraint Validation Transformation

20 A 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

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

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

23 A Factory Schema Project Engineering Software Engineering Infrastructure Engineering Business Engineering System Development System Operation Business Requirements System Requirements Infrastructure Requirements Business Operation Infrastructure Operation Business Design System Deployment Infrastructure Design and Provisioning

24 Infrastructure Engineering System Deployment Infrastructure Design and Provisioning System Deployment Physical Deployment Design Logical Infrastructure Design Logical Deployment Design Physical Infrastructure Design Infrastructure Operation Infrastructure Provisioning

25 A Factory Schema Project Engineering Software Engineering Infrastructure Engineering Business Engineering System Development Infrastructure Design and Provisioning System Operation Business Requirements System Requirements Infrastructure Requirements Business Operation Infrastructure Operation Business Design System Deployment

26 System Design System Deployment Infrastructure Design and Provisioning System Deployment Physical Deployment Design Logical Infrastructure Design Logical Deployment Design System Operation Physical Infrastructure Design Infrastructure Operation Infrastructure Provisioning System Requirements

27 Tools for Architects demo demo

28 VS 2005 Tools for Architects Application Design ApplicationDesigner System Design SystemDesigner Infrastructure Design Logical Datacenter Designer Deployment Design DeploymentDesigner

29 Industrializing Software Development Software Product Lines Architecture Frameworks Model Driven Development Guidance In Context

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

31 UIP: Sample Process

32 What if …... you could right-click in Visual Studio and "Add UIP Form..."?

33 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

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

35 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

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

37 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

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

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

40 Today’s Factories for Factories GAT/GAX Guidance Automation Toolkit Guidance Automation Extension DSL Tools Domain Specific Languages

41 GAT 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

42 GAT Guidance Package Like an add-in, yet quite different Simple conceptual model Declarative definition Used on demand Smart, contextual guidance Big or small

43 Domain Specific Language Visual or textual language A sourcecode-equivalent artefact, not just documentation

44 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

45 Summary Tactical Engineering vs. Implementation Communicating Guidance and Experience Capturing Intent – “The Evolution of Guidance” Strategic Formalization of a Factory Schema

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