UML Unified Modeling Language



Documenti analoghi
Modellazione dei dati in UML

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Strumenti di modellazione. Gabriella Trucco

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Dalla progettazione concettuale alla modellazione di dominio

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Identificare le classi in un sistema

UML Diagrammi delle classi. UML Diagramma classi 1

Object Oriented Software Design

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)

Programmi e Oggetti Software

MODELLO E/R. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Soluzione dell esercizio del 2 Febbraio 2004

Claudia Raibulet

Raggruppamenti Conti Movimenti

I Sistemi Informativi

Esercitazione di Basi di Dati

Esercitazione di Basi di Dati

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Il modello EER comprende tutti i concetti di modellazione del modello ER, cui si aggiungono:

PROGETTAZIONE CONCETTUALE

IDENTIFICAZIONE DEI BISOGNI DEL CLIENTE

La Progettazione Concettuale

Object Oriented Programming

Basi di dati. Le funzionalità del sistema non vanno però ignorate

LO SVILUPPO DELLE COMPETENZE RELAZIONALI DEL PERSONALE INTERNO A CONTATTO CON IL CLIENTE

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA CONCETTUALE LE ASSOCIAZIONI

Progettaz. e sviluppo Data Base

Concetti preliminari teorici per il corso di Access Avanzato - Sc.Elem Falcone - PON Prof. M. Simone

Programmazione A.A Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII)

LA GRAFICA E LA GEOMETRIA OPERATIVA

Traccia di soluzione dell esercizio del 25/1/2005

object oriented analysis

Informatica (Basi di Dati)

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

COMUNE DI SOLBIATE ARNO

DEPLOY YOUR BUSINESS

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Concetti di base di ingegneria del software

Progettare e scrivere una relazione sociale: Assistente sociale nella P.A. e libera professione. Relazione di Ombretta Okely

Un modello è ragionevole quando contiene queste tre caratteristiche.

Alessandra Raffaetà. Basi di Dati

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

Manuale del Sistema di Gestione Integrato per la Qualità e l Ambiente INDICE

Corso di Informatica

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13

La progettazione concettuale: il modello ER. 17/12/2007 Unità di Apprendimento A2 1

Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

Gruppo Buffetti S.p.A. Via F. Antolisei Roma

La Qualità il Controllo ed il Collaudo della macchina utensile. Dr. Giacomo Gelmi

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA

Rappresentazione grafica di entità e attributi

Officina Meccanica. Analisi, progetto e sviluppo

GERARCHIA IS-A (è un) GENERALIZZAZIONI / SPECIALIZZAZIONI ESEMPIO 1

A cura di Giorgio Mezzasalma

Anno 3. Funzioni: dominio, codominio e campo di esistenza

UML - Unified Modeling Language

Soluzione dell esercizio del 12 Febbraio 2004

MODELLO E/R. Modellazione dei dati

Corso di Sistemi di Elaborazione delle Informazioni I Anno 2005/2006. Esercizi entità relazione risolti. a cura di Angela Campagnaro

macchine sono di tre tipi: quelle per i cibi, quelle per le bevande fredde e quelle per le bevande calde. Per

Registratori di Cassa

Manuale Operativo Beneficiario Sfinge2020

MODELLO RELAZIONALE. Introduzione

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Realizzazione di una classe con un associazione

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

PREVENTIVO uno strumento che ci tutela!

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

Progettazione di Basi di Dati

Elementi di UML (7): Diagrammi dei componenti e di deployment

LO SVILUPPO DELLE COMPETENZE PER UNA FORZA VENDITA VINCENTE

Diagrammi dei package

Il paradigma OO e le relative metodologie di progettazione. Programmazione orientata agli oggetti

SCELTA DELL APPROCCIO. A corredo delle linee guida per l autovalutazione e il miglioramento

IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE:

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

PROGRAMMAZIONE E GESTIONE DI UN PROGETTO DI SERVIZIO SOCIALE

Progettazione del Software A.A.2008/09

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Il modello veneto di Bilancio Sociale Avis

Basi di dati. Esercizi sul modello E.R.

Corso di Informatica

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

sommario 1. introduzione al sistema 2. moduli base 3. tracciabilità e rintracciabilità 4. esportabilità dati macellazione

SCUOLA PRIMARIA SCIENZE NATURALI E SPERIMENTALI. Competenza: 1. Comunicazione efficace Indicatore: 1.1 Comprensione

Introduzione alla teoria dei database relazionali. Come progettare un database

