La sinergia tra analisi, progettazione e sviluppo

di Gianni Tomasicchio - 26 aprile 2009

Prima di proseguire nell'analisi delle varie fasi del ciclo di vita di una applicazione PHP volevo condividere alcune riflessioni sullo stretto legame che si instaura tra l'analisi dei requisiti, il design e lo sviluppo dell'applicazione.

Queste attività vengono spesso vissute come momenti indipendenti l'uno dall'altro. In particolare l'analisi dei requisiti, iniziando per prima,  viene spesso condotta dimenticando che poi qualcuno dovrà pur realizzare quanto emerso in questa fase.

A prima vista la questione può sembrare banale, ma questo errore capita di frequente, sopratutto quando l'analisi viene condotta da persone non coinvolte direttamente nelle successive attività di progettazione e sviluppo.

Ecco alcuni punti da rispettare:

  • Se il committente  desidera una particolare funzionalità che fino a quel momento non era mai stata realizzata, l'analista deve avvalersi della consulenza del progettista che deve esprimersi sulla fattibilità della richiesta. In caso negativo il committente dovrà essere guidato verso una soluzione alternativa.
  • La fattibilità di una richiesta deve essere valutata anche in termini di tempi e costi. Il committente ha il diritto di sapere subito se la realizzazione di una particolare funzionalità richiede l'impiegando di moltissime risorse.
  • Questa rimodulazione dei desideri del committente deve avvenire quanto prima, sia per evitare che il cliente si "innamori" di  funzionalità irrealizzabili o fuori dalla sua portata, sia per evitare uno sforzo inutile al progettista ed agli sviluppatori.
  • I documenti di analisi devono rimanere aperti durante tutta la fase di progettazione e sviluppo, in modo da recepire ulteriori indicazioni provenienti da designer e sviluppatori.
  • La struttura dei documenti di analisi deve essere concordata non solo col cliente ma anche con il progettista ed il programmatore. Infatti questi documenti devono guidare le successive fasi di design e sviluppo, quindi devono essere comprensibili, privi di ambiguità e devono contenere tutti quei dettagli necessari alla corretta realizzazione delle funzionalità richieste dal committente. L'analista non deve dimenticare che i documenti che redige alla fine dovranno trasformarsi in codice.
  • I documenti di analisi devono essere redatti impiegando il linguaggio UML. Le funzionalità del sistema da realizzare devono quindi essere organizzate secondo casi d'uso. E' molto importante che venga garantita la tracciabilità tra requisiti e software realizzato. Quindi per ogni caso d'uso deve essere realizzato  un componente software che ne implementi le funzionalità. Ad esempio questo componente può essere individuato nel Controller di molti framework per PHP che adottano il modello MVC come Zend Framework, CakePHP, CodeIgniter, Symfony, ecc.. L'analista non deve modellare come caso d'uso qualcosa che poi non possa essere agevolmente realizzato attraverso un Controller.

La parola chiave che deve regolare la reciproca influenza tra analisi, progettazione e sviluppo deve essere sinergia e non vincolo. Per realizzare questa sinergia basta far lavorare in stretto contatto l'analista, il progettista e lo sviluppatore fin dalle primissime fasi del progetto.

1 commento

1 Giorgio Giorgio luned́ 30 agosto 2010, ore 07:47
Fare un sito è come fare una casa. Serve un buon architetto, un preciso ingengnere ed un capace muratore.
Effettua l'accesso o registrati per inserire un commento