/  10
 
1
Concetti base dell’Object Oriented
 
R. Turco
INDICE
Definizione del problema
Ogni problema da informatizzare o da risolvere con un software è definito, descrittoalmeno col linguaggio naturale tramite i cosiddetti requisiti utente o in un linguaggio di
modellazione grafico, come l’UML, attraverso degli USE CASE (casi d’uso).
 
 
2
Universo o Dominio del problema
Universo o dominio del problema sono sinonimi ed individuano un’area di applicazione
(medicina, matematica, fisica, elettronica, etc) di cui si vuole fare un modello dirappresentazione attraverso del software. Spesso è necessario lavorare con unesperto del dominio perché non è noto e può essere rappresentato da un analista checonosce il dominio o dal cliente stesso.
Confine dell’universo o del dominio
 
Occorre far attenzione ad individuare il giusto confine di universo che interessa. Gli
oggetti che sono all’interno del dominio sono d’interesse mentre tutto ciò che rimane
fuori no.Alla fine il dominio del problema sarà rappresentato da librerie di classi. Seguendo i
dettami dell’Object Oriented, che porta facilmente al concetto di riuso, una classepuò servire anche in domini diversi o essere estesa nell’ambito dello stesso dominio.
 
Oggetti
Le entità coinvolte nel dominio sono oggetti. Gli oggetti hanno una specifica di stato,costituita da una serie di proprietà (attributi) aventi un certo valore, e una specificadi comportamento, costituita da attività o funzionalità esercitate: creazione,distruzione, funzionalità, etc.
Classi
Una classe è un’astrazione di un’
 
oggetto, rappresenta l’insieme di appartenenza di
oggetti dello stesso tipo.
Test 1
. Fido e Pippo sono dei cani. Sono un oggetto o una classe?
Perché? Quale è l’oggetto e quale è la
classe?
Risposta Test 1. Astrazione, classi astratte
L’astrazione permette di concentrare il proprio modello solo sui particolari che
servono alla risoluzione del problema, sia a livello di dominio (confine), sia a livellodelle caratteristiche di un oggetto (stato e comportamento).
L’astrazione dipende anche dal punto di vista da cui si affronta il dominio del
problema.
Ad esempio l’oggetto Auto può dar luogo ad astrazioni diverse a seconda se ad esso è
interessato il Registro Automobilistico oppure il meccanico.
 
3
Nel caso del registro automobilistico dell’auto ha interesse solo il numero di matricola
del telaio, il nome ed il cognome
del proprietario, l’indirizzo d
el proprietario, etc.Nel caso del meccanico ha interesse inv
ece i km percorsi dall’auto per il cambio d’olio,
i pezzi cambiati o riparati, il numero di telefono del cliente (non necessariamente ilproprietario), etc
L’Astrazione è anche un meccanismo di generalizzazione del software tramite i
concetti di classi astratte e delle interface esistenti in Java.Una
classe astratta
è una classe che ha almeno un metodo astratto. Tale classe nonpuò essere istanziata ma deve essere derivata da una classe che implementi il metodoastratto tramite overloading.Una interface in Java è una particolare classe astratta che ha tutti i metodi astratti.
In C++ non esiste l’interface.
 Una classe astratta potrebbe servire per derivare da essa due classi che fanno
l’overloading di scrivi_su_disco e leggi_da_disco e che possano oper
are su sistemioperativi diversi e, quindi, semplificando il porting tra sistemi operativi diversi.
Individuazione Oggetti, Classi, Metodi, Ereditarietà e Composizione nell’enunciato
del problema
Nel testo del problema, espresso in linguaggio naturale, è possibile individuare dei
termini chiave e trasformarli nell’equivalente object oriented come mostrato in
tabella.
Linguaggio naturale Equivalente Object Oriented
Nomi concreti Oggetti (entità del dominio)Nomi astratti Classi (generalizzazione di oggetti di unostesso tipo)Verbi Metodi o funzioni membro
E’ un
EreditarietàHa un Composizione
o un’Aggregazione
 
Incapsulamento
Nell’Object Oriented è importante nascondere l’implementazione e fornire solointerfacce per l’utilizzo delle classi. Questo
significa che chi usa le classi non può, néconviene, che si possa intervenire direttamente sulle variabili membro o di stato; ma,

Share & Embed

More from this user

Add a Comment

Characters: ...