INTEGRALI DEFINITI. Tale superficie viene detta trapezoide e la misura della sua area si ottiene utilizzando il calcolo di un integrale definito.

Sistemi ICT per il Business Networking

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

Lezione 4. Modello EER

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A Esercitazione. Programmazione Object Oriented in Java

Introduzione al corso

Progettazione orientata agli oggetti Introduzione a UML

Corso di. Dott.ssa Donatella Cocca

Transcript:

UML Unified Modeling Language Lezione 4-1 -

UML Il diagramma delle classi Parte Seconda - 2 -

Relazioni tra Classi&Oggetti I diagrammi delle classi mettono in evidenza i blocchi costitutivi del sistema software orientato agli oggetti. Tali blocchi sono le classi. Parlare di relazioni fra classi significa evidenziare tutte le possibili collaborazioni o interazioni fra le classi. Un sistema orientato agli oggetti è costituito da classi che collaborano tra loro scambiandosi messaggi. Quando è in esecuzione, un sistema object-oriented è popolato da istanze di classi. Tra classi esistono essenzialmente tre tipi di relazione: L associazione La generalizzazione specializzazione L aggregazione (detta anche composizione) L associazione Si definisce associazione fra due classi lo scambio reciproco di messaggi fra classi. L associazione tra due (o più) classi esprime un legame semantico tra classi. Essa è caratterizzata da: Un nome La molteplicità dell associazione Un eventuale ruolo giocato dalle parti associate La direzionalità Il Nome delle associazioni UML indica l associazione fra due classi con una linea continua; l associazione può essere etichettata con un nome che ne indica la natura. In questo caso si traccia sulla linea anche la punta di una freccia per indicare la direzione nella quale va interpretato il nome dell associazione. Persona Possiede Copre Polizza - 3 -

La figura precedente mostra due semplici associazioni. Un associazione fra due classi viene definita binaria. Molteplicità delle associazioni Un ulteriore elemento che può essere aggiunto ad un associazione è l informazione relativa alla sua molteplicità. Facciamo un esempio: Persona Possiede Il concetto è abbastanza intuitivo: una singola persona può possedere più automobili (nell esempio, tre) come può non possederne affatto (nella pratica avviene anche questo). L associazione fra persona e automobile ha la seguente molteplicità: 3 Potremo riscrivere il diagramma delle classi nel seguente modo: Persona Possiede 3 Il simbolo 1: indica che ad ogni istanza della prima classe corrisponde una ed una sola istanza della seconda classe. Esempio: la molteplicità di una relazione fra una persona e il suo codice fiscale è di questo tipo. Il simbolo : indica che ad ogni istanza della prima classe possono corrispondere da 0 a infinite (*) istanze della seconda classe. Esempio: La relazione fra la classe cliente e la classe fattura. Il simbolo 0..x (dove x può essere qualsiasi numero da 0 a *): indica che ad ogni istanza della prima classe possono corrispondere 0 o x istanze della seconda. Esempio 0..1: La relazione fra una persona e la sua partita IVA. Nomi dei ruoli In alcune occasioni può essere necessario chiarire il ruolo giocato da una classe all interno di un associazione. - 4 -

Persona 1 Prenota Comincia a * Viaggio 1 IndirizzoPartenza Indirizzo 1 Termina a La classe indirizzo nel diagramma assume tre ruoli differenti. La direzionalità La direzionalità specifica il verso di percorrenza della relazione e attribuisce alla classe origine del percorso la responsabilità di tenere traccia dell associazione. In conclusione, per dar vita ad un associazione (relazione semantica) tra classi è necessaria l esistenza di una collaborazione tra esse, ottenuta tramite lo scambio di messaggi. Per l implementazione IndirizzoCasa Sul piano implementativo, l associazione si traduce nella istanziazione, all interno di una classe, di una o più istanze di un altra classe, conservando in un opportuna struttura dati gli oggetti istanziati. Generalizzazione - Specializzazione IndirizzoDestinazione La generalizzazione specializzazione (gen-spec) permette in fase di analisi di individuare le entità di interesse procedendo per raffinamenti successivi: l analista può concentrarsi sull individuazione di una superclasse, che raccoglie un comportamento comune, rimandando ad un successivo passo la specializzazione delle realtà presenti nel dominio del problema. In un primo approccio dell analisi si può evitare di studiare tutte le peculiarità della classe, ma ci si può soffermare sul carattere generale del dominio del problema e quindi avere una più semplice rappresentazione. 1-5 -

