...

Diagrammi di Classe - Dipartimento di Informatica

by user

on
Category: Documents
19

views

Report

Comments

Transcript

Diagrammi di Classe - Dipartimento di Informatica
Introduzione
Diagrammi di Classe
■
Programmazione in Rete e Laboratorio
■
Matteo Baldoni
Dipartimento di Informatica
Universita` degli Studi di Torino
C.so Svizzera, 185 I-10149 Torino
■
I diagrammi di classe (Class Diagram) sono una notazione
(grafica) per la descrizione dei tipi degli oggetti (classi) che
fanno parte di un sistema ed i tipi di relazioni (statiche) che
esistono tra di questi (es: associazioni, sottotipo, ecc.)
Fa parte dello standard dell’Object Management Group
chiamato Unified Modeling Language (UML)
Riferimento: Martin Fowler, UML Distilled (2nd ed.), Addison Wesley
Longman, Inc., 2000
[email protected]
http://www.di.unito.it/~baldoni/didattica
Una breve introduzione ai Diagrammi di Classe
Perche` usarli?
■
Un esempio
La ragione fondamentale e` comunicare con un formalismo
indipendente dai linguaggi di programmazione i concetti
che guidano la realizzazione di un sistema orientato agli
oggetti
■
■
■
■
2
Un programma scritto in un linguaggio orientato agli oggetti
e` spesso difficile da leggere e capire (non ha una struttura
“sequenziale”)
Tratto da Martin
Fowler, UML Distilled
(2nd ed.)
In OOP innanzitutto si
individuano le classi
del progetto e poi i
metodi associati
(prima i tipi di dati e
poi le operazioni per
manipolare i dati)
Documentare un programma
Una breve introduzione ai Diagrammi di Classe
3
Classe
Una breve introduzione ai Diagrammi di Classe
4
Attributi
Descrive:
■
Class Name
Class Name
■
Attributi
■
Operazioni
■
Abstract Class Name
■
il nome della classe
gli attibuti della classe
specificandone il tipo, la
visibilita` e l’eventuale
inizializzazione
le operazioni (metodi)
contenute nella classe e le loro
signature
In italico i nomi delle classi
astratte
Una breve introduzione ai Diagrammi di Classe
Attributi
Esempio:
-cont: int
-nome: String
#lati: double[]
+base: double
■
■
Simile alle associazioni ma il
loro tipo e` associato a semplici
classi come stringhe, interi, reali,
booleani. Indicano un valore
piuttosto che un puntatore (o
riferimento)
Puo` essere associato un valore
di inizializzazione.
La visibilita` e` indicata mediate i
simboli + (public), # (protected) e
- (private)
Operazioni
5
Una breve introduzione ai Diagrammi di Classe
6
1
Operazioni
Generalizzazione
■
Class Name
■
Attributi
Operazioni
■
Esempio:
+area: double
+perimetro: double
-ipotenusa: double
Corrispondono nei linguaggi di
programmazione ai metodi delle
classi
Come per gli attributi la visibilita`
e` indicata mediate i simboli +
(public), # (protected) e (private)
In italico i nomi dei metodi
astratti (in classi astratte)
■
Sottoclasse 2
Una breve introduzione ai Diagrammi di Classe
Descrive le relazioni esistenti tra le
istanze di varie classi
E` possibile indicare direzzione di
accessibilita` (mediante una
freccia)
E` possibile indicare la
molteciplicita`
■
■
role A
■
■
Classe
■
aggregazione
■
role B
*
Classe B
0..1
role C
Classe C
class A {
private SetOf_A setOfObjsA;
}
class B {
private B objectOfA;
}
Una breve introduzione ai Diagrammi di Classe
Classe
composizione
9
Interfacce
■
Aggregazione: descrive le
relazioni “e` parte-di”
Composizione: descrive il fatto
che oggetti siano composti di
altri oggetti
Difficile separare nettamente
associazioni, aggegrazioni,
composizione. In genere
aggregazioni e composizioni
indicano una piu` stretta
dipendenza tra le istanze delle
classi
Esprimono (insieme
all’associazione) la relazione di
contenimento
Una breve introduzione ai Diagrammi di Classe
10
Together/J
■
<<interface>>
Interface Name
■
dipendenza
realizzazione
Client
Class
Implementing
Class
8
Aggregazioni e Composizione
Classe A
1
■
7
Associazione
1
Sopraclasse
Descrive la relazione di
ereditarieta` tra le varie classi di
un progetto
Denota la specializzazione di
una classe
Le sottoclassi estendono una
sopraclasse, le sottoclassi
ereditano i metodi delle
sopraclassi e definiscono nuove
funzionalita`
Sottoclasse 1
Una breve introduzione ai Diagrammi di Classe
role A
■
■
■
■
Le interfacce sono indicate
esplicitamente mediante
apposita dicitura
Analogamente le classi astratte
Nomi delle classi e nomi dei
metodi (astratti) in italico
Una freccia tratteggiata unisce
una intefaccia ad una sua
implementazione
Un altro tipo di freccia
tratteggiata esprime dipendenza
(intefacce e abstract non hanno
istanze)
Una breve introduzione ai Diagrammi di Classe
11
■
■
■
■
della Object International Software Ltd.
Together/J permette di mantenere la sincronizzazione tra i
diagrammi della progettazione e il codice Java
Facilita` la realizzazione di un programma orientato agli
oggetti integrando la progettazione con la scrittura vera e
propria del programma stesso
Object Domain, Rational Rose, ...
Una breve introduzione ai Diagrammi di Classe
12
2
Fly UP