Unified Modeling Language

Slides:



Advertisements
Presentazioni simili
Il paradigma Object Oriented
Advertisements

Programmazione ad oggetti
© 2007 SEI-Società Editrice Internazionale, Apogeo Unit à B2 Gli oggetti: concetti avanzati.
Oggetti Java.
Recupero debito quarto anno Primo incontro
Recupero debito quarto anno Secondo incontro
Informatica Recupero debito quarto anno Terzo incontro.
Recupero debito quarto anno Primo incontro Esercizi
Progettazione concettuale
Informatica 2 Lezione 4 Corso di laurea in matematica Informatica 2 Dott. Ing. Leonardo Vito Corso di laurea matematica indirizzo matematica per le applicazioni.
UML: Class Diagram 1 Corso IS I /03
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
29 febbraio 2008 Progettare tipi di dato astratti.
Le gerarchie di tipi.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Principi di Programmazione Object-Oriented
Principi di Programmazione Object-Oriented
Programmazione orientata agli oggetti OOP Object Oriented Programming
Fondamenti di Informatica
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Introduzione al linguaggio Java
Il linguaggio UML Luca Lista. Metodi Object Oriented –Booch Method by Grady Booch –OMT by Jim Rumbaugh –Objectory (Use Cases) by Ivar Jacobson –CRC by.
Overriding.
UML: Class Diagram Corso IS I /03
1 Le gerarchie di tipi. 2 Supertipi e sottotipi 4 un supertipo –class –interface 4 può avere più sottotipi –un sottotipo extends il supertipo ( class.
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Lezione XI Laboratorio di Programmazione. Ereditarieta Fondamentale proprieta dei linguaggi OO. Permette di specificare un nuova classe derivata da unaltra.
Java base IV: Java e la programmazione O.O.
CLASSI ED EREDITARIETÀ Come si è visto, è cruciale che la gerarchia rispecchi la realtà del mondo ma a volte ciò contraddice principi di efficienza Esempio:
Introduzione alla modellazione di sistemi interattivi
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Programmazione in Java (8)
AlgoLab - Ereditarieta' Ereditarietà e polimorfismo in Java Laboratorio di Algoritmi 02/03 Prof. Ugo de Liguoro.
Introduzione alla programmazione Object Oriented
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Il linguaggio UML Luca Lista.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
I metodi F. Bombi Campi e metodi Abbiamo visto che una classe può contenere – Campi – Metodi stato I campi sono utilizzati per memorizzare.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
UML.
Programmazione ad oggetti
Introduzione a UML.
Incapsulamento e information hiding
Diagramma delle Classi
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
1 Osservazioni Generali Struttura di programma Gerarchia di classi: overloading, overriding, e dispatching Analisi ed esecuzione Modificabilità e condivisione.
Fondamenti di Informatica II Ingegneria Informatica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Alberto Colombo Fulvio Frati
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 -Progettazione del software Ernesto Damiani Università degli Studi.
Programmazione in Java. Classi I programmi in Java consistono di classi. Le classi consentono di definire: collezioni di procedure (metodi statici) tipi.
Cose nuove di Java (prima a chiacchiera, poi formalmente)
LIP: 2 Maggio 2008 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
UML: Introduzione Corso IS I /03 Gianna Reggio Versione 0.0.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
LIP: 11 Maggio 2007 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
La Programmazione ad Oggetti
Corso di Algoritmi e Strutture Dati con Laboratorio Richiami di Java – parte II.
Corso di Algoritmi e Strutture Dati con Laboratorio A.A. 2015/16 Oltre le classi.
La programmazione ad oggetti
28/12/2001package 1 Package Pacchetti e interfacce.
1 Diagramma delle Classi. 2 Diagramma delle classi Grafico che fornisce una vista strutturale (statica) del sistema in termini di classi attributi operazioni.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Unified Modeling Language UML Unified Modeling Language

Cos’è UML E’ un linguaggio di progettazione, da non confondere con i linguaggi di programmazione (C, C++, Java,…) Fornisce una serie di diagrammi per rappresentare ogni tipo di modellazione Alcuni ambienti di programmazione sono in grado di convertire diagrammi UML in codice e viceversa

Diagrammi UML diagramma dei casi d’uso (use case) diagramma delle classi (class) diagramma di sequenza (sequence) diagramma di collaborazione (collaboration) diagramma di stato (statechart) diagramma delle attività (activity) diagramma dei componenti (component) diagramma di distribuzione (deployment)

Diagramma delle classi Rappresenta le classi che compongono il sistema, cioè le collezioni di oggetti, ciascuno con il proprio stato e comportamento (attributi ed operazioni) Specifica, mediante associazioni, le relazioni fra le classi.

Un esempio Nome Attributi (proprietà) Operazioni (metodi) Automobile marca modello colore targa Attributi (proprietà) cambiaTarga cambiaColore Operazioni (metodi)

Classe Metodi e Attributi public class SchedaAnagrafica { private String nome; private String cognome; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; public String getCognome() { return cognome; public void setCognome(String cognome) { this.cognome = cognome;

Modificatori +Public: Libero Accesso #Protected: Accessibile dalle Sottoclassi -Private: Accessibile solo all’interno della classe Static: Accessibili anche senza creare istanze

Ereditarietà superclasse ereditarietà sottoclassi simbolo di Persone nome cognome indirizzo cambiaIndirizzo superclasse simbolo di ereditarietà Clienti PotenzialiClienti codiceCliente clienteDal numVisite contaOrdini sottoclassi

Classi Astratte e Metodi Astratti Una Classe Astratta contiene metodi privi di implementazione Per questa ragione non può essere istanziata Il corsivo permette di distinguere le parti astratte da quelle concrete

Interfacce public interface Pesabile { public static String unitaDiMisura; public int getPeso(); }

Ereditarietà public abstract class EssereUmano { .... } public class Donna extends EssereUmano { public class Uomo extends EssereUmano {

Interfacce ed ereditarietà multipla Nota: L’ereditarietà multipla tra interfacce permette di porre in essere esempi di ereditarietà a diamante

Associazione Un’Associazione rappresenta la possibilità che un’istanza ha di inviare un messaggio ad un’altra istanza In UML viene rappresentata con una freccia, in Java viene implementata tipicamente con un reference

Esempio di Associazione public class Automobile { private Motore motore; public void accendi() { motore.inserisciMiscela(); motore.accendiCandele(); } public class Motore { public void inserisciMiscela(); public void accendiCandele(); }

Dipendenza La Dipendenza indica che un determinato oggetto può, in certe circostanze, chiamare i metodi di un altro pur senza possederne un’istanza La classe dipendente presuppone l’esistenza della classe da cui dipende. Non vale il viceversa In UML la dipendenza viene rappresentata con una freccia tratteggiata. In java tipicamente l’oggetto dipendente riceve un’istanza dell’oggetto da cui dipende come argomento di una chiamata a metodo

Dipendenza public class Automobile { public void percorri(TrattoPercorribile p) { .... } Nota: L’automobile dipende dalle strade (senza strade l’automobile non avrebbe senso di esistere). Al contrario le strade esistono indipendentemente dall’automobile

Aggregazione L’Aggregazione rappresenta un’associazione uno a molti Esprime concetto “è parte di ” (part of), che si ha quando un insieme è relazionato con le sue parti In UML l’aggregazione viene rappresentato con una freccia con la punta a diamante; in Java viene implementata con un array dinamico tipo “Vector”

Esempi di Aggregazione

Composizione Una Composizione è una relazione uno a molti che implica una forma di esclusività E’ un caso particolare di aggregazione in cui: la parte (componente) non può esistere da sola, cioè senza la classe composto una componente appartiene ad un solo composto La distruzione dell’oggetto che rappresenta il “tutto” provoca la distruzione a catena delle “parti” Il diamante si disegna pieno

Esempi di Composizione