Software Factories - Today and Tomorrow

Slides:



Advertisements
Similar presentations
Connected Health Framework
Advertisements

Chapter 3 E-Strategy.
Introduction to Product Family Engineering. 11 Oct 2002 Ver 2.0 ©Copyright 2002 Vortex System Concepts 2 Product Family Engineering Overview Project Engineering.
Domain Engineering Silvio Romero de Lemos Meira
Domain Engineering Arie van Deursen May Software Product Line  Group of products  sharing a common, managed set of features  to satisfy the.
Azad Madni Professor Director, SAE Program Viterbi School of Engineering Platform-based Engineering: Rapid, Risk-mitigated Development.
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.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Managing Projects
NON-FUNCTIONAL PROPERTIES IN SOFTWARE PRODUCT LINES: A FRAMEWORK FOR DEVELOPING QUALITY-CENTRIC SOFTWARE PRODUCTS May Mahdi Noorian
Domain-Specific Software Engineering Alex Adamec.
Enterprise Architecture
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.
Microsoft Dynamics Snap Michael McClary ISV Developer Evangelist Microsoft Corporation.
January 25, 2006copyright Thomas Pole , all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
Sigur Ecommerce Pvt. Ltd.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Rational Unified Process Fundamentals Module 5: Implementing RUP.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
HRL © 2009 IBM Corporation Model-Driven Product-Lines for Embedded Software and for Supply-Chain Companies Tali Yatzkar-Haham Julia Rubin,
© 2011 IBM Corporation Working Smarter Not Harder: Tips and Tricks for Strategic Asset Reuse Andy Gurd, Go to Market Manager IBM Software, Rational.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Rational Unified Process Fundamentals Module 7: Process for e-Business Development Rational Unified Process Fundamentals Module 7: Process for e-Business.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
3.3.1 IBM Almaden Services Research © Copyright IBM Corporation All rights reserved. 1 Considerations for the Use of Methods in Services Introduction.
Solution Supply Chains Jack Greenfield. Overview Learning from Other Industries Mass Customization in Software Development Implementing Supply Chains.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 5 Lecture # 4 – October 5, 2004.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 7: Dynamically Integrable Autonomously Executable Components and Text.
Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools Jack Greenfield Architect Enterprise Tools Microsoft Corporation.
Rational Unified Process Fundamentals Module 5: Implementing Rational Unified Process Rational Unified Process Fundamentals Module 5: Implementing Rational.
Software Factories Steve Cook Architect Enterprise Tools, Visual Studio Microsoft Corporation.
8 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
How Sage ERP X3 Systems Can Benefit Businesses.  Sage X3 is an affordable and flexible ERP solution designed to help mid-sized companies manage business.
Azure Stack Foundation
Operations and Supply Chain Strategies
Building Enterprise Applications Using Visual Studio®
ITIL: Service Transition
Chapter 33 Estimation for Software Projects
Integrating MBSE into a Multi-Disciplinary Engineering Environment A Software Engineering Perspective Mark Hoffman 20 June 2011 Copyright © 2011 by Lockheed.
CompSci 280 S Introduction to Software Development
CIM Modeling for E&U - (Short Version)
Microsoft Virtual Academy
Software Engineering (CSI 321)
Rapid Application Development Model
INTEGRATING THE SUPPLY CHAIN TO REAP THE REWARDS
Configuration Management with Azure Automation DSC
A Day In The Life of Extended CRM
An Introduction to Software Factories
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
ENTERPRISE BUSINESS SYSTEMS part II
Release Management with Visual Studio Team Services
Embedded Software (ESW) Engineering Practices Introduction
Chapter 33 Estimation for Software Projects
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
PLANNING A SECURE BASELINE INSTALLATION
Design Yaodong Bi.
Chapter 26 Estimation for Software Projects.
Hybrid Storage Direct proposal 6/8/ :37 AM
Software Development Process Using UML Recap
Open API and Open Architecture Working Group (OA2-WG) *DRAFT*
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

Software Factories - Today and Tomorrow

Then along came the recording, a commoditization of the pianist's art. Marx had a vision of the pianist as a performer who produced something that couldn't be commoditized. Then along came the recording, a commoditization of the pianist's art. John Markoff

We need to capture the “method” in the madness of software development Bad Stuff Happens We need to capture the “method” in the madness of software development

These are the things that can go wrong in when building software systems. Lots of roles and responsibilities and need to share an understanding of the artifacts/content produced. TechEd 2002

