Condividi tramite


Organizzazione dei requisiti in un piano del prodotto

Dopo avere analizzato i requisiti del cliente in modo sufficiente per individuare le finalità del prodotto, è necessario elaborare un piano per implementare il prodotto. In alternativa, per un prodotto esistente, è necessario determinare le funzionalità mancanti ed elaborare un piano per apportare le modifiche. I requisiti, tuttavia, non definiscono automaticamente il piano.

In questo argomento viene delineato un metodo per ottenere un piano a partire da un set di requisiti. Si tratta di uno dei tanti metodi che è possibile utilizzare con Visual Studio e che è necessario adattare in base alle esigenze.

In questo argomento

Requisiti e funzionalità

Scomposizione degli scenari

Assegnare scenari foglia a iterazioni

Funzionalità: requisiti soddisfatti in ogni iterazione

Funzionalità di qualità del servizio

Pianificazione del prodotto

Pianificazione dell'iterazione

Requisiti e funzionalità

Questo metodo include due tipi di requisiti, ovvero i requisiti del cliente e le funzionalità. I requisiti del cliente sono quelli definiti analizzando le indicazioni del cliente su ciò che desidera dal prodotto. Le funzionalità sono elementi inclusi nel piano del prodotto, che corrispondono a subset di dimensioni ridotte dei requisiti del cliente. Ogni funzionalità può includere elementi dei requisiti del cliente provenienti da diversi aspetti dell'esperienza utente e da svariate aree funzionali.

Requisiti del cliente

  • I requisiti del cliente vengono determinati durante la discussione con utenti potenziali e altre parti interessate.

  • Per semplificare l'analisi di questi requisiti, vengono in genere creati storyboard e modelli e gli scenari vengono scomposti in passaggi minori, a costituire una struttura ad albero. È possibile collegare elementi di modellazione, ad esempio casi di utilizzo e attività, a elementi di lavoro scenario.

  • Vi sono due tipi di requisiti del cliente:

    • Gli scenari, denominati anche casi di utilizzo, rappresentano sequenze di interazioni tra gli utenti e il prodotto per realizzare obiettivi specifici. Un esempio di scenario potrebbe essere intitolato "Utente che acquista un libro".

    • I requisiti di qualità del servizio includono prestazioni, sicurezza, usabilità e altri criteri.

  • È possibile rappresentare questi requisiti come elementi di lavoro di tipo requisito, impostando il campo Tipo di requisito su Scenario o Qualità del servizio.

  • Questi elementi di lavoro requisito devono essere collegati ai test di sistema, in modo da garantire che tutti i requisiti vengano testati.

  • Utilizzare la query Requisiti dell'utente per elencare questi elementi di lavoro requisito.

  • Utilizzare il rapporto Stato di avanzamento requisiti per monitorare i requisiti soddisfatti.

Per ulteriori informazioni, vedere Sviluppo di requisiti, Query Team (CMMI), Rapporto Stato di avanzamento requisiti (CMMI) e Creazione di un piano di test utilizzando i requisiti o le storie utente.

