In questa guida di base tratteremo gli aspetti di base relativi alla fase di analisi e di progettazione di un software secondo le logiche della programmazione orientata agli oggetti. Per fare ciò utilizzeremo un linguaggio di modellazione chiamato
UML (
Unified Modelling Language), il quale ci aiuterà a rappresentare, soprattutto graficamente, ciò che il nostro programma dovrà fare e non il come.
E' bene precisare che l'ambito di questa guida è volutamente ristretto alle nozioni di base del linguaggio UML, per chi, viceversa, fosse in cerca di un manuale approfondito rimando alla
guida a UML scritta da Matteo Petrioli.
All'inizio tutto ciò potrà sembrarvi una perdita di tempo, in quanto sarete tentati a gettarvi subito nella produzione di linee di codice. Vedrete con i vostri occhi che quando effettuerete una buona fase di analisi, la fase di codifica risulterà più semplice, così come la fase di manutenzione sarà agevolata.
Provate a guardare del codice che avete scritto tempo fa, o magari scritto da qualcun altro e vedete se riuscirete a capirci qualcosa.
L'essenza dello sviluppo orientato agli oggetti, è l'identificazione e l'organizzazione dei concetti del dominio di applicazione, non la loro implementazione finale in un linguaggio di programmazione!
Vi chiederete ora:
cosa è un oggetto?
L'oggetto è una struttura che raccoglie al suo interno l'insieme dei dati e le funzioni che operano su di essi. Lo sviluppo di un sistema orientato agli oggetti, avviene seguendo le seguenti fasi:
OOA: Object Oriented Analysis
OOD: Object Oriented Design
OOP: Object Oriented Programming
La fase di analisi consiste nel creare un primo modello concettuale del problema che a noi interessa.
Durante la fase di progettazione (design), si cerca una strategia con cui risolvere i problemi relativi al fatto che il tale modellazione dovrà trovare spazio su un calcolatore, per cui si tenteranno di risolvere problemi quali l'allocazione fisica dei dati, l'interfacciamento tra oggetti, le prestazioni e così via. Alla fine di tale processo gli oggetti, verranno raggruppati in
package (moduli), e si stabiliranno le interconnessioni fra moduli differenti del programma.
Nell'ultima fase, si effettuerà la traduzione da UML ad un linguaggio di programmazione orientato agli oggetti, come il C++ o Java, seguendo le informazioni forniteci dai modelli che abbiamo prodotto durante le precedenti fasi.