Modellazione orientata agli oggetti - ESSeRE

essere.disco.unimib.it

Modellazione orientata agli oggetti - ESSeRE

Modellare attraverso gli oggetti


Riferimenti Bibliografici

C.Larman. Applying UML and Patterns. Prentice Hall 2001.

J.Rumbaugh, I.Jacobson, G.Booch. The Unified Modeling

Language Reference Manual. Addison Wesley 1999, (ch.2

“The nature and purpose of models”)

P.Stevens. Using UML, Software engineering with objects and

components, Addison Wesley, 2000

M.Page Jones. Progettazione a oggetti con UML. Apogeo,

2000.

G.Cernosek, E.Naiburg. The value of modeling, A technical

discussion of software modeling, Rational Software Report

(IBM), June.2004


Modellare attraverso gli oggetti

Concetti fondamentali dell’approccio orientato agli oggetti:

Astrazione

Ereditarieta’

Incapsulamento

Polimorfismo, Binding Dinamico

Combinazione di stato e comportamento

Prospettive della modellazione orientata agli oggetti


Modellazione orientata agli oggetti

Perche’ i modelli?

Per riuscire a fare astrazioni

Per aiutarci ad affrontare la complessita’

Per focalizzarci sugli aspetti rilevanti

Per facilitare la comprensione, la progettazione e la

manutenzione dei sistemi

Perche’ gli oggetti?

Per riflettere piu’ accuratamente la realta’

Per ridurre il gap fra’ realta’ e un modello

La realta’ viene modellata attraverso un numero di oggetti

che interagiscono


Astrazione

Processo mentale per selezionare alcune caratterisitche e proprieta’,

escludendone altre che non sono rilevanti

Legate ad un obbiettivo

Piu’ possibilita’ di astrazione

Incomplete ed inaccurate

Tipi di astrazione

Classificazione

Aggregazzione

Generalizzazione


Ereditarieta’

L’assunzione di proprieta di una sottoclasse dalle sue

superclassi

favorisce la riusabilita’, riduce la ridondanza

ereditarietà singola e multipla


Incapsulamento

Tipo di astrazione che rafforza una chiara separazione fra

l’interfaccia esterna (protocollo) e l’implementazione interna

dell’oggetto


Prospettive della modellazione orientata agli oggetti

Livello Concettuale

come identificare gli oggetti

Livello di Specifica

come gli oggetti interagiscono

Livello Implementativo

come codificare gli oggetti


Classi e istanze


Combinare stato e comportamento

Stato: proprietà statiche degli oggetti (attributi)

Comportamento: proprietà dinamiche degli oggetti

(operazioni)


I contenuti di un oggetto


Proprieta’ degli oggetti

Ogni oggetto ha una identita’ unica, immutabile,

indipendente dal suo stato corrente o comportamento

OID

Gli oggetti comunicano attraverso lo scambio di messaggi

che portano a invocare operazioni sugli oggetti

Gli oggetti scelgono come e quando risponderanno ad un

messaggio/stimolo

indipendenza degli oggetti


Classe-Attributi-Metodi

Classe: descrizione di un gruppo di oggetti

che hanno in comune:

Proprieta’

Comportamento

Attributi: descrizione dei valori degli oggetti di una classe

nome, tipo, visibilita’, valore iniziale

Operazioni: funzione o trasformazione che puo’ essere

applicata a/o dagli oggetti di una classe:

segnatura, visibilita’, side effects


Rappresentazione di un oggetto


Pensare ad Oggetti

Come pensare ad oggetti?

Come progettare sistemi orientati agli oggetti?

Non e’ cosi’ utile imparare perfettamente a livelllo

sintattico UML o un UML CASE tool, se non si e’ in

grado di sviluppare un buon progetto o di migliorare

uno esistente


OOA e OOD

Quali sono le responsabilita’ che devono essere assegnate

alle classi? Come devono interagire gli oggetti?

OOA e OOD sono strettamente legati all’analisi dei requisiti,

che include l’identificazione dei casi d’uso.

Analisi dei Requisiti: do the right thing

Trovare e descrivere gli oggetti o concetti nel dominio del

problema

Progettazione: do the thing right

Definire gli oggetti software e come questi collaborano per

soddisfare I requisiti


Esempio

Gioco con i dadi in cui un giocatore tira due dadi. Se il

totale e’ 7 ha vinto, altrimento ha perso.

Analisi dei requisiti: definire i casi d’uso

Analisi OO: creare una descrizione del dominio

(Domain Model) attraverso una classificazione

degli oggetti, identificare attributi, associazioni,…


Definire i casi d’uso


Modello di dominio


Vista Dinamica


Vista statica


…basato o orientato agli oggetti

Peter Wagner in un suo articolo ha classificato gli

ambienti come strutturati a oggetti, basati sugli

oggetti, basati su classi o orientati agli oggetti.

I primi presentano solo incapsulameto e

conservazione dello stato

I secondi aggiungono identita’ agli oggetti

I terzi aggiungono il concetto di classe

I quarti aggiungono l’ereditarieta’ e tutte le altre

proprieta’


Esercizio

Considerate un software acquistato da voi (o dalla

vostra societa’) che stando a quanto sostiene il

produttore e’ orientato agli oggetti.

Quali sono le caratteristiche del software identificate

dal produttore come “orientate agli oggetti”?

Siete convinti che le affermazioni del produttore siano

giustificate? Quali vantaggi avete tratto dalle

caratteristiche legate all’orientamento agli oggetti del

prodotto?

More magazines by this user
Similar magazines