Estratto del documento

FranK Il linguaggio di modellazione ad oggetti 1

Appunti tratti da “DA C++ A UML”, Fadini-Savy

Il linguaggio di modellazione a oggetti UML

L’analisi e il progetto agli oggetti rappresentano un modo di affrontare i

problemi attraverso la cui organizzazione è basata il più possibile su concetti

del mondo reale. Il concetto fondamentale è quello di oggetto, che raccoglie in

una sola entità la struttura dei dati e il suo comportamento. I concetti basi di

una simili analisi sono l’identificazione dei singoli oggetti, la loro

organizzazione in classi, l’ereditarietà, il polimorfismo. L’essenza finale

dello sviluppo orientato agli oggetti è l’identificazione e l’organizzazione dei

concetti del dominio dell’applicazione, piuttosto che la loro rappresentazione

finale in un linguaggio di programmazione. Lo sviluppo dei sistemi orientati

agli oggetti avviene attraverso le seguenti fasi:

- analisi dei requisiti e definizione delle specifiche (analisi orientata

agli oggetti, OOA);

- progettazione a oggetti (OOD, design orientato agli oggetti);

- programmazione a oggetti (OOP, programmazione orientata agli oggetti).

Un oggetto incapsula contemporaneamente un’informazione e un comportamento

tipici del dominio applicativo. Esso possiede un’informazione e un

comportamento.

La classificazione permette di mettere insieme oggetti con una propria

individualità, ma con caratteristiche comuni. Queste caratteristiche vengono

catturate tramite il concetto di classe. La classe, dunque, è un meccanismo di

astrazione che permette di raggruppare entità in un’unica metafora concettuale.

Il linguaggio UML (Unified Modeling Language) nasce per soddisfare il bisogno di

un linguaggio di modellazione che sia facile e capace di affrontare le

problematiche di progetto di sistemi software complessi. Lo sviluppo di UML

comincia nel 1994 quando Booch e Rumbaugh della Rational Software Corporation

inziano il lavoro di unificazione dei rispettivi metodi. Successivamente

Jacobson si aggrega a questo processo di unificazione integrando anche il suo

OOSE (Object Oriented Software Enginnering).

UML è un linguaggio per la specifica, la costruzione e la documentazione di

sistemi software complessi. Le notazioni di UML consentono la costruzione di

diagrammi che rappresentano diverse astrazioni del modello del sistema. I

diagrammi standard di UML sono i seguenti:

- diagrammi dei casi d’uso (use case diagram);

- diagramma delle classi (class diagram);

- diagramma di sequenza (sequence diagram);

- diagramma di collaborazione (collaboration diagram);

- diagramma di stato (state diagram);

- diagramma di attività (activity diagram);

http://www.quellidiinformatica.org – La community studenti di Ingegneria Informatica di Napoli

FranK Il linguaggio di modellazione ad oggetti 2

- diagramma dei componenti (component diagram);

- diagramma di allocazione (deployment diagram).

Diagramma dei casi d’uso

Un caso d’uso è una tipica interazione tra un utente e il sistema; esso cattura

la funzionalità così come percepite dall’utente. L’utilizzo dei casi d’uso

fornisce una rappresentazione delle responsabilità del sistema in termini di

funzionalità esterne, permettendo una individuazione dei ruoli e dei processi

esistenti nel dominio del problema. Un processo all’interno del dominio del

problema può essere rappresentato (ad un alto livello di astrazione) da un caso

d’uso. I ruoli giocati dai vari utenti del sistema sono rappresentati da attori.

Il frammento della realtà che si cerca di modellare sarà pertanto l’interazione

tra gli attori e il sistema, attraverso i casi d’uso tipici.

Modellare la realtà d’interesse significa, secondo UML, individuare tutti i

possibili casi d’uso del sistema, tutti gli utenti dei singoli casi d’uso e

rappresentare le interazioni tra questi.

Le relazioni tra attori e casi d’uso indicano partecipazione: gli attori

compiono i casi d’uso con i quali sono in relazione. Le relazioni tra i casi

d’uso possono essere di due tipi:

1) d’uso: <<uses>>

2) d’estensione: <<extends>>

Le relazioni d’uso formalizza i casi in cui più casi d’uso racchiudono una serie

di azioni comuni. Un caso d’uso dovrebbe ritagliare l’essenza dei processi di

dominio senza inglobare le numerose variazioni che spesso si riscontrano