… a more elaborate (complex. ) view of the same thing … a more elaborate (complex!) view of the same thing. All these artifacts (specs, code, plans, designs, and yet more specs), the tools and process need to be easier to understand – “How do you get your arms around this? Where is the method in the madness?” TechEd 2002

Software Development as Craftsmanship Labor Intensive Generic Tools Generic Processes One off applications Hand stitched from scratch Minimal reuse Overruns, defects, security holes, project failures

Exploiting Commonality We already exploit economies of scale to automate production Stamping out many identical copies of a prototype Used to produce CDs/DVDs Does nothing to help development

Exploiting Commonality We can also exploit economies of scope Reuse designs & components Build many similar but distinct prototypes Key is supporting variability Define only the unique pieces of each system

General-purpose IDEs become domain-specific software factories Domain-specific process Domain-specific tools & languages Domain-specific content Automate rote and menial tasks We think the key to a breakthrough in software development methods and practices is to integrate these enabling technologies into a new a set of methods and practices, which we call software factories. A Software Factory is A development environment for a specific class of systems Software Factories consist of Domain-specific tools that automate rote and menial tasks to help teams deliver software solutions faster and at lower cost Domain-specific processes based on constraint not prescription to help organizations scale up without losing agility Domain-specific content, such as patterns and frameworks, tuned and proven for the target problem domains With Software Factories, organizations can Consolidate implicit business and system development knowledge as reusable assets Use those assets to increase productivity and predictability by automating more of the development process Reduce cost and risk by distributing the software life cycle across networks of interdependent software suppliers General-purpose IDEs become domain-specific software factories TechEd 2002

Software Product Lines Build new solutions by assembling partial solutions and/or configuring general ones Specify only the unique features of each solution and assume the common ones Variations in requirements map predictably to variations in artifacts and processes Reduce custom development by 40% to 80% for the typical solution TechEd 2002

Another Development Process Asset Development Tools, Process, Content creates uses Requirements, Defects uses creates Product Development Business creates uses Products It is hard to make a component reusable in arbitrary contexts Software product families enable systematic reuse Differentiate common and variable features A software product family may consist of either components or whole products Created by SIs, ISVs and IT organizations One off development revolves around one product Software product lines impose a planning horizon that spans multiple products One off development starts with requirements and finishes with product delivery Software product lines use two distinct but related processes, one to build reusable assets and one to apply them to build products One off development uses a job shop organization where developers build one off products by hand from scratch either on their own or in small teams Software product lines use a supply chain organization uses Requirements, Defects creates TechEd 2002

How Product Lines Form Variants of a system Mine assets from variants e.g. CRM system Mine assets from variants Adapt assets for new variants Customize and apply tools, process and content for each variant Assets {1,2} generalize System 3 Assets {1,2,3} adapt customize System 1 System 2 copy/paste System 4 customize System 5 Assets {1..5} adapt customize TechEd 2002

No decision regarding the mechanism for implementing variability! Feature Models OrderManagement mandatory feature optional feature alternative features OrderCapture Approval Fulfillment Payment Tax Invoice ShipmentCost Shipping ElectronicDelivery «implies» PayByBill Online Printed PackageTrackingNo PackageSlip PayOnDelivery CreditCard Talking points Feature models capture the commonality and variability among the members of a family FrequentFlyer No decision regarding the mechanism for implementing variability! Used by permission from Krzysztof Czarnecki TechEd 2002

Using A Feature Model OrderManagement OrderCapture Approval Fulfillment Payment Tax Invoice ShipmentCost Shipping ElectronicDelivery PayByBill Online Printed PackageTrackingNo PackageSlip PayOnDelivery CreditCard Talking points Feature models capture the commonality and variability among the members of a family FrequentFlyer Used by permission from Krzysztof Czarnecki TechEd 2002

Using A Feature Model OrderManagement OrderCapture Approval Fulfillment Payment Tax Invoice ShipmentCost Shipping ElectronicDelivery PayByBill Online Printed PackageTrackingNo PackageSlip PayOnDelivery CreditCard Talking points A configuration describes the features of a member of the family Configurations are created by configuring feature models Configuration can be performed progressively ElectronicCheck Used by permission from Krzysztof Czarnecki TechEd 2002

Using A Feature Model OrderManagement OrderCapture Approval Fulfillment Payment Tax Invoice ShipmentCost Shipping Online Printed PackageSlip CreditCard ElectronicCheck Used by permission from Krzysztof Czarnecki TechEd 2002

Industrializing Software Development Improve productivity and predictability across the software life cycle Make it easy to deliver a wide range of tailored solutions TechEd 2002

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