• Non ci sono risultati.

Software Product Lines (SPL)

N/A
N/A
Protected

Academic year: 2021

Condividi "Software Product Lines (SPL)"

Copied!
16
0
0

Testo completo

(1)

Software Product Lines (SPL)

Laboratorio di Ingegneria del Software Prof. Paolo Ciancarini

Dott. Sara Zuppiroli

A.A. 2010/2011

(2)

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

(3)

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 ...

(4)

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.

(5)

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

(6)

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.

(7)

Variability management

(8)

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.

(9)

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.

(10)

Esempio di un modello varianti nei requisiti

(11)

Esempio di un modello varianti nelle classi

(12)

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

(13)

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

(14)

Two life cycle

(15)

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

(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

Riferimenti

Documenti correlati

In a previous work, [27] an inter-comparison among PIXE analysis performed in Florence and ED-XRF results obtained in Milan and Genoa had been carried out on homogeneous 24-h

- Recovery (REC1) plants infected in the previous year (PCR negative) - Recovery 2 (REC2) plants infected two years before (PCR negative).. Well watered

dello statuto dell’impresa familiare a vantaggio del componente dell’unione civile che presti la propria attività lavorativa in famiglia o nell’impresa del partner,

Vengono inoltre riportate le indicazioni relative alle revoche ed alle limitazioni di impiego per le sostanze attive censite – campo NOTE per sostanze attive e campo DESCRIZIONE

Observed (expected) 95% CL limits on the T and B quark mass (GeV) assuming pair production of SU(2) singlet and doublet quarks, and using the dilepton and trilepton channels

High Energy Physics Institute, Tbilisi State University, Tbilisi, Georgia. 52 II Physikalisches Institut, Justus-Liebig-Universität Giessen, Giessen,

È importante sottolineare che le tec- niche di reverse engineering, originaria- mente pensate per i sistemi legacy, si sono rivelate estremamente utili anche in sup- porto

Le tec- niche descritte nell’articolo sono piuttosto ge- nerali e possono essere applicate a sistemi software scritti in linguaggi diversi e basati su tecnologie diverse, ma