Software Product Line Essentials

Transcription

Software Product LinesEssentialsLinda NorthropSoftware Engineering InstituteCarnegie Mellon UniversityPittsburgh, PA 15213-2612 2008 Carnegie Mellon University

NO WARRANTYTHIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTEMATERIAL IS FURNISHED ON AN “AS-IS" BASIS. CARNEGIE MELLON UNIVERSITYMAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TOANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FORPURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROMUSE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANYWARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT,TRADEMARK, OR COPYRIGHT INFRINGEMENT.Use of any trademarks in this presentation is not intended in any way to infringe on therights of the trademark holder.This Presentation may be reproduced in its entirety, without modification, and freelydistributed in written or electronic form without requesting formal permission. Permissionis required for any other use. Requests for permission should be directed to the SoftwareEngineering Institute at permission@sei.cmu.edu.This work was created in the performance of Federal Government Contract NumberFA8721-05-C-0003 with Carnegie Mellon University for the operation of the SoftwareEngineering Institute, a federally funded research and development center. TheGovernment of the United States has a royalty-free government-purpose license to use,duplicate, or disclose the work, in whole or in part and in any manner, and to have orpermit others to do so, for government purposes pursuant to the copyright license underthe clause at 252.227-7013.Software Product LinesLinda Northrop 2008 Carnegie Mellon University2

Today’s SessionIntroductionProduct Line Concepts What Why HowConclusionSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University3

Business Success Requires Software ProwessSoftware pervades every sector.Software has become the bottom line for many organizations, eventhose who never envisioned themselves in the software business.Software Product LinesLinda Northrop 2008 Carnegie Mellon University4

Universal Business GoalsHigh qualityQuick time to marketMarket dominanceMarket agilityProduct alignmentLow cost Low cost maintenanceMass customizationSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University5

Software (System) StrategiesProcess improvementTechnology innovationReuseSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University6

Few Systems Are UniqueMost organizations produce families of similar systems,differentiated by features.A reuse strategy makes sense.Traditional reuse strategies have had little economic benefit.Software Product LinesLinda Northrop 2008 Carnegie Mellon University7

Reuse 0sCOMPONENTSFocus was small-grained, opportunistic, and technology-driven.Results did not meet business goals.Software Product LinesLinda Northrop 2008 Carnegie Mellon University8

Reuse 0sCOMPONENTS2000sSERVICESSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University9

Strategic Reuse is Needed for Business BenefitsBUSINESS STRATEGYSTRATEGICREUSETECHNICAL STRATEGYSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University10

Celsiustech: Ship System 2000A family of 55 ship systems Need for developers dropped from210 to roughly 30. Time to field decreased from about9 years to about 3 years. Integration test of 1-1.5 million SLOCrequires 1-2 people. Rehosting to a new platform/OStakes 3 months. Cost and schedule targets arepredictably met.Software Product LinesLinda Northrop 2008 Carnegie Mellon University11

Cummins Inc.: Diesel Control SystemsOver 20 product groups with over1,000 separate engine applications Product cycle time was slashed from250 person-months to a fewperson-months. Build and integration timewas reduced from one yearto one week. Quality goals are exceeded. Customer satisfaction is high. Product schedules are met.Software Product LinesLinda Northrop 2008 Carnegie Mellon University12

National Reconnaissance Office/ Raytheon:Control Channel ToolkitGround-based spacecraft commandand control systems First system had 10 times fewerdefects than usual. The incremental build time wasreduced from months to weeks. The system development time andcosts decreased by 50%. There was decreased product risk.Software Product LinesLinda Northrop 2008 Carnegie Mellon University13

Market Maker GMBH: MergerInternet-based stock market software Each product is “uniquely”configured. Putting up a customized systemtakes three days.Software Product LinesLinda Northrop 2008 Carnegie Mellon University14

