Ingegneria del Software: UML Class Diagram



Похожие документы
Esercitazione su UML Ingegneria del Software - San Pietro

Politecnico di Milano. Ingegneria del Software a.a. 2006/07. Appello del 14 settembre 2007 Cognome Nome Matricola

Modellazione dei dati in UML

UML Diagrammi delle classi. UML Diagramma classi 1

Identificare le classi in un sistema

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

ISC. L indicatore sintetico di costo del conto corrente

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

Guida all uso di Java Diagrammi ER

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

Cos è l ISC (Indicatore Sintetico del Conto Corrente) e cosa sono i Profili tipo d utilizzo

Esercitazione su UML Ingegneria del Software - San Pietro

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

La Progettazione Concettuale

Progettazione di una base di dati Ufficio della Motorizzazione

Manuale d'uso. Manuale d'uso Primo utilizzo Generale Gestione conti Indici di fatturazione Aliquote...

Informatica (Basi di Dati)

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

Concetti di base di ingegneria del software

UML Unified Modeling Language

I sei profili relativi ai conti a pacchetto sono:

Soluzione dell esercizio del 2 Febbraio 2004

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

Object Oriented Software Design

object oriented analysis

Progettazione Logica. Progettazione Logica

Un modello è ragionevole quando contiene queste tre caratteristiche.

Organizzazione degli archivi

Progettaz. e sviluppo Data Base

I sistemi di pagamento nella realtà italiana

Determinare la grandezza della sottorete

Basi Di Dati, 09/12/2003

Guida alla compilazione on-line delle domande di Dote Scuola A.S per le Famiglie INDICE

Circolare N. 155 del 26 Novembre 2014

Basi di Dati corso C Esercitazione 18/12/2002 Autonoleggio tempo: 3 ore

Progettazione concettuale

Claudia Raibulet

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE

ISC CONTI CORRENTI E PROFILI OPERATIVITA

Strumenti di modellazione. Gabriella Trucco

Diagrammi di Flusso dei Dati

Project Planning. Politecnico di Milano. Progetto di Ingegneria del Software novembre Elisabetta Di Nitto Raffaela Mirandola

Composizione. Tipo. Pubblicità. Numero ripetizioni. (1,N) (1,1) Composizione. Tipo. Messaggio promozionale. Codice. Azienda. Prodotto.

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I

Lezione 2. Il modello entità relazione

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

Basi di dati I. Esercitazione proposta

Cos'è una vlan. Da Wikipedia: Una LAN virtuale, comunemente

Le fattispecie di riuso

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Basi di Dati Relazionali

Registratori di Cassa

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

Reti di Telecomunicazione Lezione 8

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

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

CP Customer Portal. Sistema di gestione ticket unificato

Esempio ordini 08UMLEX1.1

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Report di valutazione studiolegalebraggio.it

SITO DI PUBBLICAZIONE ANNUNCI

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

DALLA PARTE DEGLI ALTRI OPERATORI ECONOMICI. La nostra risposta alle esigenze della tua attività.

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

UML - Unified Modeling Language

Traccia di soluzione dell esercizio del 25/1/2005

Soluzione dell esercizio del 12 Febbraio 2004

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

Dalla progettazione concettuale alla modellazione di dominio

Rappresentazione grafica di entità e attributi

Gestione del workflow

PowerPoint 2007 Le funzioni

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

Software per Helpdesk

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

CONTI CORRENTI A CONSUMATORI INDICATORE SINTETICO DI COSTO (ISC) E PROFILI DI OPERATIVITA

Modulo 4: Ereditarietà, interfacce e clonazione

Manuale d'uso del Connection Manager

Sequence Diagram e Collaboration Diagram

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

Database 1 biblioteca universitaria. Testo del quesito

Progettazione : Design Pattern Creazionali

SIMULAZIONE PROVA SCRITTA ESAME DI STATO. PER LA DISCIPLINA di SISTEMI

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

RIDURRE I COSTI ENERGETICI!

MODELLO E/R. Modellazione dei dati

La Metodologia adottata nel Corso

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

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

1- OBIETTIVI DEL DOCUMENTO 2- INTRODUZIONE

Guida alla compilazione on-line delle domande di Dote Scuola A.S per le Famiglie INDICE

Транскрипт:

Ingegneria del Software: UML Class Diagram Due on Mercoledì, Aprile 1, 2015 Claudio Menghi, Alessandro Rizzi 1

Contents Ingegneria del Software (Claudio Menghi, Alessandro Rizzi ): UML Class Diagram 1 Introduzione 3 1.1 Che cos è UML?........................................... 3 1.2 Class diagram............................................. 3 1.3 Classi................................................. 3 1.4 Relazioni............................................... 3 2 Esercizi 4 2.1 Esercizio 1............................................... 4 2.2 Esercizio 2............................................... 5 2.3 Esercizio 3............................................... 6 3 Esercizi per casa 8 Page 2 of 8

1 Introduzione 1.1 Che cos è UML? UML è un linguaggio grafico per esprimere diagrammi relativi alle diverse fasi di sviluppo del software. In particolare è composto da una serie di notazioni che generalizzano la maggior parte di costrutti orientati agli oggetti disponibili. 1.2 Class diagram Un class diagram è un diagramma UML che ha lo scopo di fornire la rappresentazione statica di un sistema orientato agli oggetti, mostrando le classi in gioco e le relazioni tra queste. Si compone di due elementi: le classi e le loro relazioni. 1.3 Classi Una classe è rappresentata da un rettangolo suddiviso vericalmente in tre parti. Nella prima parte è presente il nome della classe, nella parte centrale gli attributi posseduti dalla classe e nella parte bassa i metodi forniti dalla classe. Gli attributi seguono la notazione: <modificatore di visibilitá> nome attributo : <tipo attributo>[= valore di default]. Il modificatore di visibilità è un carattere tra + # - a cui corrisponde una visibilità equivalente in Java a un attributo pubblico, protetto, default e privato. I metodi seguono la notazione: <modificatore di visibilitá> nome metodo (<parametro 1: tipo parametro1>,...) <: tipo di ritorno>. I modificatori di visibilità sono gli stessi usati per gli attributi. Generalizzazione É possibile, similmente a quanto avviene in Java, definire una gerarchia di classi utilizzando la generalizzazione, una freccia vuota che parte dalla classe figlio e punta alla classe padre. Stereotype É possibile estendere il vocabolario UML mediante gli stereotype: é possibile creare nuovi elementi utilizzando elementi esistenti taggati con un identificativo tra guillmette «e». Tale elemento assume un nuovo significato. Nell ambito del class diagram, gli stereotype rilevanti sono l interfaccia ( «interface» ) e l enumerazione ( «enumeration» ). Nel caso dell interfaccia, non essendo presenti attributi, saranno caratterizzati da solo 2 suddivisioni. Properties É possibile specificare informazioni addizioni relative ad una certa classe utilizzando una property. Una property è costituita da una sequenza di stringhe di testo tra parentesi graffe separata da virgole, posta nel primo riquadro della classe. Una property particularmente utile è {abstract}, che specifica il fatto che una classe sia astratta. 1.4 Relazioni In un class diagram è possibile definire diverse relazioni tra le classi. Ogni relazione può essere caratterizzata da: un nome, che identifica la relazione un ruolo per ciascuna delle parti coinvolte, che specifica in che modo tale entità partecipa alla relazione una molteplicità per entrambe le parti, che specifica quanti elementi della classe sono coinvolti nella relazione Page 3 of 8