Funzionalità

  • Una funzionalità è un elemento di un piano del prodotto che rappresenta un gruppo di attività. Nella pianificazione del prodotto i rappresentanti del team di sviluppo e le parti interessate assegnano funzionalità a iterazioni. Per ulteriori informazioni, vedere Pianificazione del progetto (CMMI).

  • Immettere funzionalità come elementi di lavoro requisito impostando il campo Tipo di requisito su Funzionalità.

  • Il titolo della funzionalità indica, nei termini degli utenti, ciò che gli utenti saranno in grado di effettuare con il prodotto e che è stato impossibile effettuare nelle iterazioni precedenti. Tutti o quasi tutti gli elementi nel piano forniscono nuovo valore per l'utente.

    La sequenza di funzionalità seguente, ad esempio, può formare un piano di implementazione:

    • "Un acquirente può scegliere un libro da un elenco e può aggiungerlo a un elenco di preferenze".

    • "Nell'elenco di libri sono indicati i prezzi. Nell'elenco di preferenze è indicato il prezzo totale".

    • "I fornitori possono applicare tag ai libri. Gli acquirenti possono filtrare l'elenco di libri in base ai tag".

    Si noti che nessuna funzionalità riguarda un solo passaggio nell'esperienza utente e che nessuna funzionalità interessa solo una parte dell'architettura del prodotto. Al contrario, durante l'implementazione delle funzionalità, molte funzioni vengono riconfigurate e arricchite di nuovo valore per l'utente.

  • Ogni funzionalità viene assegnata a un'iterazione durante la pianificazione del prodotto. Tutte le attività incluse in una funzionalità devono essere assegnate alla stessa iterazione. Per ulteriori informazioni, vedere Pianificazione del progetto (CMMI).

  • Una funzionalità descrive una realizzazione parziale dei requisiti del cliente. Si tratta di un subset dei requisiti del cliente, ciascuno dei quali può essere implementato solo parzialmente.

  • Ogni funzionalità può essere collegata a uno o più test case che testano la parte dei requisiti rappresentati dalla funzionalità. Questi test case sono un subset dei test di sistema collegati ai requisiti del cliente.

  • Lo stato della funzionalità non deve essere contrassegnato come completo fino alla completa definizione e al superamento dei relativi test.

  • Ogni funzionalità è un gruppo di attività di sviluppo e test e costituisce la radice di una struttura ad albero di attività in Visual Studio Team Foundation Server. Le attività di sviluppo implementano i requisiti parziali descritti dalla funzionalità. Le attività di test progettano ed eseguono i test case appropriati.

  • Per elencare le funzionalità, è necessario utilizzare la query Requisiti del prodotto. Per visualizzare il piano del prodotto, fare clic su Opzioni colonne e aggiungere Percorso iterazione all'elenco di colonne visualizzate. Per ordinare gli elementi in base all'iterazione, fare clic sulla colonna Percorso iterazione. Per ulteriori informazioni, vedere Query Team (CMMI).

Ricerca di funzionalità

La separazione dei requisiti in funzionalità incrementali è un'attività creativa che deve coinvolgere sviluppatori, analisti e parti interessate. Una funzionalità definisce una parte delle caratteristiche del prodotto che può essere implementata separatamente dalle funzioni circostanti. Un set di definizioni di funzionalità utilizzabile e un ordinamento in un piano, pertanto, dipendono in parte dall'architettura del sistema.

Per questo motivo, la pianificazione e la progettazione iniziale del prodotto devono essere eseguite in parallelo, in particolare nell'iterazione 0, in cui viene progettata la parte principale del piano.

Scomposizione degli scenari

Per semplificare l'organizzazione dei requisiti in funzionalità, è utile scomporre gli scenari in passaggi minori.

Gli storyboard risultano spesso utili per questa attività. Uno storyboard è una sequenza di immagini che illustrano lo scenario. I diagrammi attività UML sono utili per visualizzare percorsi alternativi, mentre i diagrammi sequenza UML semplificano la discussione delle interazioni tra soggetti diversi. Dopo aver utilizzato questi strumenti per analizzare uno scenario, è possibile immettere gli scenari scomposti in Team Explorer. In questo modo, è possibile collegare test case agli scenari e in tal modo garantire che i requisiti siano stati soddisfatti. Per ulteriori informazioni, vedere Diagrammi di attività UML: linee guida e Diagrammi di sequenza UML: linee guida.

Questa breve procedura dettagliata consente di immettere un set di requisiti del cliente sotto forma di una piccola struttura ad albero di scenari. In questo modo, verrà fornito un esempio da cui creare funzionalità.

Per aprire la struttura ad albero dei requisiti del cliente in Excel

  1. In Team Explorer aprire un progetto MSF for CMMI Process Integration v5.0.

  2. Espandere Elementi di lavoro, Query Team e Pianificazione e traccia, quindi eseguire Requisiti dell'utente.

  3. Se non vengono visualizzate le colonne Percorso iterazione e Tipo di requisito, fare clic su Opzioni colonne e aggiungerle all'elenco degli elementi visualizzati.

    Potrebbe inoltre essere necessario aggiungere la colonna Percorso area.

  4. Impostare la query perché venga visualizzata una struttura ad albero.

    1. Fare clic su Modifica query.

    2. Impostare Tipo di query su Struttura ad albero elementi di lavoro.

    3. Fare clic su Salva query.

      Se non è possibile salvare la query in Query Team, salvarla in Query.

    4. Fare clic su Visualizza risultati per chiudere la visualizzazione di modifica.

  5. Fare clic su Apri in Microsoft Office, quindi su Apri query in Microsoft Excel.

  6. Se in Office Excel la colonna con intestazione Titolo 1 non è seguita da colonne con intestazione Titolo 2 e Titolo 3, fare clic sulla scheda Team, quindi su Aggiungi livello struttura ad albero per creare le colonne aggiuntive.

A questo punto, è possibile immettere gli scenari come batch in modo semplice.

