Aggiornamento di applicazioni esistenti

Se il team sta aggiornando un'applicazione esistente, una delle prime attività consiste nell'acquisire informazioni sul codice.Per poter stimare il lavoro che il team dovrà eseguire, è necessario identificare le parti del codice in cui sono necessarie modifiche, quindi determinare fino a che punto si propagheranno le conseguenze di tali modifiche.

Il team può assicurare che le modifiche apportate non abbiano effetti negativi creando ed eseguendo unit test e test di sistema.Se questi test non sono già disponibili, dovranno essere creati dal team.Non è tuttavia obbligatorio creare un set completo di unit test e test di sistema per un'applicazione esistente.Conoscendo la struttura del codice esistente e le modifiche che si prevede di apportare, il team può concentrarsi sulla creazione dei test necessari per assicurare che tali modifiche non influiscano su negativamente sull'applicazione.

Quando è necessario aggiornare codice esistente, è consigliabile utilizzare le azioni e gli strumenti seguenti:

  • Analizzare la struttura esistente.Utilizzare Esplora architettura, grafici diretti e i diagrammi di sequenza generati per individuare i componenti principali e le relative dipendenze.Per ulteriori informazioni, vedere Visualizzazione e comprensione del codice.

  • Analizzare il comportamento esistente e le modifiche necessarie.È necessario che il team comprenda il comportamento esistente quando discute in dettaglio le nuove storie.Contrassegnare le storie esistenti con la dicitura "così com'è" e le nuove storie con "da creare". Utilizzare questi tag come parte dei nomi di file, cartelle e modelli.

    È possibile utilizzare i modelli per chiarire le storie utente.Per ulteriori informazioni, vedere Modellazione di storie utente.

  • Stabilizzare il comportamento con i test.Aggiungere test automatizzati o manuali per ottenere quanto segue:

    • Comprendere il comportamento esistente del prodotto.

    • Evidenziare gli aspetti del comportamento del prodotto che verranno modificati.

    • Verificare che le modifiche non interferiscano con le funzioni esistenti.

    Per ulteriori informazioni, vedere Test tempestivi e frequenti.

  • Stabilizzare l'architettura con diagrammi livello.Creare diagrammi livello per ottenere quanto segue:

    • Comprendere la struttura del codice esistente.

    • Evidenziare le aree per la modifica nel codice esistente.

    • Verificare che le modifiche non siano intenzionalmente in contrasto con l'architettura esistente introducendo dipendenze non intenzionali o inserendo funzioni in posizioni inadeguate.

    Per ulteriori informazioni, vedere Stabilizzazione della struttura dell'applicazione tramite diagrammi livello.

  • Scrivere le modifiche necessarie come storie, stimare i costi delle storie e disporle in un backlog del prodotto.Quando si stima il costo, sarà naturalmente necessario considerare il fatto che si sta aggiornando codice esistente.Ogni preventivo dovrà includere il tempo richiesto per comprendere la progettazione esistente e per scrivere i test automatizzati.

    Per ulteriori informazioni, vedere Creare o aggiungere al backlog prodotto.

Ulteriori informazioni

Articolo sull'utilizzo efficiente del codice legacy, Michael Feathers; Prentice Hall, 2004.