Metoder för utveckling av produktlinjer Magnus Eriksson, PhD Senior systemingenjör
Bakgrunden till programvaruproduktlinjer Sedan 60:talet har effektiv återanvändning efterstävats Svårt att lyckas, småskalig tillämpning har givit små kostnadsbesparingar (0-5%) Det senaste decenniet har det vuxit fram en fram en ny och framgångsrik metod för återanvändning av programvara Tillverkningsindustri - Lean Production, Mass Customization, Etc. Programvarutveckling - Software Product Lines - Tar idéerna ett steg längre - Mer formell hantering nödvändig eftersom det är svårt att garantera utbytbarhet för programvarukomponenter. 2
Några kända produktlinjeorganisationer ABB (industrirobotar) BMW (personbilar) Boeing (militärt flyg) Cummins (styrenheter till dieselmotorer) General Motors (styrsystem för drivlinor) HP (skrivardrivrutiner) Lucent Technologies (telefonväxlar) Nokia (mobiltelefoner) Philips (telefonväxlar & TV-mottagare) Sony-Ericsson (mobiltelefoner) 3
Essensen av produktlinjeutveckling (1/2) Eliminera allt dubbelarbete med hjälp av storskalig återanvändning Allt dyrt utvecklas för att (åter)användas i flera produkter: Krav, funktionella beskrivningar, arkitektur, komponenter, testfall, projektplaner, etc. Produktlinje/Produktfamilj En uppsättning likartade produkter som riktar sig till ett specifikt marknadssegment En förändring i synsätt Fokusera på att utveckla produktfamiljer Gå från att utveckla till förvalta 4
Essensen av produktlinjeutveckling (2/2) Varianthantering Definiera explicit tillåtna skillnader mellan produkter i produktfamiljen Ha kontroll över skillnaderna för att kunna maximera utnyttjandet av likheterna. Designa för förändring Definiera rätt omfattning För stort, plattformen blir för generell och därmed dyr och oanvändbar För litet, organisation utnyttjar inte plattformen optimalt Produkt C Produkt A Produktplattform Produkt D Produkt B 5
En referensprocess för produktlinjeutveckling Produktstrategi Ingående produkter Expertis Arv Analysera marknadssegment Referenskrav Produktplattform Utveckla marknadssegment Utveckla produktlinjearkitektur Feedback från produktutveckling Implementera plattformskomponenter Krav Spårbarhet Arkitektur Spårbarhet Komponenter Nya produktkrav Hantera produktkrav Utveckla produktarkitektur Implementera produkt Utveckla produkt 6
Behov av arkitekturvy för att hantera skillnader Modell över de beslut som måste tas när en produkt ska utvecklas inom en specifik produktfamilj Verksamhetens regler De olika intressenternas behov Tekniska begränsningar Produktegenskaper Obligatoriska Valfria Motstridigheter Beroenden 7
Feature Modeling Ett (trivialt) exempel Obligatoriska features Bilar Valfria features Växellåda Motor Luftkonditionering Taklucka S Manuell S Automat Alternativa features Kompletterande regler: Luftkonditionering är är ömsesidigt uteslutande med med Taklucka 8
Tillämpning hos Hägglunds Produktlinjer på olika systemnivåer Återanvändning inom produktfamilj SEP Strf 90 Systemnivå Delsystemsnivå Vehicle Information System Diagnostic Information System Vehicle Control System Återanvändning mellan produktfamiljer 9
Sammanfattning Best practice inom civila tillämpningar anpassat till våra förutsättningar Domänexpertis Förstå marknadssegmentet (olika behov hos olika kunder) Förstå tekniken Identifiera nödvändiga skillnader mellan produktvarianter Definiera en långlivad produktlinjearkitektur Kapslar in nödvändiga skillnader mellan varianter bakom stabila gränsytor Kapslar in osäkerhet bakom stabila gränsytor Maximerar utnyttjandet av likheterna mellan varianterna 10