Progettazione di una struttura di prodotto a moduli
Molti prodotti presentano diversi sottosistemi con propri insiemi di elementi opzionali. In alcuni casi, le opzioni per ogni sottosistema vengono elaborate in modo indipendente dal sistema in una progressione logica. In altri casi, tuttavia, potrebbe essere necessario che le selezioni effettuate in un sottosistema influiscano sulle opzioni disponibili in altri sottosistemi.
Si consideri, ad esempio, un espositore di metallo disponibile in diversi modelli con varie opzioni di esposizione, rifilo e illuminazione. A seconda del modello di espositore selezionato, le opzioni disponibili per esposizione, rifilo e illuminazione possono cambiare.
Per una struttura di prodotto semplice con pochi moduli e un insieme limitato di opzioni, è relativamente semplice creare e testare una struttura di prodotto configurabile appropriata. Se la struttura di prodotto, invece, presenta cinque moduli, ciascuno con sei possibili opzioni tra cui scegliere, il numero totale di permutazioni (in questo caso 5 x 6 o 30) può essere enorme.
L'approccio consigliato consiste nell'organizzare la struttura di prodotto del modulo in moduli configurabili, come illustrato nella figura seguente:
In questo esempio, si supponga che l'espositore sia disponibile in cinque diversi modelli, da Model_01 a Model_05, e che alcune opzioni siano applicabili solo a determinati modelli, come illustrato nella tabella seguente:
Modello Display Case | Trim Options | Lighting Options | Display Options |
Model_01 | Twin Standard | Single Double | Shelf, Ventilated Shelf, Solid |
Model_02 | Standard Deluxe | Double, Triple | Shelf, Ventilated Shelf, Solid |
Model_03 | Twin Standard Deluxe | Single Double Triple | Shelf, Ventilated Rack |
Model_04 | Twin Standard Deluxe | Single Double Triple | Shelf, Ventilated Shelf, Solid Rack |
Model_05 | Twin Standard Deluxe | Single Double Triple | Shelf, Ventilated Shelf, Solid Rack |
Il passo successivo consiste nel definire gli elementi logici appropriati in modo modulare affinché ciascun modulo di opzione possa essere testato indipendentemente e quindi integrato nella struttura di prodotto completa. Si consideri, ad esempio, la logica per il modulo Trim Options. Questo modulo richiede quattro parametri, come descritto di seguito.
askModel
• Stringa, parametro di input
• Prompt = "(TRIM OPTIONS) Select the desired display case model"
• Vincolo: "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
• "hide when driven" = true
useStandard
• Parametro booleano non di input
• Aggiunto all'Opzione inclusione nella scheda Componenti del modulo configurabile Display Case per la parte Bumper, Standard
useTwin
• Parametro booleano non di input
• Aggiunto all'Opzione inclusione nella scheda Componenti del modulo configurabile Display Case per la parte Bumper, Twin
useDeluxe
• Parametro booleano non di input
• Aggiunto all'Opzione inclusione nella scheda Componenti del modulo configurabile Display Case per la parte Bumper, Deluxe
Successivamente, è necessaria una tabella casi, ad esempio pickTrim, per controllare l'applicabilità delle opzioni di rifilo per ciascun modello di espositore, come illustrato nella tabella seguente:
Modello Display Case | Trim Options | Lighting Options | Display Options |
Model_03 | TwinStandardDeluxe | SingleDoubleTriple | Shelf, Ventilated Rack |
Model_04 | TwinStandardDeluxe | SingleDoubleTriple | Shelf, Ventilated Shelf, Solid Rack |
Model_05 | TwinStandardDeluxe | SingleDoubleTriple | Shelf, Ventilated Shelf, Solid Rack |
Il passo successivo consiste nel definire gli elementi logici appropriati in modo modulare affinché ciascun modulo di opzione possa essere testato indipendentemente e quindi integrato nella struttura di prodotto completa. Si consideri, ad esempio, la logica per il modulo Trim Options. Questo modulo richiede quattro parametri, come descritto di seguito.
askModel
• Stringa, parametro di input
• Prompt = "(TRIM OPTIONS) Select the desired display case model"
• Vincolo: "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
• "hide when driven" = true
useStandard
• Parametro booleano non di input
• Aggiunto all'Opzione inclusione nella scheda Componenti del modulo configurabile Display Case per la parte Bumper, Standard
useTwin
• Parametro booleano non di input
• Aggiunto all'Opzione inclusione nella scheda Componenti del modulo configurabile Display Case per la parte Bumper, Twin
useDeluxe
• Parametro booleano non di input
• Aggiunto all'Opzione inclusione nella scheda Componenti del modulo configurabile Display Case per la parte Bumper, Deluxe
Successivamente, è necessaria una tabella casi, ad esempio pickTrim, per controllare l'applicabilità delle opzioni di rifilo per ciascun modello di espositore, come illustrato nella tabella seguente:
askModel | useStandard | useTwin | useDeluxe |
Model_01 | sì | sì | no |
Model_02 | sì | no | sì |
Model_03 | sì | sì | sì |
Model_04 | sì | sì | sì |
Model_05 | sì | sì | sì |
Queste espressioni logiche consentono di testare il modulo Trim Options in modo indipendente per assicurarsi che tutto funzioni come previsto.
| Se si utilizza lo stesso approccio per ciascun modulo, tuttavia, all'utente viene chiesto ripetutamente quale modello di Display Case desidera, situazione non auspicabile. Di conseguenza, dopo aver creato tutti i moduli e aver verificato che funzionino correttamente, è necessario integrarli. |
Per integrare i moduli, attenersi alla procedura descritta di seguito.
1. Creare un parametro adatto per determinare il modello all'interno del modulo configurabile Display Case come segue:
◦ askModel - Stringa, parametro obbligatorio di input
◦ Prompt = "Select the desired display case model"
◦ Vincolo: "Model_01", "Model_02", "Model_03", "Model_04", "Model_05"
2. Stabilire un'equivalenza tra askModel nel modulo configurabile Display Case e tutti i relativi discendenti.
3. Rimuovere i vincoli per ciascun parametro askModel in ciascun modulo di opzione.
| La rimozione di questi vincoli è necessaria per evitare conflitti tra il modulo configurabile di livello superiore Display Case e i moduli configurabili che comprendono ogni modulo. |
4. Verificare la struttura di prodotto configurabile completata. Poiché è già stato testato ogni modulo, è sufficiente verificare che il valore di askModel immesso dall'utente nel modulo configurabile di livello superiore Display Case sia stato copiato correttamente in ciascuno dei moduli.
| Se si visualizza l'albero della distinta base nella pagina Imposta parametri della finestra Configura e si utilizza il pulsante Applica, è possibile verificare rapidamente se il valore corrente di askModel nel modulo configurabile Display Case è stato copiato in ciascuno dei moduli. |