Nokia Mobile PhonesProduct lines with 25-30 new productsper year versus 5 per year originally.Across products there are varying number of keys varying display sizes varying sets of features 58 languages supported 130 countries served multiple protocols needs for backwards compatibility configurable features needs for product behavior change after releaseSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University15

How Did They Do It?SOFTWAREPRODUCTLINESSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University16

Reuse History:From Ad Hoc To 1990s2000sCOMPONENTS SERVICESSOFTWAREPRODUCTLINESSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University17

Today’s SessionIntroductionProduct Line Concepts What Why HowConclusionSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University18

What Is A Software Product Line?A software product line is a set of software-intensive systems sharing acommon, managed set of features that satisfy the specific needs of aparticular market segment or mission and that are developed from acommon set of core assets in a prescribed way. a new application of a proven concept an innovative, growing concept in software engineeringSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University19

Software Product Linespertain toBUSINESS GOALS/APPLICATION DOMAINis satisfied byPRODUCTSPRODUCTSshare anARCHITECTUREused to structureare built fromCOMPONENTSand SERVICESCOREASSETSProduct lines take economic advantage of commonality bound variationSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University20

How Do Product Lines Help?Product lines amortize the investmentin these and other core assets: requirements and requirements analysis domain model software architecture and designTOTAL performance engineeringLIFE CYCLE documentationREUSE test plans, test cases, and test data people: their knowledge and skills processes, methods, and tools budgets, schedules, and work plans components and servicesMOREBENEFITPRODUCT LINES STRATEGIC REUSESoftware Product LinesLinda Northrop 2008 Carnegie Mellon University21

The Key ConceptsUse of a coreasset basein productionof a relatedset of productsSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University22

The Key ConceptsUse of a coreasset baseArchitecturein productionProduction Planof a relatedset of productsScope DefinitionBusiness CaseSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University23

Software Product Lines Are NotClone and own: single-system development with reuse modifying code as necessary for the single system onlyFortuitous small-grained reuse reuse libraries containing algorithms, modules, objects, or componentsJust component-based or service-based development selecting components or services from an in-house library, themarketplace, or the Web with no architecture focusJust versions of a single product rather, simultaneous release and support of multiple productsJust a configurable architecture a good start, but only part of the reuse potentialJust a set of technical standards constraining choices without an architecture-based reuse strategySoftware Product LinesLinda Northrop 2008 Carnegie Mellon University24

Software Product Lines AreSoftware product lines involve strategic, planned reuse that yieldspredictable results.Software Product LinesLinda Northrop 2008 Carnegie Mellon University25

Widespread Use of Software Product LinesSuccessful software product lines have been built for families ofamong other things mobile phones billing systems command and control ship systems web-based retail systems satellite ground station systems printers avionics systems consumer electronic products command and control/situationawareness systems acquisition managemententerprise systems pagers financial and tax systems engine control systems medical devices mass storage devices farm fish management softwareSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University26

Specific Examples - 1Asea Brown BoveriFeed control and farmmanagement softwareGas turbines, train control,semantic graphics frameworkInternet payment gatewayinfrastructure productsBold Stroke AvionicsComputer printer servers,storage servers, networkcamera and scanner serversCustomized solutions fortransportation industriesE-COM Technology Ltd.Medical imaging workstationsAXE family oftelecommunications switchesFirmware for computerperipheralsElevator control systems5ESS telecommunicationsswitchMobile phones, mobile browsers,telecom products for public, private andcellular networksSoftware for engines,transmissions andcontrollersRAID controller firmwarefor disk storage unitsInterferometer product lineSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University27

Specific Examples - 2High-end televisions,PKI telecommunications switchingsystem, diagnostic imaging equipmentCommercial flight control system avionics,Common Army Avionics System (CAAS),U.S. Army helicoptersEPOC operating systemOffice appliancesRevenue acquisitionmanagement systemsAutomotive gasolinesystemsSoftware for viewing andquantifying radiological imagesClimate and flue gasmeasurement devicesIndustrial supervisory controland business processmanagement systemsSupport softwareCommand andcontrol simulator forArmy fire supportTest range facilitiesPagers product lineSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University28

