Software Product Lines (SPL) Laboratorio di Ingegneria del Software Prof. Paolo Ciancarini Dott. Sara Zuppiroli A.A. 2010/2011 Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 1 / 16
Perchè Software Product Lines Per migliorare l efficenza e la produttività rispondere in tempi brevi ai cambiamenti di mercato utilizzo di risorse limitate bassi costi di produzione (anche se alcuni studi hanno riscontrato che le SPL riduce i costi se il numero di prodotti è superiore a tre) bassi costi di manutenzione Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 2 / 16
Chi utilizza SPL Alcune aziende note che utilizzano SPL: Nokia che produce più di 20 nuovi cellulari l anno Philips Medical Systems Siemens Medical Solutions... Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 3 / 16
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. Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 4 / 16
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 Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 5 / 16
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. Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 6 / 16
Variability management Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 7 / 16
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. Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 8 / 16
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: Required: la selezione di una variante richiede la selezione di un altra variante. Excludes: la selezione di una variante impedisce la selezione di un altra variante. Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 9 / 16
Esempio di un modello varianti nei requisiti Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 10 / 16
Esempio di un modello varianti nelle classi Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 11 / 16
Approccio centrato sul Business Centrato sul Business significa che: la progettazione della linea di prodotto ha come punto fondamentale per prendere una decisione lo studio del mercato includere un nuovo requisito sul Core Asset o sul prodotto è una scelta che si basa su uno studio di business Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 12 / 16
Approccio centrato sull Architetture L architettura nelle SPL è un punto chiave perchè: ha lo scopo di fornire un quadro coerente delle diverse componenti che devono essere sviluppate addota interfacce generiche che possono essere utilizzate da tutti i diversi prodotti ogni prodotto in realtà è istanza dell Asset Comune Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 13 / 16
Two life cycle Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 14 / 16
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 Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 15 / 16
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 Lab di Ingegneria del Software () Software Product Lines (SPL) A.A. 2010/2011 16 / 16