Andrea Bulgarelli's Home Page

Home ] Profilo ] Analisi&Design ] Programmazione ] Pubblicazioni ]

 

Su
Approccio
Analisi e sintesi
La descrizione
 

Il ragionamento: analisi e sintesi

Nell’affrontare un progetto complesso occorre andare oltre il significato che è assunto, nell’ambiente informatico delle parole analisi e sintesi. Infatti, in precedenza si è visto che sono diversi gli aspetti da capire e conoscere: il dominio dell’applicazione, il problema, il dominio della soluzione e la macchina.

Questo aspetto è risultato uno dei più critici per il progetto VAMP. Il problema che il progetto deve affrontare è relativamente nuovo nel suo ambito. Prima di arrivare alla progettazione anche solo di un prototipo, è stato necessario un grosso lavoro per studiare il problema e capire che cosa esattamente il sistema deve fare.

Analisi e sintesi

Spesso i problemi che i progettisti software devono affrontare sono complessi; la capacità del progettista non sta tanto nell’avere una conoscenza molto approfondita del campo dell’informatica (capacità necessaria, ma non sufficiente), quanto nell’essere in grado di avere buone capacità di analisi e di sintesi.

Sarebbe riduttivo pensare ai termini analisi e sintesi esclusivamente nel contesto dello sviluppo del software. Ad esempio, prima di poter procedere con l’analisi del sistema software è necessario capire a fondo il contesto (dominio dell’applicazione) nel quale il software si troverà ad operare; solo in questo modo saranno veramente chiari i problemi da affrontare e da risolvere con il software.

L’analisi del problema è quindi il primo passo per il successo del progetto. Ma che cosa significa esattamente analisi? Citando Bertrand Russel: “L’analisi può essere definita come la scoperta dei costituenti di un dato complesso e del modo in cui sono combinati. Il complesso deve essere un complesso con cui abbiamo familiarità; l’analisi è completa quando arriviamo ad avere familiarità con tutti i costituenti e con loro modo di combinazione, e sappiamo che non ci sono altri costituenti e che quello è il loro modo di combinazione. Possiamo distinguere tra l’analisi formale – la scoperta del modo di combinazione – e l’analisi materiale – la scoperta dei costituenti (…). La sintesi può essere definita come la scoperta di un complesso che consiste di dati costituenti combinati in un dato modo. Ovviamente questo è possibile soltanto quando c’è un complesso di questo tipo. Possiamo parlare di una sintesi-familiarità quando arriviamo ad avere familiarità con il complesso risultante; ma quando veniamo semplicemente a sapere che c’è un complesso di questo tipo parleremo di sintesi descrittiva, o di sintesi proposizionale, perché la nostra conoscenza verrà espressa naturalmente con una proposizione”.

In sostanza, l’analisi è la scomposizione dell’oggetto dell’indagine nei suoi elementi costitutivi ed esame sistematico di essi e dei rapporti che li collegano, mentre la sintesi è l’operazione mentale mediante la quale si risale da elementi particolari e molteplici a un concetto unitario: la sintesi è dunque l’operazione inversa all’analisi, e consente di cogliere gli elementi essenziali di una questione, di una realtà.

Analisi e design del software

Nel campo della progettazione del software, gli stessi termini sono usati in modo più specifico con il seguente significato (riprendendo anche i concetti di what e how):

  • Analisi: lo studio di cosa deve fare il sistema (punto di vista “funzionale”);
  • Design: lo studio di come il sistema deve essere implementato (punto di vista “tecnico”).

La fase d’analisi consiste essenzialmente nel modellare il sistema reale, mentre con il termine design s’intende la sintesi di un sistema software, e quindi la modellazione dei suoi costituenti (oggetti, componenti).

I concetti di analisi e design tipici dei vari processi di sviluppo sono quindi una specializzazione dei concetti di analisi e sintesi precedentemente introdotti. Allargando il campo visivo, è tuttavia possibile individuare procedimenti di analisi e di sintesi in varie fasi del processo di sviluppo del software.

E’ già stata ribadita l’importanza di comprendere a fondo il problema e il suo dominio, e questo è un tipico procedimento di analisi. Da questa analisi e dai rapporti con la committenza si ottiene l’SRS (Software Requirement Specification), che è un documento generato da un processo di sintesi: esso infatti nasce dall’aggregazione di richieste utente (spesso incomplete e confuse) di varia provenienza e con diverse caratteristiche, riviste, interpretate e soprattutto organizzate dal progettista software anche in base alla conoscenza acquisita su problema e relativo dominio.

L’SRS è il punto di partenza per lo sviluppo del software. Terminata questa fase, ne iniziano diverse di sintesi, il cui risultato finale sarà la macchina: è possibile effettuare il design di massima e quello di dettaglio, e quindi la codifica.

 

© 2001 Andrea Bulgarelli

Versione stampabile ]  

Precedente ] Successiva ]