In una situazione reale è possibile iniziare immettendo ogni livello di scenari e quindi scomponendo ogni scenario in passaggi minori in operazioni distinte.

Per immettere gli scenari

  1. Nella riga immediatamente successiva alla riga inferiore degli elementi di lavoro esistenti (se presenti) immettere il titolo dello scenario di primo livello nella colonna Titolo 1:

    Il cliente ordina un pasto.

  2. Discutendo con le parti interessate all'interno dell'azienda, vengono definiti i passaggi principali che costituiscono lo scenario di primo livello.

    Nelle righe immediatamente successive allo scenario di primo livello immettere i passaggi seguenti nella colonna Titolo 2:

    Il cliente sceglie un ristorante.

    Il cliente sceglie piatti dal menu del ristorante per creare un ordine.

    Il cliente immette i dettagli del pagamento.

    Il ristorante prepara e consegna l'ordine.

    Il pagamento viene addebitato sulla carta di credito del cliente.

  3. Ulteriori analisi, talvolta tramite diagrammi attività o diagrammi interazione UML, producono altri passaggi dettagliati per alcuni di questi scenari.

    Immediatamente al di sotto di "Il cliente sceglie un ristorante" inserire alcune righe e immettere i passaggi seguenti nella colonna Titolo 3:

    Il cliente immette il codice postale di consegna.

    Nel sito Web viene visualizzato un elenco di ristoranti che effettuano consegne all'indirizzo indicato.

    Il cliente può esplorare i menu di tutti i ristoranti visualizzati.

    Il cliente seleziona un ristorante per avviare un ordine.

    Eliminare tutte le righe vuote.

  4. Nella colonna Tipo di elemento di lavoro di tutte le nuove righe impostare il tipo su Requisito.

  5. Impostare la colonna Tipo di requisito di tutte le nuove righe su Scenario.

  6. Per pubblicare i requisiti in Team Foundation Server, selezionare una cella qualsiasi nella tabella degli elementi di lavoro, quindi fare clic su Pubblica nella scheda Team.

A questo punto, è disponibile una struttura ad albero di requisiti del cliente, che è possibile modificare ulteriormente in Office Excel o Team Explorer.

Assegnare scenari foglia a iterazioni

Gli scenari "foglia" sono quelli che non includono elementi figlio propri.

Assegnare a iterazioni i passaggi più elementari negli scenari impostando il campo del percorso di iterazione. A tale scopo, è possibile utilizzare la visualizzazione Office Excel.

Assegnare quindi ogni scenario che include elementi figlio all'iterazione iniziale in cui può essere considerato utilizzabile.

Nell'esempio seguente gli scenari più essenziali vengono implementati nelle iterazioni 1 e 2, mentre vengono aggiunte altre funzioni in iterazioni successive.

  • Iterazione 2 - Il cliente sceglie un ristorante.

    • Iterazione 5 - Il cliente immette il codice postale.

    • Iterazione 2 - In DinnerNow viene visualizzato un elenco di ristoranti.

    • Iterazione 3 - Il cliente può esplorare il menu di ogni ristorante.

    • Iterazione 2 - Il cliente seleziona un ristorante per creare un ordine.

  • Iterazione 1 - Il cliente sceglie piatti dal menu per creare un ordine.

    • Iterazione 1 - Il cliente fa clic sul piatto del menu da aggiungere all'ordine.

    • Iterazione 2 - Nel riepilogo dell'ordine viene visualizzato il prezzo totale dell'ordine.

    • Iterazione 1 - Il cliente fa clic su "Conferma" per completare l'ordine.

  • Iterazione 4 - Il cliente immette i dettagli del pagamento.

  • Iterazione 2 - Il ristorante prepara e consegna l'ordine.

  • Iterazione 4 - Il pagamento viene addebitato sulla carta di credito del cliente.

Queste assegnazioni consentono di esercitarsi nella progettazione complessiva del sistema in una fase iniziale, posticipando molti dettagli a una fase successiva. Alcuni aspetti considerati di rischio inferiore possono essere posticipati a iterazioni successive. In questo esempio il team ha già esperienza nel collegamento a un sistema di pagamento tramite carta di credito. Per questo motivo, si sente in grado di posticipare questa parte a un'iterazione successiva.

In alcuni casi, sarà necessario scomporre ulteriormente gli scenari foglia, per consentire la separazione di versioni semplificate e più complesse in iterazioni diverse, come illustrato nella figura seguente.

Albero di elementi di lavoro dello scenario

