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

Slides:



Advertisements
Similar presentations
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Advertisements

Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Visual Studio Team System (VSTS). Richard Hundhausen Author of software development books Microsoft Regional Director Microsoft MVP (VSTS) MCT, MCSD,
© 2004 Visible Systems Corporation. All rights reserved. 1 (800) 6VISIBLE Holistic View of the Enterprise Business Development Operations.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
What’s Completely New? Visual Studio Team System! Sean Puffett Developer Evangelist
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Tom Hollander Solution Architect Solutions Development Centre Microsoft Australia ARC308.
DEV365 Visual Studio Team Edition for Software Architects: Overview Alex Torone Lead Program Manager Enterprise Tools Microsoft Corporation.
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Course Instructor: Aisha Azeem
Version Enterprise Architect Redefines Modeling in 2006 An Agile and Scalable modeling solution Provides Full Lifecycle.
Tools for Architects and Future Directions in Modeling Beat Schwegler Architect, Enterprise Team Microsoft EMEA D&PE blogs.msdn.com/beatsch Arvindra Sehmi.
Microsoft Architects Forum 1 Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Software Architect Enterprise.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
ESB Guidance 2.0 Kevin Gock
DEV334 Creating Application Starting Points & Sharing Best Practices with Enterprise Templates Marc Gusmano Director of Emerging Technologies The Information.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Microsoft Dynamics Snap Michael McClary ISV Developer Evangelist Microsoft Corporation.
WEB 304 An Overview of ASP.NET and Windows Workflow Foundation Kashif Alam Program Manager Developer Division Microsoft Corporation.
Domain-Specific Development Stuart Kent, Senior Program Manager, DSL Tools, Visual Studio Team System, Microsoft.
DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools.
The Roadmap to Software Factories Tools, Patterns and Frameworks.
1 Introduction to Software Engineering Lecture 1.
The Systems Development Life Cycle
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
L9 - April 5, 2006copyright Thomas Pole , all rights reserved 1 Lecture 9: Reuse Driven Processes and Text Ch. 7: Programming with Models.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Visual Studio 2005 Team Edition for Software Architects: Developing Service-Oriented Systems Bill Gibson Senior Program Manager Enterprise Tools Microsoft.
DSL Classification October 21-22, 2007 Benoît Langlois / Thales-EPM Consuela-Elena Jitia / Eric Jouenne, Thales Research & Technology The 7th OOPSLA Workshop.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Microsoft Dynamics NAV 2009 and Architecture Overview Name Title Microsoft Corporation.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
Microsoft Australia Security Summit Design for Operations Nigel Watson, Microsoft Australia David Lemphers, TeamForce Nigel Watson, Microsoft Australia.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Eurostat SDMX and Global Standardisation Marco Pellegrino Eurostat, Statistical Office of the European Union Bangkok,
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Architect Visual Studio.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
IBM Software Group ® Managing Reusable Assets Using Rational Suite Shimon Nir.
ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft.
Visual Studio Team System overview Pierre Greborio Software Architect – PEWay Microsoft MVP – Solutions Architect.
Visual Studio for Software Architects and Future Directions in Modeling Tools Jochen Seemann TLN311 Program Manager Microsoft Corporation.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools Jack Greenfield Architect Enterprise Tools Microsoft Corporation.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Packaging Design and Architecture Guidance for Visual Studio Tom Hollander Wojtek Kozaczynski Harry Pierson Microsoft.
A Web Service Software Factory Introduction Don Smith Product Manager patterns & practices.
Software Factories Steve Cook Architect Enterprise Tools, Visual Studio Microsoft Corporation.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Building Enterprise Applications Using Visual Studio®
CIM Modeling for E&U - (Short Version)
Software Factories - Today and Tomorrow
Enterprise Library Overview
Tech Ed 2004 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express.
DAT381 Team Development with SQL Server 2005
Jochen Seemann Program Manager Enterprise Tools Microsoft Corporation
Visual Studio 2010 SharePoint Development Tools Overview
Delivering great hardware solutions for Windows
Microsoft Office System UK Developers Conference
Mark Quirk Head of Technology Developer & Platform Group
Contexualized Data In Document Authoring
Presentation transcript:

EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture Software Factories Today

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

Intent Today

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

Applying Guidance Today: Developer filters 100s or 1000s of sources (blogs.msdn.com: posts by 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

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

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,

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

UIP: Sample Process

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

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

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?

Software Factory Schema schema schema

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

Software Architecture IEEE Architecture Description Standards

Software Architecture IEEE Architecture Description Standards

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

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

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

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

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

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

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

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

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

Tools for Architects demo demo

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

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

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

UIP: Sample Process

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

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

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)

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

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

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

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

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)

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

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

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

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

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

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

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