Today’s SessionIntroductionProduct Line Concepts What Why HowConclusionSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University29

Real World MotivationOrganizations use product line practices to: achieve large scale productivity gains improve time to market maintain market presence sustain unprecedented growth achieve greater market agility compensate for an inability to hire enable mass customization get control of diverse product configurations improve product quality increase customer satisfaction increase predictability of cost, schedule, and qualitySoftware Product LinesLinda Northrop 2008 Carnegie Mellon University30

Example Organizational BenefitsImproved productivity by as much as 10xIncreased quality by as much as 10xDecreased cost by as much as 60%Decreased labor needs by as much as 87%Decreased time to market (to field, to launch.) by as much as 98%Ability to move into new markets in months, not yearsNote: Each of the above is based on an individual, documented product line effort.Software Product LinesLinda Northrop 2008 Carnegie Mellon University31

Costs Of A Software Product LineCore AssetsCostsArchitectureMust support variation inherent in the product lineSoftware ComponentsMust be designed to be general without a loss ofperformance; must build in support for variation pointsTest Plans, Test Cases,Test DataMust consider variation points and multiple instances of theproduct lineBusiness Case andMarket AnalysisMust address a family of software products, not just oneproductProject PlansMust be generic or be made extensible to accommodateproduct variationsTools and ProcessesMust be more robustPeople, Skills, TrainingMust involve training and expertise centered around theassets and procedures associated with the product lineSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University32

Economics Of Product LinesCumulative CostsCurrent PracticeWith Product LineApproachNumbers of ProductsWeiss. D.M. & and Lai, C.T.R.Software Product-Line Engineering: A Family-Based Software Development ProcessReading, MA: Addison-Wesley, 1999.Software Product LinesLinda Northrop 2008 Carnegie Mellon University33

Economics Of Product LinesCumulative CostsCurrent PracticePAYOFF POINTWith Product LineApproachNumbers of ProductsWeiss. D.M. & and Lai, C.T.R.Software Product-Line Engineering: A Family-Based Software Development ProcessReading, MA: Addison-Wesley, 1999.Software Product LinesLinda Northrop 2008 Carnegie Mellon University34

Today’s SessionIntroductionProduct Line Concepts What Why HowConclusionSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University35

Necessary ChangesArchitectureThe product line architecture is central to success.Software Product LinesLinda Northrop 2008 Carnegie Mellon University36

Why Is Software Architecture Important?Represents earliestdesign decisions hardest to change most critical to get right communication vehicleamong stakeholdersFirst design artifactaddressing performance modifiability reliability securityKey to systematic reuse transferable,reusable abstractionThe right architecture paves the way for system success.The wrong architecture usually spells some form of disaster.Software Product LinesLinda Northrop 2008 Carnegie Mellon University37

Product Line PracticeContexts for product lines vary widely, based on nature of products nature of market or mission business goals organizational infrastructureBut there areuniversal essentialactivities and practices. workforce distribution process discipline artifact maturitySoftware Product LinesLinda Northrop 2008 Carnegie Mellon University38

The SEI Framework forSoftware Product Line PracticeSMThe SEI Framework for Software Product Line Practice is a conceptualframework that describes the essential activities and twenty-ninepractice areas necessary for successful software product lines.The Framework, originally conceived in 1998, is evolving based on theexperience and information provided by the community.Version 4.0 –in Software Product Lines: Practices and PatternsVersion 5.0 tmlSMFramework for Software Product Line Practice is a service mark ofCarnegie Mellon University.Software Product LinesLinda Northrop 2008 Carnegie Mellon University39

SEI Information SourcesCase studies, experiencereports, and surveysApplied researchWorkshopsand conferencesCollaborationswith customers onactual product linesSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University40