all’interno del processo stesso. Le estensioni sono dei percorsi aggiuntivi al

caso d’uso di base. il caso d’uso può essere esteso con percorsi alternativi che

compendiano una pluralità di azioni. Quindi, si può utilizzate la relazione

<<usa>> per non ripetere all’interno di più classi d’uso comportamenti comuni;

si può utilizzare la relazione <<estende>> per descrivere le variazioni

possibili a un comportamento “normale”.

Il diagramma delle classi d’uso è un diagramma in cui vengono rappresentati gli

attori, un insieme di casi d’uso del sistema (raffigurato da un rettangolo che

li racchiude), associazioni di comunicazione (partecipazioni) tra attori e casi

d’uso e generalizzazioni tra casi d’uso.

Un caso d’uso è rappresentato da un ellisse, un attore è raffigurato da un’icona

con un uomo stilizzato. Le relazioni significative in un diagramma dei casi

d’uso sono le seguenti:

- conduzione: la partecipazione di un attore a un caso d’uso è rappresentata

da una linea che va dal simbolo dell’attore al particolare caso d’uso.

- estensione: una relazione è rappresentata da una freccia che va dal caso

d’uso A al caso d’uso B. la freccia va etichettata con <<extends>>: si

http://www.quellidiinformatica.org – La community studenti di Ingegneria Informatica di Napoli

FranK Il linguaggio di modellazione ad oggetti 3

indica che una istanza di B può includere il comportamento specificato da

A;

- uso: una relazione tra casi d’uso è rappresentata da una freccia che va

dal caso d’uso che usa a quello che viene usato; la freccia viene

etichettata con <<uses>>; una relazione d’uso indica che una istanza del

caso d’uso A includerà anche il comportamento specificato da B.

Un caso d’uso ingloba molti percorsi alternativi che saranno seguiti in

funzione delle condizioni che si verificano. Un percorso all’interno di un

caso d’uso è detto scenario. Questo è un singolo cammino che mostra una

particolare combinazione di condizioni entro quest’ultimo. Per ciascun caso

d’uso deve essere preparato almeno uno scenario. Ogni scenario mostra una

sequenza di interazioni tra oggetti, facenti parte del dominio del problema,

necessari al compimento del percorso. La sequenza delle interazioni è

iniziata dall’attore del caso d’uso e deve portare ad un risultato tangibile.

La rappresentazione degli scenari può essere realizzata in maniera testuale,

descrivendo una lista di interazioni tra oggetti, sia grafica. Gli scenari

possono individuare delle entità concettuali del sistema: esplorando le varie

sequenze di azioni si individueranno le entità che subiscono le azioni a

quelle che le compiono.

Diagramma delle classi

La percezione della realtà che ci circonda avviene tramite l’individuazione

delle entità che la compongono e delle relazioni che intercorrono tra esse.

Le entità sono istintivamente sottoposte a un processo mentale di

classificazione: entità apparentemente diverse sono raggruppate in classi in

relazione alle loro proprietà.

UML propone una notazione grafica e un modello standard di rappresentazione:

il diagramma delle classi (class diagram).

Esso cattura i concetti propri del dominio del problema sotto studio

rimanendo svincolato da come tali concetti saranno rappresentati dal

software. In questa fase si deve comprendere “cosa” e non “come”

(l’implementazione). Un diagramma delle classi mostra la struttura statica

del modello del sistema in fase di studio; in particolare esso evidenzia le

classi, la loro struttura interna e le loro relazioni.

Una classe è un descrittore di un insieme di oggetti con struttura,

comportamento e relazioni comuni. Una classe in UML è rappresentata

attraverso un rettangolo con tre sezioni: la prima specifica il nome della

classe, la seconda gli attributi e poi i metodi.

Si possono specificare per gli attributi, i tipi e la visibilità, e per i

metodi, la visibilità, il tipo ritornato, tipo e nome dei parametri formali.

http://www.quellidiinformatica.org – La community studenti di Ingegneria Informatica di Napoli

FranK Il linguaggio di modellazione ad oggetti 4

In un diagramma delle classi è possibile specificare una particolare vista

delle classi e cioè l’insieme dei servizi che una classe mette a

disposizione. Questa specifica prende il nome di interfaccia (<<interface>>).

Si riporta per quest’ultimo un nome e la lista delle operazioni.