Figura {isabstract = True} Superclasse Rettangolo -base: int -altezza: int +disegna() +calcoloperimetro() +calcoloarea() -nome : Stringa = +disegna() {abstract} +calcoloperimetro {abstract} +calcolaarea {abstract} Sottoclasse -raggio: int Cerchio +disegna() +calcoloperimetro() +calcoloarea() In questo caso si dice che una classe è un tipo di un altra classe. In UML la generalizzazione viene rappresentata con una freccia a punta triangolare che parte dalle classi più specializzate (sottotipi o sottoclassi) e termina nella classe che costituisce il tipo generale (supertipo o superclasse). Per l implementazione A livello di implementazione il concetto di specializzazione si traduce nel meccanismo di ereditarietà. Aggregazione o composizione Concettualmente una relazione di aggregazione evidenzia che una classe è l insieme di altre classi che concorrono a definirla. Pensiamo ad un automobile: essa è l assemblaggio di una serie di componenti (altre classi). Quindi si parla di aggregazione quando l istanza di una classe oltre ad avere attributi propri comprende attributi derivanti da istanze di altre classi. Un tipico esempio di aggregazione è la classe rappresentante un impianto di produzione, nella quale il prodotto finito è il risultato dell assemblaggio di diversi componenti. In altri termini, l aggregazione estende la responsabilità dell oggetto, il quale delega alcuni compiti ad altri oggetti. - 6 -

-marca: Stringa = -modello: Stringa = -velocità: Km/h=0 -accelerazione: m/s^2=0 -marciacorrente: Marcia{Folle, Prima, Seconda, }=Folle -stato: statomotore {Acceso,Spento} = Spento +muoviavanti +muoviindietro +marciaup +marciadown +Avvia Simbolo di aggregazione Carrozzeria -numeroserie: Stringa -colore: Enum {Rosso, Verde, } -peso: Kg Motore -numeroserie: Stringa -marca: Stringa= -numerovalvole: Enum{1..12} -numerocilindri: Enum{1..16} -peso::kg +start(): Boolean Ruota -circonferenza: int -tipocerchi: Stringa -peso: kg -avanti -indietro La relazione di contenimento può essere di tipo lasco (rombo vuoto) o stretto (rombo pieno). Si dice lasco quando la vita dell oggetto contenuto è indipendente dall oggetto contenitore. Questo comporta la non responsabilità per l oggetto contenitore di creare e distruggere l oggetto contenitore. Diversamente la relazione si dice stretta. Spesso quando ci si riferisce alle aggregazioni di utilizza il termine tutto-parte. Infatti le istanze della classe sono il tutto, mentre le istanze delle classi sotto i rombi sono le parti. Per l implementazione L interfaccia dell oggetto tutto (contenitore) viene definita utilizzando i metodi presenti nelle interfacce degli oggetti parti (contenuti). All interno della classe tutto ci saranno attributi di tipo classe parte. - 7 -

Linee Guida per la modellazione: il modello concettuale La produzione di diagrammi delle classi da un punto di vista concettuale coinvolge le seguenti attività: Definizione di classi e relazioni Identificazione di attributi e operazioni e loro assegnamento nelle classi Identificazione delle strutture di generalizzazione Definizione di classi e relazioni Le classi e le associazioni possono essere identificate: Dal risultato delle attività di raccolta delle informazioni Dalle specifiche comportamentali dei casi d uso Dall analisi approfondita dello stesso modello delle classi (derivante da riflessioni ed esperienze). I nomi e le frasi utilizzate dai casi d uso e nelle trascrizioni delle interviste spesso indicano già le classi. Bennett (1991) suggerisce alcune categorie di classi che possono essere identificate fin da subito: Occorrenze specifiche di un tipo generico: persone ( Fabio Rossi ), società ( Scarpe&Borse ) ed elementi organizzativi ( Addetti alle vendite ). Strutture inerenti il dominio del problema, come Dipendenti, Impiegati. Ecc. Astrazioni di cose come: Persone e ruoli: gestore di conto, addetto alla vendita delle polizze Oggetti fisici: automobile, polizza, conto corrente Concetti: vendita, prelievo, abilità Relazioni durevoli tra classi già identificate come accordo, registrazione Le locuzioni verbali possono indicare associazioni fra classi; altre relazioni possono emergere nel corso del raffinamento del modello delle classi. Per esempio: Il cliente gestisce un conto, un volontario possiede una particolare abilità - 8 -