The Three Essential ActivitiesCore re Product LinesLinda Northrop 2008 Carnegie Mellon University41

Core Asset DevelopmentProduct Line ScopeProduct ConstraintsProduction ConstraintsProduction StrategyPreexisting AssetsCore Asset BaseCore AssetDevelopmentProduction PlanManagementSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University42

Attached ProcessesAttachedProcessCore AssetsCore Asset BaseCore AssetDevelopmentProduction PlanManagementSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University43

Product Line Production PlanProduction PlanProduction ProcessProduct ConstraintsProduction ConstraintsProduction StrategyProductionMethodProject DetailsSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University44

Product DevelopmentProduct DescriptionProductDevelopmentProduct Line ScopeProductsFeedbackCore Asset BaseNew AssetsProduct ConstraintsProduction PlanManagementSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University45

ManagementCore re Product LinesLinda Northrop 2008 Carnegie Mellon University46

ManagementManagement at multiple levels plays a critical role in the successfulproduct line practice by achieving the right organizational structure allocating resources coordinating and supervising providing training rewarding employees appropriately developing and communicating an acquisition strategy managing external interfaces creating and implementing a product line adoption plan launching and institutionalizing the approach in a manner appropriateto the organizationSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University47

Managing A Software Product LineRequires LeadershipA key role for software product line management is that of champion.A champion must set and maintain the vision ensure that the appropriate goals and measures are in place “sell” the product line up and down the chain sustain morale deflect potential derailments solicit feedback and continuously improve the approachSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University48

Essential Product Line ActivitiesCore AssetDevelopmentProductDevelopmentManagementEach of these is essential, as is the blending of all three.Software Product LinesLinda Northrop 2008 Carnegie Mellon University49

Different Approaches - 1Proactive: Develop the core assets first. Develop the scope first and use it as a “mission” statement. Products come to market quickly with minimum code writing. Requires upfront investment and predictive knowledgeReactive: Start with one or more products. From them, generate the product line core assets and then futureproducts; the scope evolves more dramatically. Much lower cost of entry The architecture and other core assets must be robust, extensible,and appropriate to future product line needs.Software Product LinesLinda Northrop 2008 Carnegie Mellon University50

Different Approaches - 2Incremental: In either a reactive or proactive approach, it is possible todevelop the core asset base in stages, while planning from thebeginning to develop a product line. Develop part of the core asset base, including the architecture andsome of the components. Develop one or more products. Develop part of the rest of the core asset base. Develop more products. Evolve more of the core asset base. Software Product LinesLinda Northrop 2008 Carnegie Mellon University51

Alternate TerminologyOur TerminologyAlternate TerminologyProduct LineProduct FamilySoftware Core AssetsPlatformBusiness UnitProduct LineProductCustomizationCore Asset DevelopmentDomain EngineeringProduct DevelopmentApplication EngineeringSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University52

Driving The Essential ActivitiesBeneath the level of the essential activities are essentialpractices that fall into practice areas.A practice area is a body of work or a collection of activitiesthat an organization must master to successfully carry outthe essential work of a product line.Software Product LinesLinda Northrop 2008 Carnegie Mellon University53

Practice Area DescriptionsEach practice area is described with an introductory description aspects that are peculiar to product lines its application to core asset development its application to product development example practices associated risks further readingSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University54

Three Categories Of Practice AreasOrganizationalManagement PracticeAreasTechnicalManagementPractice AreasEnable and orchestrateSoftwareEngineeringPractice AreasManage and supportSoftware Product LinesLinda Northrop 2008 Carnegie Mellon University55

ProductDevelopmentCore mentPRACTICE AREASSoftware EngineeringTechnical ManagementOrganizational ManagementArchit

5ESS telecommunications switch Interferometer product line Mobile phones, mobile browsers, telecom products for public, private and cellular networks. 28 . Must involve training and expertise centered around the assets and procedures associated with t