Funzionalità: requisiti soddisfatti in ogni iterazione

Una funzionalità è un requisito in cui vengono riepilogate le attività che gli utenti possono effettuare al termine di ogni iterazione. È possibile creare più di una funzionalità per ogni iterazione. Immettere le funzionalità come elementi di lavoro requisito, impostando il tipo di requisito su Funzionalità.

Utilizzare le assegnazioni degli scenari agli elementi di lavoro per semplificare la definizione delle funzionalità. Il piano della funzionalità di esempio seguente è derivato dalle assegnazioni di scenari a iterazioni della sezione precedente:

  • Iterazione 1

    • Il cliente sceglie piatti da un menu, le aggiunge a un ordine e aggiunge un indirizzo di consegna.
  • Iterazione 2

    • I clienti iniziano visualizzando un elenco di ristoranti, quindi ne scelgono uno.

    • Quando il cliente completa un ordine, l'ordine viene visualizzato nello schermo del ristorante scelto.

    • I prezzi degli articoli e il prezzo totale vengono visualizzati nell'ordine.

  • Iterazione 3

    • Il ristorante contrassegna l'ordine come "Completato" dopo l'invio del pasto preparato. Il pasto viene registrato per il ristorante.

    • Ogni ristorante può immettere e aggiornare il proprio menu.

    • Il cliente può esplorare il menu di ogni ristorante prima di selezionarne uno.

  • Iterazione 4

    • Il cliente immette i dettagli del pagamento durante il completamento di un ordine. L'importo viene addebitato sulla carta di credito del cliente quando il ristorante contrassegna l'ordine come completato.

    • Il ristorante viene pagato per gli ordini contrassegnati come completati.

  • Iterazione 5

    • I ristoranti possono impostare la propria area di consegna. Il cliente immette il codice postale all'inizio della sessione. Nel sito Web vengono visualizzati solo i ristoranti in grado di consegnare nell'area locale.

Scenari parzialmente implementati

La scomposizione degli scenari in passaggi minori consente di separare alcuni passaggi che possono essere implementati prima da altri che possono essere implementati successivamente.

Talvolta, tuttavia, è possibile escludere altri aspetti degli scenari. In questo esempio il team potrebbe implementare una versione di base dell'esperienza utente nelle prime iterazioni, quindi migliorarla successivamente. Sarebbe pertanto possibile aggiungere la funzionalità seguente:

  • Iterazione 6 - Il ristorante può scegliere la combinazione colori e il tipo di carattere del proprio menu e caricare il proprio logo e le immagini delle pietanze.

Questo tipo di funzionalità non emerge direttamente dalla scomposizione in passaggi, ma durante la discussione degli storyboard. Le funzionalità relative all'esperienza utente rappresentano probabili candidati per iterazioni successive.

Immissione e controllo delle funzionalità

Creare elementi di lavoro con tipo di elemento di lavoro requisito e impostare il campo Tipo di requisito su Funzionalità. Impostare il titolo della funzionalità su una breve descrizione.

Per immettere le funzionalità in batch e discuterne l'assegnazione alle iterazioni, adattare la query Requisiti del prodotto e utilizzare una visualizzazione Office Excel.

Per immettere e modificare funzionalità

  1. In Team Explorer aprire un progetto MSF for CMMI Process Improvement v5.0.

  2. Espandere Elementi di lavoro, Query Team e Pianificazione e traccia, quindi aprire Requisiti del prodotto.

  3. Fare clic su Opzioni colonne e aggiungere Stima originale e Percorso iterazione all'elenco di colonne visualizzate.

  4. Fare clic su Apri in Microsoft Office, quindi su Apri query in Microsoft Excel.

  5. Nella finestra di dialogo in cui viene richiesto se salvare la query, fare clic su .

  6. Facoltativo: in Office Excel immettere l'elenco di titoli delle funzionalità, impostare i percorsi di iterazione e ordinare le righe in base al percorso di iterazione.

  7. Per salvare le modifiche in Team Foundation Server, fare clic su una cella qualsiasi nella tabella degli elementi di lavoro, quindi fare clic su Pubblica nella scheda Team.

Traccia di funzionalità in requisiti

È possibile collegare funzionalità a requisiti nelle modalità seguenti:

  • Collegare elementi di lavoro funzionalità ai requisiti dello scenario foglia delle rispettive iterazioni. Per collegarli, è necessario utilizzare collegamenti Elementi correlati, in quanto gli scenari foglia includono già elementi padre.

  • Collegare elementi di lavoro test case agli scenari e i requisiti di qualità del servizio testati. Collegare funzionalità al subset di test case che devono essere superati dopo lo sviluppo della funzionalità. In questo modo, i test case fungono da collegamento tra le funzionalità e i requisiti del cliente.