Il ruolo diventa importante quando la stessa classe è messa in relazione con se stessa. La molteplicità viene specificata tramite i valori estremi (minimo e massimo) separati da dei puntini (.. ). Quando un estremo non è specificato può essere utilizzato utilizzando il carattere *. Volendo è possibile combinare valori (o intervalli) differenti, separandoli tramite virgola. È possibile definire un verso all interno della relazione, caratterizzato da una freccia aperta ad una delle estremità della relazione. Tale simbolo limita la navigabilità della relazione nel verso specificato dalla freccia. Tipi di relazione Ci sono 3 tipi di relazione: associazione: rappresenta una generica relazione tra due classi aggregazione: rappresenta il fatto che una classe costituisce una parte dell altra, è caratterizzata da un rombo aperto all estremo della classe principale composizione: rappresenta un aggregazione forte: la parte non può esistere al di fuori della classe principale e viene creata e distrutta con questa. Viene rappresentata dal rombo dell aggregazione pieno. 2 Esercizi 2.1 Esercizio 1 Esercizio 1: Rappresentare il diagramma delle classi relativo allo scenario seguente. Un Veicolo è composto da un Motore Veicolo: ha una targa e numero di telaio Motore: ha una cilindrata definita su n pistoni Un Pullman è un tipo di Veicolo che trasporta passeggeri Pullman: appartiene ad una società e dispone di n posti a sedere Passeggero: è identificato da un nome e cognome Il class diagram può essere derivato abbastanza facilmente. Abbiamo 4 classi: Veicolo,Motore, Pullman e Passeggero. Risulta evidente il fatto che la classe Pullman sia una sottoclasse di Veicolo, e che Passeggero sia associata a Pullman. Relativamente alla relazione tra Veicolo o Motore è possibile utilizzare, a seconda della situazione particolare, aggregazione o composizione, a seconda che un certo motore possa cambiare indipendentemente dal veicolo. Gli attributi utilizzati sono quelli citati nel testo: targa e telaio per Veicolo cilindrata e pistoni per Motore società e numposti per Pullman nome e cognome per Passeggero Normalmente si considerano attributi privati e metodi pubblici. In Figura 1, rappresentiamo il diagramma delle classi relativo all esercizio. Page 4 of 8

Figure 1: Soluzione esercizio 1 2.2 Esercizio 2 Esercizio 2: Disegnare un diagramma delle classi UML che rappresenti la seguente situazione: Nella redazione di una testata giornalistica ci sono tre tipi di giornalisti: gli editori, i reporter, ed i fotografi. Ogni dipendente è caratterizzato da un nome e da un salario e ha diritto ad almeno un benefit (cioè un oggetto che viene concesso in uso al dipendente dall azienda, ma che è di proprietà dell azienda). Ci possono essere vari tipi di benefit: telefono cellulare, macchina fotografica, computer (che può essere o un portatile, o un palmare). Tra i benefit ci possono anche essere degli apparecchi che hanno funzionalità sia di telefono cellulare che di macchina fotografica. Un telefono cellulare è caratterizzato da un numero di telefono, e offre la funzionalità di chiamata di un altro numero, e di spedizione di un testo ad un altro telefono. Se il telefono ha anche funzionalità di macchina fotografica, permette anche di inviare immagini (che si possono immaginare come sequenze di bit). I fotografi hanno diritto, come benefit, ad esattamente una macchina fotografica. Ci sono 2 tipi di reporter: i reporter junior e quelli senior. I reporter junior hanno diritto ad esattamente un telefono cellulare; i reporter senior hanno invece diritto, come benefit, ad un apparecchio con doppia funzionalità celullare/macchina fotografica. La prima classe che troviamo è Giornalista. Dal testo sappiamo che sono presenti diversi tipi di giornalisti. In genere è possibile rendere in Java questa scelta in 2 modi: tramite generalizzazione: si implementa la tradizionale gerarchia di classi definendo le sottoclassi Fotografo, Editore e Reporter. Page 5 of 8

