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

Slides:



Advertisements
Similar presentations
Connected Health Framework
Advertisements

COB.NET R2 Program - 02 June 2014 Guidance Automation Toolkit VISUG 09/08/2006 Jelle Druyts
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Implementing Autodesk Inventor in Your Company MA405-1
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)
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
Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.
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.
Accelerate your SaaS Integration The Cloud Adapter SDK Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Object Oriented Analysis and Design Using the UML
Tools for Architects and Future Directions in Modeling Beat Schwegler Architect, Enterprise Team Microsoft EMEA D&PE blogs.msdn.com/beatsch Arvindra Sehmi.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
UML - Development Process 1 Software Development Process Using UML (2)
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 6 Lecture # 5 – October 12, 2004.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
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.
Copyright © IBM Corp., All rights reserved; made available under the EPL v1.0 | March 20, 2008 | Short Talk Standards based systems management: An.
© 2007 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Eclipse SOA Tools Platform Project Eric Newcomer IONA Technologies.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Domain-Specific Development Stuart Kent, Senior Program Manager, DSL Tools, Visual Studio Team System, Microsoft.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Rational Unified Process Fundamentals Module 5: Implementing RUP.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
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.
Systems Analysis and Design in a Changing World, Fourth Edition
Microsoft Australia Security Summit Design for Operations Nigel Watson, Microsoft Australia David Lemphers, TeamForce Nigel Watson, Microsoft Australia.
November 25, 2015 © IBM Corporation Unified Method Framework (UMF) RMC Reference Architecture Overview Kelli Houston
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.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with IBM Rational Software Architect, V7.5 Module 18: Applying Patterns and Transformations.
PI2134 Software Engineering IT Telkom.  Layered technology  Software Process  Generic Process (by Pressman)  Fundamental activities (by Sommerville)
Basic Concepts and Definitions
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
Workflow in Microsoft Office SharePoint Server Jessica Gruber Consultant Microsoft Corporation.
Packaging Design and Architecture Guidance for Visual Studio Tom Hollander Wojtek Kozaczynski Harry Pierson Microsoft.
Enterprise Architectures. Core Concepts Key Learning Points: This chapter will help you to answer the following questions: What are the ADM phase names.
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Software Factories Steve Cook Architect Enterprise Tools, Visual Studio Microsoft Corporation.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Process 4 Hours.
Building Enterprise Applications Using Visual Studio®
OO Methodology OO Architecture.
Software Factories - Today and Tomorrow
An Introduction to Software Factories
Welcome to GDC’05 Riyadh, Saudi Arabia
Modeling & Messaging for Connected Systems
Jochen Seemann Program Manager Enterprise Tools Microsoft Corporation
Mark Quirk Head of Technology Developer & Platform Group
Logical Architecture & UML Package Diagrams
Presentation transcript:

EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture Defining and Building a Software Factory

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

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

How to build a Software Factory Vision Vision

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

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

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)

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

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

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

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

How it was built GAT4WS GAT4WS

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

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

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

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

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

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

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

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

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

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

Creating a Guidance Package

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

Adding an Action

Creating an Unbound Recipe

Execute an Unbound Recipe

Bind a Recipe

Execute a Bound Recipe

GAT demo demo

How it was built DSL for UIP DSL for UIP

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

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

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

Controller implements Page Flow

Views "offer" their State

Views call the Controller

Configuration Defines Flow

Defining the Abstract Syntax

Defining the Concrete Syntax

Transformations Configuration File Controller Page classes Wizard-related page classes

Creating a DSL from scratch...

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

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

Grammar Focused

User Focused (Use Case)

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?

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?

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

Closing Notes Closing Notes

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

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

Q & A Q & A

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