Funzionalità di qualità del servizio

I requisiti di qualità del servizio sono in genere di grande impatto in termini di progettazione software. I requisiti di sicurezza, ad esempio, non sono in genere correlati a un'attività di sviluppo specifica.

Ciononostante, per ogni requisito di qualità del servizio è consigliabile creare un elemento di lavoro funzionalità i cui elementi figlio siano per lo più attività di test che garantiscono il soddisfacimento di un criterio di qualità del servizio. Questi elementi di lavoro sono denominati funzionalità di qualità del servizio.

Alcune funzionalità di qualità del servizio possono includere attività di sviluppo. In una delle prime iterazioni, ad esempio, è possibile implementare come modello di prova una versione del sistema in grado di gestire solo pochi utenti. Per un'iterazione successiva, è possibile aggiungere una funzionalità che specifica la capacità di destinazione in base a quanto indicato nei requisiti del cliente.

Pianificazione del prodotto

Prima dell'inizio di ogni iterazione, tenere una riunione per rivedere il piano del prodotto. Nella prima riunione di pianificazione del prodotto viene creato il piano, mentre nelle riunioni successive viene esaminato il piano in base alle iterazioni precedenti. Per ulteriori informazioni, vedere Pianificazione del progetto (CMMI).

Durante la revisione di un piano del prodotto, discutere le funzionalità con le parti interessate all'interno dell'azienda ed essere preparati a riclassificarle in ordine di priorità e a organizzarle in iterazioni diverse. La riunione deve includere parti interessate e rappresentanti del team di sviluppo dell'azienda.

Durante la riunione viene discussa la sequenza in cui sviluppare le funzionalità. A tale scopo, è possibile proiettare o condividere su schermo la visualizzazione Office Excel della query Requisiti del prodotto e ordinare le funzionalità in base all'iterazione.

Una tecnica alternativa consiste nell'inserire le funzionalità in una sequenza specifica e quindi valutare quanto possa essere compiuto in ogni iterazione. Gli sviluppatori, ad esempio, potrebbero discutere se spostare "Il cliente può visualizzare i prezzi" dall'iterazione 2 all'iterazione 3, senza modificarne la posizione nella sequenza. Per inserire gli elementi in una sequenza, aggiungere un'altra colonna denominata Ordine al foglio di calcolo e quindi inserire valori interi per indicare la sequenza. Ordinare il foglio di calcolo in base a questa colonna. L'ordine non verrà archiviato in Team Foundation Server, ma è possibile salvare il foglio di calcolo. Quando si apre di nuovo il foglio di calcolo, fare clic su una cella qualsiasi nella tabella degli elementi di lavoro, quindi fare clic su Aggiorna nella scheda Team.

La pianificazione del prodotto considera le priorità delle funzionalità e i costi di sviluppo. Le priorità vengono definite dalle parti interessate all'interno dell'azienda, con alcune linee guida sul rischio per gli sviluppatori. Le stime dei costi vengono definite dagli sviluppatori. Per ottenere un'idea accurata dei costi, il team di sviluppo deve essersi già occupato dell'architettura del prodotto e potrebbe aver bisogno dell'esperienza acquisita dalle iterazioni precedenti. Per questo motivo, le stime dei costi devono essere perfezionate a ogni revisione del piano del prodotto.

Pianificazione dell'iterazione

Al termine della revisione del piano del prodotto, pianificare l'iterazione. Il piano del prodotto determina le funzionalità disponibili al termine dell'iterazione. Il piano di iterazione determina le attività effettuate dal team per implementare e testare le funzionalità.

Nella pianificazione dell'iterazione sono incluse le attività seguenti:

  • Creare attività per lo sviluppo e il test e collegarle come elementi figlio ai requisiti delle funzionalità.

  • Creare test case per gli aspetti dei requisiti del cliente da sviluppare in ogni funzionalità. I test case devono essere collegati ai requisiti del cliente in modo da poterne monitorare il livello di completezza.

È inoltre possibile collegare test case alle funzionalità in modo da tenere traccia della corrispondenza tra funzionalità e requisiti. Una funzionalità non deve essere contrassegnata come completa fino al superamento dei test case collegati.

Per ulteriori informazioni, vedere Pianificazione di un'iterazione (CMMI).