Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Factories - Today and Tomorrow

Similar presentations


Presentation on theme: "Software Factories - Today and Tomorrow"— Presentation transcript:

1 Software Factories - Today and Tomorrow

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18 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

19 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

20 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

21 … 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

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

32 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

33 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

34 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


Download ppt "Software Factories - Today and Tomorrow"

Similar presentations


Ads by Google