Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools Jack Greenfield Architect Enterprise Tools Microsoft Corporation.

Slides:



Advertisements
Similar presentations
Data Modeling and Database Design Chapter 1: Database Systems: Architecture and Components.
Advertisements

Applying the SOA RA Utah Public Safety ESB Project Utah Department of Technology Services April 10, 2008 Prepared by Robert Woolley.
Building an Operational Enterprise Architecture and Service Oriented Architecture Best Practices Presented by: Ajay Budhraja Copyright 2006 Ajay Budhraja,
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Free Mini Course: Applying UML 2.0 with MagicDraw.
© 2004 Visible Systems Corporation. All rights reserved. 1 (800) 6VISIBLE Holistic View of the Enterprise Business Development Operations.
SOA with Progress Philipp Walther Consultant. © 2007 Progress Software Corporation2 Agenda  SOA  Enterprise Service Bus (ESB)  The Progress SOA Portfolio.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
02/12/00 E-Business Architecture
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
Introduction to Databases Transparencies
Tom Hollander Solution Architect Solutions Development Centre Microsoft Australia ARC308.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Enterprise Systems Organizations are finding benefits from using information systems to coordinate activities and decisions spanning multiple functional.
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.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
Boštjan Šumak dr. Marjan Heričko THE ROLE OF BIZTALK SERVER IN BUSINESS PROCESS INTEGRATION.
New Task Group CRIS Architecture & Development Maximilian Stempfhuber RWTH Aachen University Library
The Design Discipline.
UML - Development Process 1 Software Development Process Using UML (2)
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
An Introduction to Software Architecture
1 Tools for Commercial Component Assembly Francis Bordeleau, Zeligsoft/Carleton University Mark Vigder, National Research Council Canada.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
RUP Design RUP Artifacts and Deliverables
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
January 25, 2006copyright Thomas Pole , all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by.
OOI CI LCA REVIEW August 2010 Ocean Observatories Initiative OOI Cyberinfrastructure Architecture Overview Michael Meisinger Life Cycle Architecture Review.
File Systems and Databases Lecture 1. Files and Databases File: A collection of records or documents dealing with one organization, person, area or subject.
Modelling Class T16: Conceptual Modelling – Architecture Image from
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Lecture # 3 & 4 Chapter # 2 Database System Concepts and Architecture Muhammad Emran Database Systems 1.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Chapter 1 Introduction to Databases © Pearson Education Limited 1995, 2005.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Microsoft Australia Security Summit Design for Operations Nigel Watson, Microsoft Australia David Lemphers, TeamForce Nigel Watson, Microsoft Australia.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
1 Chapter 1 Introduction to Databases Transparencies.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
© 2013, published by Flat World Knowledge Chapter 10 Understanding Software: A Primer for Managers 10-1.
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.
Solution Supply Chains Jack Greenfield. Overview Learning from Other Industries Mass Customization in Software Development Implementing Supply Chains.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Software Factories Steve Cook Architect Enterprise Tools, Visual Studio Microsoft Corporation.
Review of last class Software Engineering Modeling Problem Solving
CIM Modeling for E&U - (Short Version)
OO Methodology OO Architecture.
Software Factories - Today and Tomorrow
An Introduction to Software Factories
Overview of System Engineering
Evaluating Compuware OptimalJ as an MDA tool
Analysis models and design models
An Introduction to Software Architecture
Lecture 1 File Systems and Databases.
Software Development Process Using UML Recap
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools Jack Greenfield Architect Enterprise Tools Microsoft Corporation

Scaling Up Software Development Global demand for software will increase dramatically Business processes, mobile devices, digital media, smart appliances, medical informatics Current methods and practices will not scale to this level Capacity limited by methods, tools, skilled labor pool Hand crafting from scratch using labor intensive methods Marginal productivity and quality gains in ten years

This Is A Recurring Problem The history of programming is an exercise in hierarchical abstraction. In each generation, language designers produce constructs for lessons learned in the previous generation, and then architects use them to build more complex and powerful abstractions. Smith and Stotts

Raising The Level Of Abstraction Configure, adapt and assemble components Identify patterns of component assembly Build frameworks that implement those patterns Use models to automate framework completion ComponentsPatternsModelsFrameworks

Application Specific Integrated Circuits (ASICs)

Value vs. Scope The value of an abstraction increases with its specificity to some problem domain. Michael Jackson Value Scope