tramite enumerazione dei tipi: creiamo una enumerazione (stereotipo «enumeration») coi tipi FOTOGRAFO, EDITORE e REPORTER; aggiungiamo alla classe Giornalista un aggregazione all enumerazione. La prima soluzione ha il vantaggio di fornire più controlli sui tipi, al prezzo di una minore versatilità. La seconda, al contrario, permette una maggiore flessibilità eliminando controlli sulle operazioni possibili su ciascun tipo. In genere si tende a utilizzare la seconda scelta solo quando il comportamento delle sottoclassi non differisce dal comportamento della classe padre. Altrimenti il rischio è di dover effettuare uno switch sul tipo per ogni operazione della classe, limitando i benefici della programmazione ad oggetti. Un possibile svantaggio della prima scelta si ha invece negli scenari in cui è richiesto un comportamento generale. In tal modo è possibile semplificare la logica applicativa a poche operazioni comuni. Nella soluzione proposta optiamo per la prima scelta. La seconda parte del nostro class diagram analizza il ruolo del benefit. Analogamente a quanto visto prima la soluzione proposta fa uso di generalizzazione. In questo caso, a causa delle operazioni particolari richieste dalla classe Telefono, risulta più consigliato l utilizzo della gerarchia. Si noti che per alcune parti, ad esempio le classi Portatile e Palmare, sarebbe possibile utilizzare l altra alternativa. Tuttavia in alcuni casi l uso di un approccio misto può complicare eventuali modifiche future. Relativamente alla relazione tra Giornalista e Benefit, analogamente abbiamo due possibili alternative: modellare le relazioni sul padre modellare le relazioni sui figli Queste scelte vanno di pari passo con le scelte effuttuate precedentemente. In particolar modo, spostare le relazioni sulla classe padre, in modo analogo con l utilizzo di enumerazione, da un lato semplifica la progettazione (è disponibile un unica relazione generalizzata), dall altro riduce i controlli (è possibile effettuare operazioni non consentite o violare vincoli del modello). Viceversa le relazioni sui figli esprimono vincoli più stringenti al costo di un aumento della complessità. In questo caso se applicassimo le relazioni tra le classi padre non potremmo esprimere il vincolo relativo all associazione tra fotografo e fotocamera. Nella soluzione proposta scegliamo di modellare le relazioni tra le classi figlie. La soluzione è mostrata in Figura 2. 2.3 Esercizio 3 Esercizio 3: Disegnare un diagramma delle classi UML che rappresenti una rete di computer. Questa si compone di nodi, i quali possono essere di due tipi: host e router. Gli host sono connessi ad esattemente un router, mentre i router possono essere connessi ad un numero qualunque di host e ad almeno un altro router. I nodi di una rete possono essere collegati tra loro mediante link fisici. Un link fisico può collegare più host e più router tra loro. Ogni connessione tra nodi della rete e link fisici è caratterizzata da un indirizzo IP. Un host nella rete può offrire dei servizi. Ogni servizio, su un certo host, è caratterizzato da una porta. Inoltre, ogni servizio si caratterizza per il tipo di protocollo su cui è trasportato, che può essere TCP o UDP. Page 6 of 8

Figure 2: Soluzione esercizio 2 Figure 3: Soluzione esercizio 3 Innanzitutto modelliamo il concetto di rete tramite le classi Rete e Nodo. Notare che la presenza della classe Rete è opzionale; nel caso fossimo interessati a modellare un unica rete, non avremmo bisogno di tale classe. Per associare l entità Link Fisico alla classe Nodo utilizziamo la classe intermedia IP. Allo stesso modo utilizziamo la classe Porta come tramite tra Host e Servizi. Questo perchè tali classi sono relativi alla Page 7 of 8

specifica relazione presente. Relativamente al tipo di servizio, si utilizza l enumerazione Type. Questo perchè il tipo particolare (TCP, UDP) non comporta un comportamento differente. L esercizio è raffigurato in Figura 3. 3 Esercizi per casa Disegnare un diagramma delle classi UML che rappresenti i prodotti bancari offerti da una banca. Una banca si vuole dotare di un nuovo sistema informativo per unificare la gestione dei prodotti bancari. Nello specifico, la banca tratta conti correnti tradizionali, conti correnti online, mutui, e portafogli titoli. Mentre i conti correnti sono sottoscrivibili da tutti, i mutui e i portafogli titoli sono riservati ai clienti intestatari di un conto corrente con una giacenza media di 2000 euro negli ultimi tre mesi. Ciascun cliente della banca può scegliere di aprire alternativamente un conto corrente online, uno tradizionale, ma non entrambi. Il conto corrente online prevede esclusivamente l accesso al conto tramite il sito Internet ed è necessariamente associato ad una carta Bancomat che è invece opzionale nel caso del conto tradizionale. Entrambi i conti possono poi essere associati a carta di credito e libretto assegni. Anche Carta di credito e libretto assegni sono riservati ai clienti titolari di un conto corrente con una giacenza media di 2000 euro negli ultimi tre mesi. Nel caso del conto online, il versamento di denaro può avvenire solo tramite assegno o bonifico, mentre nel caso del conto tradizionale è anche possibile versare contanti. I conti correnti sono associati a delle spese fisse, e a delle spese per ciascuna operazione sul conto (prelievo, versamento, ecc.). Tuttavia sono previsti dei bonus per i clienti che effettuano un numero elevato di operazioni mensili. Page 8 of 8