La classe che fornisce i servizi specificati in una interfaccia è in

relazione di implements con essa.

Gli attributi rappresentano le caratteristiche comuni degli oggetti di una

classe. Ogni oggetto avrà durante il suo ciclo di vita valori propri per i

suoi attributi. L’insieme di tali valori rappresenta lo stato dell’oggetto e

ne influenza il comportamento.

In alcuni casi, l’attributo può essere una caratteristica della classe, non

degli oggetti. Il valore di tale attributo sarà condiviso da tutti gli

oggetti della classe.

I metodi rappresentano nel loro insieme il comportamento degli oggetti di una

classe. Il comportamento effettivo di un oggetto dipenderà dal suo stato

corrente. In alcuni casi uno o più metodi rappresentano il comportamento

della classe (metodo della classe); l’invocazione di un tale metodo può

essere fatta sia sulla classe che sugli oggetti istanza. Sia gli attributi

che i metodi per gli oggetti di una classe possono avere diverse visibilità:

privata, pubblica e protetta. In UML la visibilità è specificata attraverso i

simboli: - visibilità privata, + visibilità pubblica, # visibilità protetta,

$ metodo o variabile della classe (statica).

La visibilità privata indica che gli attributi e/o metodi sono visibili

soltanto all’interno della classe ove sono definiti, la visibilità pubblica

dice che essi sono visibili anche all’esterno della classe, la visibilità

protetta dice che essi sono visibili all’interno della classe in cui sono

definiti e all’interno di tutte le classi che da queste derivano. È possibile

specificare anche se gli attributi e i metodi sono propri della classe. In

questo caso è usato # e gli attributi e i metodi sono detti statici.

Il principio dell’information hiding spinge alla definizione di attributi

privati alla classe. Questa scelta nasconde all’utente degli oggetti istanza

la struttura dati utilizzata per implementare gli attributi. L’utente conosce

esclusivamente il tipo degli attributi specificato nella “firma” dei metodi.

I metodi sono i meccanismi attraverso il quale gli oggetti di una clase

forniscono un servizio.

Le dimensioni di un diagramma delle classe aumentano rapidamente quando la

realtà da modellare è complessa. Per tale motivo UML propone l’utilizzo dello

stereotipo del package. Il package indica un raggruppamento di classi per una

rappresentazione architetturale del sistema software: ciascun package

rappresenta un sottosistema nel senso più ampio della progettazione. Gruppi

di classi fortemente correlati possono essere raggruppati in un apposito

package. Occorre raggruppare oggetti massimizzando la coesione interna e

http://www.quellidiinformatica.org – La community studenti di Ingegneria Informatica di Napoli

FranK Il linguaggio di modellazione ad oggetti 5

minimizzando la dipendenza. Una dipendenza tra due package dipende dalla

dipendenza che le classi presenti in uno hanno con le classi nell’altro.

La modellazione in termini di package dovrebbe iniziare in fase di specifica

dei requisiti.

Relazioni tra classi e oggetti. Tra classi e oggetti esistono essenzialmente

tre tipi di relazione:

1) generalizzazione-specializzazione;

2) composizione (detta anche aggregazione);

3) associazione.

La generalizzazione-specializzazione permette, in fase di analisi, di

individuare le entità di interes

Anteprima
Vedrai una selezione di 9 pagine su 38
Linguaggio di modellazione Pag. 1 Linguaggio di modellazione Pag. 2
Anteprima di 9 pagg. su 38.
Scarica il documento per vederlo tutto.
Linguaggio di modellazione Pag. 6
Anteprima di 9 pagg. su 38.
Scarica il documento per vederlo tutto.
Linguaggio di modellazione Pag. 11
Anteprima di 9 pagg. su 38.
Scarica il documento per vederlo tutto.
Linguaggio di modellazione Pag. 16
Anteprima di 9 pagg. su 38.
Scarica il documento per vederlo tutto.
Linguaggio di modellazione Pag. 21
Anteprima di 9 pagg. su 38.
Scarica il documento per vederlo tutto.
Linguaggio di modellazione Pag. 26
Anteprima di 9 pagg. su 38.
Scarica il documento per vederlo tutto.
Linguaggio di modellazione Pag. 31
Anteprima di 9 pagg. su 38.
Scarica il documento per vederlo tutto.
Linguaggio di modellazione Pag. 36
1 su 38
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher cecilialll di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Fassolino Rita.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community