What’s Holding Us Back? We cannot assemble products on a commercial scale Proprietary protocols prevent assembly across platform boundaries Weak specification and packaging cause architectural mismatch Static encapsulation makes component boundaries hard to change Component supplier relationships are immature We have not been able to move beyond 3 rd generation languages UML is adequate for sketching but not for MDD or execution Poor quality code generation and round trip engineering Metadata integration by architecture not interchange format We have not achieved commercially significant levels of reuse Most software products are developed as individuals in isolation Promotes ad hoc reuse and organizational dementia We cannot work consistently on schedule and within budget Prescriptive methods optimize for complexity not change Agile methods optimize for change not complexity

Can Software Be Industrialized? Software products are in some respects like tangible products of conventional engineering disciplines such as bridges, buildings and computers. But there are also certain important differences that give software development a unique flavor. Peter Wegner

Economies of Scale and Scope

Keys To A New Paradigm Build families of unique variants via systematic reuse Using software product line practices Rapidly assemble self describing service components Using variable encapsulation and orchestration Make it easy to develop DSLs and tools that use them Using meta development tools and frameworks Maintain agility on large, dispersed, long projects Using process frameworks, CBS and active guidance Distribute cost and risk across software supply chains By standardizing consumer supplier interaction mechanisms Satisfy varying requirements via mass customization By improving value chain integration within suppliers

Systematic Reuse The software industry has a long history of recreating incompatible solutions to problems that are already solved Patterns of Software Architecture, Volume 2

Product Line Engineering Product Engineering Product Line Requirements Production Assets Product Line Members usesbuilds builds usesbuilds Software Product Lines

Variability Mechanisms

Domain Specific Languages The good thing about bubbles and arrows, as opposed to programs, is that they never crash. Bertrand Meyer

Framework Completion

Composition Mechanisms

Variable Encapsulation Provided Interface Ports Service Component Required Interface Ports Interface Implementation Proxies On-Line Commerce Order Manager Component Functional Implementation Order Management Order Manager Order OrderLine Item Customer Address 1 AddOneOrder(in OrderForm, …) ChangeOneOrder(in OrderForm,…) GetOneOrder(in orderID, out OderForm) RetrieveOrderSet(…, out OrderFormSet) UpdateOrderSet(in OrderFormSet, …) Component Aspectual Implementation

Assembly by Orchestration

Architecture Driven Development Interface design and functional factoring constitute the key intellectual content of software and are far more difficult to create or recreate than code. Peter Deutsch

 Use Cases And Scenarios  Business Goals And Objectives  Business Entities And Relationships  Business Processes  Service Factoring  Service Distribution  Quality Of Service Strategy  Workflow Models  Role Definitions  Message Schemas And Document Specifications  Service Interactions  Service Definitions  Object Models  Logical Server Types  Service Mappings  Process Specification  Database Schemas  Data Access Strategy  Detailed Design  Technology Dependent Design  Physical Servers  Software Installed  Network Layout Conceptual Logical BusinessInformationApplicationTechnology Physical A Recipe For Software

Utility Services Utility Services Functional FunctionalConfiguration Business Processes Business Processes Non-functional Non-functionalConfiguration Business Entities Business Entities Abstraction & Refinement Refinement Product Architecture Product Architecture Portal Services Portal Services Business Entity Services Business Entity Services Abstraction & Refinement Refinement Logical Logical Server Types Host Host Software Settings Abstraction & Refinement Refinement EXECUTION ARCHITECTURE INFRASTRUCTURE ARCHITECTURE EXECUTABLE ARTIFACTS REQUIREMENTS ARCHITECTURE PHYSICAL DATACENTER Abstraction & Refinement Refinement CONSTRAINTS TRANSFORMATION / RECONCILIATION MAP TO HARDWARE TRANSFORMATION / RECONCILIATION DEPLOYMENT Business Business Process Services SQL DDL and DML Files SQL DDL and DML Files XML Schemas and Files XML Schemas and Files Assemblies Assemblies Other Artifacts Other Artifacts CRM DEPLOYMENT UNIT eSales DEPLOYMENT UNIT … Assemblies Assemblies Other Artifacts Other Artifacts XML Schemas and Files XML Schemas and Files SQL DDL and DML Files SQL DDL and DML Files A Software Schema

A Software Factory

PartsBlueprintsAssemblySpecs ComponentsPatterns Software Supply Chain ModelsFrameworks Software Schema 9 IDE Software Template 8 10 Software Factory Software Factory Software Factory PLs 5