Software Product Lines (SPL)
Laboratorio di Ingegneria del Software Prof. Paolo Ciancarini
Dott. Sara Zuppiroli
A.A. 2010/2011
Perchè Software Product Lines
Per migliorare l’efficenza e la produttività
I rispondere in tempi brevi ai cambiamenti di mercato
I utilizzo di risorse limitate
I bassi costi di produzione (anche se alcuni studi hanno
riscontrato che le SPL riduce i costi se il numero di prodotti è superiore a tre)
I bassi costi di manutenzione
Chi utilizza SPL
Alcune aziende note che utilizzano SPL:
I Nokia che produce più di 20 nuovi cellulari l’anno
I Philips Medical Systems
I Siemens Medical Solutions
I ...
Definizione di SPL
Una Software Product Lines è un insieme di sistemi software che condividono una parte comune (Common) e un insieme di funzionalità (Feature è un requisito astratto) che soddisfano specifici segmenti di mercato e che sono sviluppati da un insieme comune di Core Asset in un modo prestabilito.
Fondamenti del metodo di Ingegneria delle SPL
Quando si produce per linee di prodotto si ha come obiettivo il soddisfacimento di un bisogno legato a un particolare
segmento di mercato individuato a priori (Business)
Il Domain Engineering si studia la parte di dominio della
linea di prodotto mantenendo tenendo conto delle variazioni che si possono assumere per i bisogni specifici di un
determinato mercato
L’Application Engineering studia le particolarità leagate al singolo prodotto
Principi dell’Ingegneria delle SPL
I princi fondamentali dell’ingegneria per le SPL sono di seguito elencati:
Variability management: i prodotti individuali sono
considerati come una variante della parte comune. Queste diversità si rende esplicita e deve essere sistematicamente organizzata
Business-centric: l’ingegneria delle SPL ha come obiettivo di fondo di collegare la progettazione della linea di prodotto con una strategia di business a lungo termine.
Architecture-centric: l’architettura del software deve essere sviluppata in modo tale da permettere di cogliere le parti simili tra i singoli sistemi.
Two-life-cycle approach: I singoli sistemi sono sviluppati basandosi su una piattaforma software. Questi prodotti devono avere un loro individuale cilco di vita, come la piattaforma.
Variability management
Definizioni di Variability Management (1/2)
Variation point :il punto di variazione descrive dove esistono nella linea di prodotto differenze dal core asset al singolo prodotto finale.
Variant : le differenti possibilità che esistono per soddisfare un punto di varianzione.
Definizioni di Variability Management (2/2)
Variability dependencies: sono utilizzate come base per indicare le diverse scelte (varianti) che sono possibili per punti di variazione. La notazione include anche una
cardinalità che determina il numero di varianti possono essere selezionate contemporaneamente.
Constraint dependencies: descrivono le dipendenze tra le varianti scelte. Possono essere di due forme:
I Required: la selezione di una variante richiede la selezione di un’altra variante.
I Excludes: la selezione di una variante impedisce la selezione di un’altra variante.
Esempio di un modello varianti nei requisiti
Esempio di un modello varianti nelle classi
Approccio centrato sul Business
Centrato sul Business significa che:
I la progettazione della linea di prodotto ha come punto fondamentale per prendere una decisione lo studio del mercato
I includere un nuovo requisito sul Core Asset o sul prodotto è una scelta che si basa su uno studio di business
Approccio centrato sull’Architetture
L’architettura nelle SPL è un punto chiave perchè:
I ha lo scopo di fornire un quadro coerente delle diverse componenti che devono essere sviluppate
I addota interfacce generiche che possono essere utilizzate da tutti i diversi prodotti
I ogni prodotto in realtà è istanza dell’Asset Comune
Two life cycle
Un esempio
Un esempio classico è quella della progettazione di una macchina del caffè:
individuiamo i bisogni specifici di segmenti di mercato individuiamo i possibili punti di variazione
individuiamo quindi le possibili varianti
costruiamo l’albero dei punti di variazione
Concludendo
Le SPL hanno come obiettivo:
necessita di un’efficiente gestione di varibilità
la soddisfazione a lungo termine di un segmento di mercato si basano su uno studio di un’architettura di base che possa essere configurata a seconda dei bisogni specifici del
cliente
vede al suo interno due cicli di vita ben precisi