Processi di modellizzazione

Processi software insieme di attività

  • specifiche - cosa fa
  • design / implementazione - organizzazione del sistema
  • validation - prova che faccia quanto richiesto
  • evoluzione - migliorare il processo in base ai need

Software process model = rappresentazione astratta di un problema

Processi produttivi

Esistono due tipo di processi produttivi:

  1. Plan Driven: faccio un piano e lo seguo, comodo misurare il progetto rispetto al piano
  2. Agile Driven:faccio un piano incrementale step by step; planning lavoro planning lavoro … Nella pratica si usa un ibrido.

Modelli di sviluppo

  1. Waterfall (a cascata): plan driven, le fasi sono tutte ben divise e assegnate
    • svantaggi: i requisiti e l’integration li si può vedere solo a distanza di tempo, non sai come cambieranno; è punitivo, se devo cambiare qualcosa devo tornare indietro, ed è sequenziale: devo eseguire tutte le fasi per forza in un certo ordine
  2. Sviluppo incrementale: implementa sia agile che plan driven
    • è una specie di waterfall in cui ci sono dei microcicli per lavorare a più riprese su tutto
    • per attivarla serve un prototipo, si fanno versoni intermedie fino alla versine finale
    • vantaggio: posso mostrare al cliente la versione intermedia o iniziale e avere un feedback
    • svantaggio: il processo e lo stato di avanzamento non sono visibili perché non ho un piano; inoltre senza progetto ci si può perdere nello sviluppo
  3. CI e CD: il sistema viene assemblato a parti già esistenti; può essere sia plan driven che agile

Reuse oriented sw engineering

Meno costi e rischi dato che riutilizzo cose già sviluppate Velocità di progettazione Non ho controllo sull’eveoluzione dei sistemi se il mio fornitore non produce più aggiornamenti per quel sistema mi attacco Il testing occupa la maggior parte dei costi di utilizzo + design e sviluppo