LEZIONE 4 CLASS DIAGRAM E PACKAGE DIAGRAM

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "LEZIONE 4 CLASS DIAGRAM E PACKAGE DIAGRAM"

Transcript

1 Istituto di Scienza e Tecnologie dell'informazione A. Faedo Software Engineering and Dependable Computing Laboratory LEZIONE 4 CLASS DIAGRAM E PACKAGE DIAGRAM Laboratorio di Ingegneria del Software Guglielmo De Angelis guglielmo.deangelis@isti.cnr.it

2 la famiglia di diagrammi UML» structure diagrams» class diagram» object diagram» component diagram» behavior diagrams» state machine diagram» activity diagram» use case diagram» deployment diagram» composite structure diagram» package diagram» interaction diagrams» sequence diagram» communication diagram» interaction overview diagram» timing diagram

3 class diagram» struttura statica del sistema:» entità + relazioni

4 class diagram» struttura statica del sistema:» entità + relazioni» una classe descrive una entità da modellare» una classe è caratterizzata» da un nome,» degli attributi» delle operazioni sugli attributi» sono lo stesso concetto in O.O.» rappresentano un tipo di dato» dipendentemente dalla vista di riferimento corrispondono ad una implementazione dell'entità

5 class diagram» struttura statica del sistema:» entità + relazioni» le relazioni di base in un class diagram» semplificando : corrispondono alla definizione delle possibili interazioni tra le classi di un modello» una relazione tra una classe A ed una classe B significa che (in qualche modo) A può comunicare con B» il tipo di relazione definisce il modo di comunicazione

6 » struttura statica del sistema:» entità + relazioni class diagram» le relazioni di base in un class diagram» semplificando : corrispondono alla definizione delle possibili interazioni tra le classi di un modello» una relazione tra una classe A ed una classe B significa che (in qualche modo) A può comunicare con B» il tipo di relazione definisce il modo di comunicazione association dependency aggregation generalization realization composition interfacerealization

7 fondamentali object oriented : concetti fondamnetali I concetti fondamentali del mondo Object Oriented sono: {» classe» istanza» messaggio» metodo» ereditarietà» polimorfismo } oggetto

8 classe» modella una famiglia di entità del dominio di applicazione» le proprietà (attributi)» il comportamento (operazioni)» raggruppa un insieme coeso di entità» coesione vs. accoppiamento» esempi» mammifero, autoveicolo, grafo... OK» un oggetto si relaziona ad una classe allo stesso modo di come un dato si relaziona ad un tipo (nei ling. di progr.)

9 » rappresenta un elemento del mondo reale che si sta modellando istanza» ha associato un tipo (definito dalla classe)» può modellare un entità fisica, concettuale o software» trattore, concerto, lista, coda...» manifestazione concreta di un astrazione» ha un identità ben definita e incapsula uno stato e un comportamento

10 classi VS. oggetti Classe Author Modellazione di Classi in relazione con (usa) Classe PC Modellazione di Istanze

11 classi VS. oggetti Classe Author in relazione con (usa) Class Diagram Classe PC Author Bob PC del Lavoro Modellazione di Istanze

12 classi VS. oggetti Classe Author in relazione con (usa) Class Diagram Classe PC PC del Lavoro Author Bob Modellazione di Istanze PC di Casa

13 operazione, metodo, messaggio» operazione : specifica di un interfaccia (prototipo) che un oggetto mette a disposizione di altri oggetti» metodo : implementazione vera e propria dell'operazione di un oggetto» messaggio : è la richiesta di un metodo appartenente ad un oggetto A verso un metodo di un oggetto B

14 class diagram» mostra un insieme di classi, interfacce e le relazioni tra loro» dipendenza, associazione, aggregazione, composizione, generalizzazione» può essere visto come un grafo dove i nodi sono classi/interfacce e gli archi relazioni» possono contenere anche package o sottosistemi (usati per raggruppare elementi)

15 class diagram» modella la struttura statica di una applicazione» elementi specificati e/o composti a designtime» si usa per modellare:» gli elementi di una applicazione (vocabolario)» una classe è l astrazione di un elemento nel dominio del problema» semplici collaborazioni» una classe non vive da sola ma si relaziona con altre al fine di fornire, cooperativamente, un comportamento complesso

16 come rappresento una classe in UML -1- NOME ATTRIBUTI OPERAZIONI

17 compartimento nome» definisce il nome di un entità» stringa di testo» semplice stringa» path (prefisso + :: + nome_classe)» convenzione» lettera iniziale maiuscola

18 compartimento nome map in Java - public abstract class Sensor { /** Corpo della * classe */ }

19 » modella le proprietà di una classe comparto attributi» per ogni attributo, l insieme di valori (tipo) che esso può assumere» le proprietà sono condivise tra tutti gli oggetti appartenenti a quella classe» i.e. tutte le istanze che hanno quella classe come tipo» nel nostro esempio:» un sensore è caratterizzato da» identificativo (univoco)» frequenza di rilevamento della misura» modalità standby

20 comparto attributi map in Java - public class Sensor { int ID; int samplingfrequency = 5000; boolean ismute; int numberofinstrances; } Attenzione!!! Tra il codice Java e il modello UML non c è sempre una corrispondenza univoca e/o esatta!

21 comparto operazione» le operazioni manipolano lo stato degli oggetti ( ovvero il valore degli attributi )» hanno una segnatura: un tipo, nome e lista di parametri» operations compartment specifica cosa può fare una classe (e non come), ovvero che servizi offre» vedi slide 2 (operazione, metodo, messaggio)» ad esempio il nostro sensore :» setsamplingfrequency, getmeasure

22 public class Sensor { comparto operazione map in Java - } int getid(){} void setsamplingfrequency(int i){} int getsamplingfrequency(){} void setmuteon (){} void setmuteoff (){} int getmeasure(){} int getinstances (){}

23 come rappresento una classe in UML -1- NOME ATTRIBUTI OPERAZIONI

24 come rappresento una classe in UML -2- TYPE && MULTIPLICITY PRIVATE DEFAULT VALUE PROTECTED PUBLIC ATTRIBUTO DI CLASSE OPERAZIONE DI CLASSE

25 attributi ed operazioni di classe» attributi : il valore è condiviso tra tutte le istanze» operazioni : non richiedono una istanza della classe per essere invocate

26 attributi ed operazioni di classe map in Javapublic class Sensor { }... private static int numberofinstances;... public static int getinstances (){} int n1 = Sensor.getInstances(); come accederli... da un'alrta Sensor s = new Sensor(); classe{ int n2 = s.getinstances();

27 la visibilità di un elemento della classe PRIVATE PROTECTED PUBLIC

28 vedo / non vedo» principio di information hiding (encapsulation)» separazione tra interfaccia e implementazione» semantica del dato vs. implementazione della variabile» obiettivo : nascondere le scelte che possono essere soggette a cambiamenti

29 public class Sensor { } public void Sensor(){ } visibilità public && private (map in Java) this.numberofinstances ++; // OK public class testclass { } public void testmethod(){ } Sensor s = new Sensor(); s.setsamplingfrequency(23);// OK s.id = 45; // ERRORE

30 public class Sensor { } public void setmuteon(){ this.ismute = true;// OK } public class testclass { public void testmethod(){ } Sensor s = new Sensor(); s.ismute = true ; // ERRORE visibilità protected (map in Java) } anche se nel caso generale protect e private sembrano equivalenti, non è cosi. la differenza c'è con la generalizzazione. rimandiamo il discorso più avanti.

31 public, private, protected?!?!» principio di information hiding (encapsulation)» separazione tra interfaccia e implementazione» semantica del dato vs. implementazione della variabile» obiettivo : nascondere le scelte che possono essere soggette a cambiamenti

32 public, private, protected?!?!» principio di information hiding (encapsulation)» separazione tra interfaccia e implementazione» semantica del dato vs. implementazione della variabile» obiettivo : nascondere le scelte che possono essere soggette a cambiamenti» REGOLA PRATICA : gli attributi sono sempre privati, le operazioni possono essere pubbliche» chiaramente» l interfaccia deve essere particolarmente stabile» operazioni get/set per accedere agli attributi

33 le relazioni in un class diagram» una relazione rappresenta una connessione tra gli elementi di uno o più domini» nei class diagram si specificano relazioni tra :» classi, oggetti, interfacce, package,etc...» una relazione fornisce un percorso di comunicazione tra gli elementi del diagramma

34 le relazioni in un class diagram

35 generalizzazione» relazione tra una classe più generale ed una più specifica» padre super-classe» figlia sotto-classe» rappresentata da una freccia con triangolo bianco (verso la super-classe)» una sottoclasse eredita tutte le caratteristiche della super-classe» is-a-kind-of

36 generalizzazione map in Java - public class TempSensor extends Sensor { private int temp; private TemperatureScale scale;... }

37 generalizzazione quando usarla? -

38 » quanto è buono questo modello?» è corretto questo modello? generalizzazione quando usarla? -

39 » quanto è buono questo modello?» è corretto questo modello? generalizzazione quando usarla? -» dipende dallo scopo del modello:» finestra di testo con due scrollbar (orizzontale,verticale) ;

40 generalizzazione - soluzione -» PRINCIPIO DI SOSTITUIBILITA' (di Liskov)» se q(x) è una proprietà che si può dimostrare essere valida per oggetti x di tipo T, allora q(y) deve essere valida per oggetti y di tipo S dove S è un sottotipo di T.

41 generalizzazione - soluzione -» PRINCIPIO DI SOSTITUIBILITA' (di Liskov)» se q(x) è una proprietà che si può dimostrare essere valida per oggetti x di tipo T, allora q(y) deve essere valida per oggetti y di tipo S dove S è un sottotipo di T.» che riformulato in termini più quotidiani:» data una super-classe T di S; in tutti i contesti in cui si usa un'istanza di T, deve essere possibile utilizzare una qualsiasi istanza di S (o di una qualunque altra sottoclasse a qualsiasi livello)» la sottoclasse deve avere la stessa semantica della super-classe

42 generalizzazione - soluzione -» PRINCIPIO DI SOSTITUIBILITA' (di Liskov)» se q(x) è una proprietà che si può dimostrare essere valida per oggetti x di tipo T, allora q(y) deve essere valida per oggetti y di tipo S dove S è un sottotipo di T.» che riformulato in termini più quotidiani:» data una super-classe T di S; in tutti i contesti in cui si usa un'istanza di T, deve essere possibile utilizzare una qualsiasi istanza di S (o di una qualunque altra sottoclasse a qualsiasi livello) DISCUTIAMO INSIEME SU QUALCHE ESEMPIO» la sottoclasse deve avere la stessa semantica della super-classe

43 » quanto è buono questo modello? generalizzazione quando usarla? -» questo modello rappresenta quello che?» dipende dallo scopo del modello:» finestra di testo con due scrollbar (orizzontale,verticale) ; Questo modello è sintatticamente corretto ma SEMANTICAMENTE SBAGLIATO

44 ...» problema :» modellare una famiglia di sensori. In particolare sensori di temperatura e di luminosità

45 generalizzazione e...» problema :» modellare una famiglia di sensori. In particolare sensori di temperatura e di luminosità» soluzione :» definizione delle entità classi» definizione delle caratteristiche comuni operazioni ed attributi

46 generalizzazione e classi...» problema :» modellare una famiglia di sensori. In particolare sensori di temperatura e di luminosità» soluzione :» definizione delle entità classi» definizione delle caratteristiche comuni operazioni ed attributi

47 » parzialmente definite» modellare operazioni che hanno la stessa semantica ma che saranno implementate da metodi differenti» non è mai possibile istanziare una classe astratta generalizzazione e classi astratte» si possono (si devono) dichiarare puntatori a classi astratte polimorfismo

48 // Errore generalizzazione e polimorfismo (map in Java) Sensor s = new Sensor(); // OK Sensor t = new TempSensor(); // OK Sensor l = new LightSensor(); // OK l.setmuteon(); l.getthreshold();// ERRORE l.getmeasure (); // OK t.getmeasure (); // OK

49 generalizzazione e polimorfismo (map in Java) // Errore Sensor s = new Sensor(); // OK Sensor t = new TempSensor(); // OK Sensor l = new LightSensor(); // OK l.setmuteon(); l.getthreshold();// ERRORE l.getmeasure (); t.getmeasure (); ATTENZIONE: anche se l e t sono dello stesso tipo, le chiamate si riferiscono a implementazioni diverse

50 generalizzazione e classi astratte» (vedremo che) ad ogni elemento del linguaggio UML è associato un insieme di proprietà» nome, lista degli attributi/operazioni, sono delle proprietà dell'elemento UML» in UML una classe è astratta se il flag abstract dell'elemento è a true» non c'è una simbologia grafica univoca va per la maggiore!!

51 generalizzazione visibilità (map in Java)

52 generalizzazione visibilità (map in Java) public class TempSensor extends Sensor { } public void setmuteon(){ } int k = this.id; // ERRORE this.ismute = true;// OK public class testclass { public void testmethod(){ } Sensor s = new Sensor(); s.ismute = true ; // ERRORE } SOLO le sotto-classi POSSONO riferire gli elementi dichiarati protected nelle superclasse.

53 » collezioni di operazioni che sono utilizzate per specificare un servizio di una classe o di un componente» definisce solo la segnatura delle operazioni interfacce» le operazioni possono avere attributi di visibilità (come nelle classi)» non tutti i linguaggi hanno interfacce» C++ NO, Java SI

54 » collezioni di operazioni che sono utilizzate per specificare un servizio di una classe o di un componente» definisce solo la segnatura delle operazioni interfacce» le operazioni possono avere attributi di visibilità (come nelle classi)» non tutti i linguaggi hanno interfacce» C++ NO, Java SI ATTENZIONE: l'idea di INTERFACCIA è molto diversa dall'idea di CLASSE ASTRATTA. le interfacce non specificano ALCUN concetto di STATO

55 interfacce esempio sparatutto -

56 interfacce esempio sparatutto -

57 associazione» relazione strutturale tra oggetti di classi differenti» può essere simmetrica (navigabile nelle due direzioni)» una associazione può essere ricorsiva, ovvero tra oggetti della stessa classe» binaria o N-aria (è poco usata)» rappresentata mediante una linea continua che collega le classi in relazione» di fatto : indica la possibilità che una classe possa inviare messaggi a quelle associate

58 associazione map in Java -» un associazione può avere:» un nome,» il ruolo degli operandi,» stereotipo» cardinalità

59 associazione map in Java - public class Sink { private String name; private IP_Address address; public String getname(); public IP_Address getaddress(); }

60 associazione map in Java - public class Sink { private String name; private IP_Address address; public String getname(); public IP_Address getaddress(); } public class NetworkAdapter { private Sink s; }

61 associazione - esempi vari -

62 » e una relazione di tipo gerarchico : aggregazione» una classa che rappresenta entità autonoma» una classe che rappresenta che aggrega l' entità autonoma» esempio:» auto = motore + 4 ruote + scocca +... altre cose» denominata anche : relazione whole-part» rappresentata mediante una linea tra la classe aggregante e quella aggregata. all'estremità della classe aggregante, la linea ha un rombo bianco

63 aggregazione» l'aggregazione non impone vincoli sul ciclo di vita degli aggregati» le aggregazioni circolari sono semanticamente errate» A aggrega B» B aggrega C» C aggrega A

64 aggregazione map in Java - public class Cluster { } private Vector<Sensor> vsensor; public Cluster (Vector<Sensor> s){ } this.vsensor= s;

65 composizione» è un aggregazione forte» le istanze composte non devono essere create con l istanza della classe componente» una volta create, le istanze composte seguono il ciclo di vita dell istanza che le compone» dipendentemente dall'ambiente di sviluppo:» la classe composita elimina le parti in un momento antecedente alla propria distruzione (dispose in C++)» l'implementazione è strutturata in modo che le istanze create con la composizione siano distrutte (con il garbage collector in Java)

66 composizione» conseguenze :» un oggetto può essere parte di un solo oggetto composto alla volta» invece nell aggregazione una parte può essere condivisa tra più oggetti composti» in UML è rappresentata mediante una linea tra la classe che compone (whole) e quella componente (part). all'estremità della classe che compone, la linea ha un rombo nero

67 composizione - map in Java -

68 public abstract class Sensor { } private NetworkAdapter na; composizione - map in Java - public Sensor (NetworkAdapter net){ } this.na = new NetworkAdapter(); /* Copy the state of net * into this.na */

69 dipendenza» è una relazione tra due elementi dove il cambiamento di un elemento può causare il cambiamento nell altro» non necessariamente è implicato il viceversa» rappresentata mediante una linea tratteggiata che collega le classi in relazione

70 esempio una semplice sensor network - una sensor network è una rete costituita da un insieme di piccoli apparecchi elettronici in grado di ricevere dati dall'ambiente circostante e comunicare tra loro mediante degli elementi per l'interfacciamento alla rete. ogni sensore invia I dati collezionati ad un gateway. I sensori possono essere organizzati in aree di sensing o cluster.

71 esempio una semplice sensor network -

72 la famiglia di diagrammi UML» structure diagrams» class diagram» object diagram» component diagram» behavior diagrams» state machine diagram» activity diagram» use case diagram» deployment diagram» composite structure diagram» package diagram» interaction diagrams» sequence diagram» communication diagram» interaction overview diagram» timing diagram

73 » sono una variante dei class diagram» hanno di fatto la stessa notazione object diagram» la differenza principale è che mettono in relazione ISTANZE e non tipi di dato» gli oggetti sono identificati con il loro nome (e non il tipo)» le relazioni sono relazioni di istanza» mostra possibili fotografie del sistema in esecuzione» non sono fondamentali ma possono chiarire class diagram complessi

74 classi VS. oggetti Classe Author in relazione con (usa) Class Diagram Classe PC PC del Lavoro Author Bob Modellazione di Istanze PC di Casa

75 class diagram VS. object diagram

76 la famiglia di diagrammi UML» structure diagrams» class diagram» object diagram» component diagram» behavior diagrams» state machine diagram» activity diagram» use case diagram» deployment diagram» composite structure diagram» package diagram» interaction diagrams» sequence diagram» communication diagram» interaction overview diagram» timing diagram

77 come rappresento un package in UML» I package in UML (come in altri linguaggi) sono costrutti che permettono di raggruppare/organizzare entità da modellare» rendono i diagrammi più semplici facilitandone la comprensione

78 package diagram» meccanismo per organizzare elementi in gruppi (principio O.O. della modularità)» classi, componenti, package, diagrammi, etc..» gerarchico con controllo sulla visibilità» principali relazioni di dipendenza(/associazione):» import : o public import, include nella definizione del package elementi definiti in un altro package.» access : o private import, come import ma gli elementi importati non sono visibili esternamente dal package» merge : gli elementi con lo stesso nome nel package source e nel package target sono fusi nel package risultante. Gli elementi non ridefiniti vengono importati

79 package diagram - merge -

80 package diagram merge example 1 -

81 package diagram merge example 1 -

82 package diagram merge example 2 -

83 package diagram merge example 2 - dalla specifica UML relativamente a questo esempio: Package P2 merges the contents of package P1, which implies the merging of increment P1::A into increment P2::A. Package P3 imports the contents of P2 so that it can define a subclass of A called SubA. In this case, element A in package P3 (P3::A) represents the result of the merge of P1::A into P2::A and not just the increment P2::A.

84 package diagram merge example 3 -

85 package diagram merge example 3 -» SubA» op1() : String» op2() : String» associazione B» associazione D» SubA eredita ma non vede» a : String» b : String perchè privati

Catia Trubiani. Laboratorio di Ingegneria del Software a.a. 2013-2014

Catia Trubiani. Laboratorio di Ingegneria del Software a.a. 2013-2014 Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM) - Università degli Studi

Dettagli

Class Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a. 2013-2014

Class Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a. 2013-2014 Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM)- Università degli Studi

Dettagli

Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Catia Trubiani. Laboratorio di Ingegneria del Software a.a Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM) - Università degli Studi

Dettagli

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009 UML Il linguaggio UML e ArgoUML 30/09/2009 Ingegneria dei sistemi software 2009/2010 manuel.comparetti@iet.unipi.it UML Unified Modeling Language una famiglia di notazioni grafiche standardizzate* orientata

Dettagli

LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM

LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM Istituto di Scienza e Tecnologie dell'informazione A. Faedo Software Engineering and Dependable Computing Laboratory LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM Laboratorio di Ingegneria del Software

Dettagli

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring TITLE Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Introduzione alla notazione UML I diagrammi

Dettagli

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

Dettagli

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E. Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Introduzione ad UML E. TINELLI UML È un linguaggio (e notazione) universale per rappresentare qualunque

Dettagli

Laboratorio di Sistemi Software UML per Design Patterns e Refactoring

Laboratorio di Sistemi Software UML per Design Patterns e Refactoring TITLE Laboratorio di Sistemi Software UML per Design Patterns e Refactoring Luca Padovani (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Introduzione alla notazione UML I diagrammi Class Diagram Object

Dettagli

Richiami su oggetti e OOP

Richiami su oggetti e OOP Richiami su oggetti e OOP Un oggetto (object) è una entità caratterizzata da una struttura dati alla quale si associa l insieme delle operazioni che è possibile compiere su di essa. Un oggetto può essere

Dettagli

UML I diagrammi implementativi

UML I diagrammi implementativi Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - UML I diagrammi implementativi E. TINELLI I diagrammi implementativi In UML 2.x esistono 3 tipi di

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi

Dettagli

Tecniche di sviluppo di progetti. Lezione 4: Diagrammi UML

Tecniche di sviluppo di progetti. Lezione 4: Diagrammi UML Tecniche di sviluppo di progetti Lezione 4: Diagrammi UML Struttura di un progetto UML Un progetto software è composto da parti, dette diagrammi UML. Ogni diagramma UML contiene un tipo ben definito di

Dettagli

Alcuni diagrammi. OCL (Object Constraint Language)

Alcuni diagrammi. OCL (Object Constraint Language) UML e Java UML Alcune discipline ingegneristiche dispongono di validi mezzi di rappresentazione (schemi, diagrammi di prestazioni e consumi,...) Il software non dispone ancora di tecniche efficaci per

Dettagli

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami

Dettagli

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Analisi e Progettazione OO Origini Le metodologie ad oggetti nascono negli anni 70 ma si affermano solo negli anni 80 grazie alla nascita dei linguaggi di programmazione ad oggetti

Dettagli

UML. Unified Modeling Language (linguaggio di modellazione unificato) prof. Antonio Gervasi IIS «A.Meucci» Casarano

UML. Unified Modeling Language (linguaggio di modellazione unificato) prof. Antonio Gervasi IIS «A.Meucci» Casarano UML Unified Modeling Language (linguaggio di modellazione unificato) 1 Cos è UML L UML nasce negli anni 90 come unificazione di diverse metodologie di analisi. Si propone come strumento per facilitare

Dettagli

La programmazione ad oggetti: chiamate di metodi. Overloading. This

La programmazione ad oggetti: chiamate di metodi. Overloading. This ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMA SVOLTO A.S. 2015/2016 Classe IV C Informatica Proff. Fabio Ciao / Simone Calugi Libro di testo: Cloud B P.

Dettagli

Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2006/2007

Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2006/2007 Introduzione a UML Linguaggio di Modellazione Unificato Corso di Ingegneria del Software Anno Accademico 2006/2007 1 Che cos è UML? UML (Unified Modeling Language) è un linguaggio grafico per: specificare

Dettagli

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 4. Introduzione a UML Dipartimento di Informatica Università di Pisa A.A. 2014/15 e per i modelli iterativi analisi peliminare analisi e progettazione realizzazione Necessità di

Dettagli

Tipi di Dati Astratti

Tipi di Dati Astratti Tipi di Dati Astratti April 19, 2017 Dati e Tipi di Dato Tipo di dato: concetto di alto livello Macchina fisica: unico tipo di dato sequenze di bit Macchine Astratte: tipi di dato più complessi Tipo di

Dettagli

SOMMARIO. DIAGRAMMI DELLE CLASSI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Proprietà e Operazioni

SOMMARIO. DIAGRAMMI DELLE CLASSI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Proprietà e Operazioni SOMMARIO Introduzione Proprietà e Operazioni Concetti base e avanzati DIAGRAMMI DELLE CLASSI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica,

Dettagli

Proprietà delle Classi e degli Oggetti in Java

Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di

Dettagli

Elementi di UML (3) Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005

Elementi di UML (3) Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Elementi di UML (3) Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio di Sistemi e Processi Organizzativi UML

Dettagli

Proprietà delle Classi e degli Oggetti in Java

Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di

Dettagli

Microsoft Visio 2002 UML Sergio Colosio

Microsoft Visio 2002 UML Sergio Colosio Microsoft Visio 2002 UML Sergio Colosio Casi d uso Prima di definire un caso d uso è necessario definire cosa s intende per scenario. Uno scenario è una sequenza di passi che descrivono l interazione tra

Dettagli

Programmazione con Java

Programmazione con Java Programmazione con Java Astrazioni e UML Astrazioni Nella vita reale siamo abituati a osservare e descrivere oggetti a vari livelli di dettaglio Dai da mangiare a Fido Porta a passeggio il cane Di quale

Dettagli

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming Una metodologia di programmazione che consente di modellare la realtà in modo più naturale e vicino all uomo Concetti fondamentali Oggetto Incapsulazione Messaggio Classe Ereditarietà

Dettagli

Classi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++

Classi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++ Informatica 3 Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Lezione 7 -

Dettagli

I Diagrammi di Flusso OO

I Diagrammi di Flusso OO Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - I Diagrammi di Flusso OO Generalità I diagrammi di attività vengono usati per modellare processi a

Dettagli

SOMMARIO DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE. Introduzione. Proprietà e Operazioni. Proprietà e Operazioni

SOMMARIO DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE. Introduzione. Proprietà e Operazioni. Proprietà e Operazioni SOMMARIO Introduzione Proprietà e Operazioni DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica,

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Programmazione Java Struttura di una classe, Costruttore, Riferimento this Programmazione Java Struttura di una classe, Costruttore, Riferimento this romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

Lezione 5 Namespace e JavaDoc

Lezione 5 Namespace e JavaDoc Lezione 5 Namespace e JavaDoc Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Il namespace di Java: i package

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti Programmazione ad oggetti OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l obiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale.

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Oggetti e Classi Metodi Parametri Variabili di istanza Costruttori Esercizi Paradigma Object-Oriented Il paradigma OO

Dettagli

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

!#$%&&'()#*%+%+!#$',,'()#*%+ -)%*&'&'+'$.)+-$$%&&) !#$%&&'(%)'*+%,#-%#.'%&'#/0)-+#12+3,)4+56#7+#.')8'9 !"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se

Dettagli

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1.

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1. OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione,

Dettagli

Principi di Progettazione del Software a.a

Principi di Progettazione del Software a.a Principi di Progettazione del Software a.a. 2017-2018 Fondamenti di Java Ing. Obiettivi della lezione Introduzione alla programmazione Object Oriented Ereditarietà Polimorfismo Interfacce Eccezioni 2 1

Dettagli

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016 ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016 Classe: 4^A inf Prof.ssa Lami Carla Prof. Simone Calugi Programma di INFORMATICA GENERALE, APPLICAZIONI

Dettagli

oggetti, classi e notazione UML

oggetti, classi e notazione UML oggetti, classi e notazione UML 1 object orientation il paradigma object oriented è usato come linguaggio per esprimere modelli domain models design models implemenetation models ecc. tutto ciò che vedremo

Dettagli

I modificatori di accesso regolano essenzialmente la visibilità e l accesso ad un componente Java. Vediamone alcuni nel seguito: public

I modificatori di accesso regolano essenzialmente la visibilità e l accesso ad un componente Java. Vediamone alcuni nel seguito: public Modificatori In questa lezione definiremo i modificatori del linguaggio JAVA, dove per modificatore intendo le parole chiave capaci di cambiare il gnificato di un componente di un applicazione Java. Si

Dettagli

Capitolo 6. Uso della gerarchia. c 2005 Pearson Education Italia Capitolo 6-1 / 125

Capitolo 6. Uso della gerarchia. c 2005 Pearson Education Italia Capitolo 6-1 / 125 Capitolo 6 Uso della gerarchia c 2005 Pearson Education Italia Capitolo 6-1 / 125 Sommario: Uso della gerarchia 1 Notazione UML per le classi 2 Introduzione alla gerarchia 3 Gerarchia e tipi La gerarchia

Dettagli

Esempio 2: Subtyping

Esempio 2: Subtyping Esempio 2: Subtyping 22 Subclassing e subtyping Fino ad ora abbiamo trattato l ereditarietà come strumento che consente il riuso flessibile di classi già esistenti mediante l aggiunta o la ridefinizione

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Corso di Laurea in Informatica Astrarre sui dati Valeria Carofiglio (Questo materiale è una rivisitazione del materiale prodotto da Nicola Fanizzi) Obiettivi tipi di dato astratti

Dettagli

Linguaggi di Programmazione I Lezione 4

Linguaggi di Programmazione I Lezione 4 Linguaggi di Programmazione I Lezione 4 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 18 marzo 2008 Modello orientato ad oggetti 3 Introduzione............................................................

Dettagli

La classe java.lang.object

La classe java.lang.object La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita

Dettagli

Fondamenti di Informatica T-1. Ereditarietà & Polimorfismo

Fondamenti di Informatica T-1. Ereditarietà & Polimorfismo Ereditarietà & Polimorfismo Ereditarietà Meccanismo per definire una nuova classe (classe derivata) come specializzazione di un altra (classe base) La classe base modella un concetto generico La classe

Dettagli

Paradigma a oggetti. Oggetti nel mondo reale. Oggetto Software. Oggetto Software. Classe Ogni oggetto appartiene ad una determinata

Paradigma a oggetti. Oggetti nel mondo reale. Oggetto Software. Oggetto Software. Classe Ogni oggetto appartiene ad una determinata Paradigma a oggetti Il concetto di modulo o di componente prende una forma piu precisa L idea di base e quella di incapsulare dati in costrutti che contengono anche le procedure per manipolare tali dati

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Client - Interfaccia - Implementazione

Client - Interfaccia - Implementazione Client - Interfaccia - Implementazione Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati

Dettagli

UML Diagrammi delle classi. UML Diagramma classi 1

UML Diagrammi delle classi. UML Diagramma classi 1 UML Diagrammi delle classi UML Diagramma classi 1 Diagramma delle classi Non è nei nostri obiettivi affrontare UML nel suo complesso Ci concentreremo sui diagrammi delle classi che ci forniscono un linguaggio

Dettagli

Lab metodi programmazione. Testi. Caratteristiche di Java. Paradigmi di programmazione. Linguaggio Java Progetto

Lab metodi programmazione. Testi. Caratteristiche di Java. Paradigmi di programmazione. Linguaggio Java Progetto Lab metodi programmazione Linguaggio Java Progetto Testi C.S. Horstmann Computing Concepts with Java Essentials 3rd Edition, Wiley Ed. italiana: Concetti di informatica e fondamenti di Java 2 Seconda edizione,

Dettagli

L ereditarieta` Riuso del software: Ereditarieta`, Composizione, Polimorfismo e Binding Dinamico Ereditarietà Ereditarietà

L ereditarieta` Riuso del software: Ereditarieta`, Composizione, Polimorfismo e Binding Dinamico Ereditarietà Ereditarietà L ereditarieta` Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino Riuso del software: Ereditarieta`, Composizione,

Dettagli

Diagrammi di classe e sistemi orientati agli oggetti

Diagrammi di classe e sistemi orientati agli oggetti Appendice D Diagrammi di classe e sistemi orientati agli oggetti ANDREA GINI Un effetto della strategia di incapsulamento è quello di spingere il programmatore a esprimere il comportamento di un sistema

Dettagli

Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali

Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali Programmazione a Oggetti Lezione 7 Il linguaggio Java: aspetti generali Sommario Obiettivi di JAVA Portabilità: produrre codice eseguibile su più piattaforme (JVM) Affidabilità: Evitare il più possibile

Dettagli

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione Obiettivi Unità A2 Progettazione concettuale Imparare ad astrarre i dati per definire entità. Saper distinguere tra astrazione per classificazione, per aggregazione e per generalizzazione. Saper distinguere

Dettagli

RICHIAMI DI PROGRAMMAZIONE A OGGETTI. Corso di Informatica Medica

RICHIAMI DI PROGRAMMAZIONE A OGGETTI. Corso di Informatica Medica Università degli Studi di Trieste Corso di Laurea Magistrale in INGEGNERIA CLINICA RICHIAMI DI PROGRAMMAZIONE A OGGETTI Corso di Informatica Medica Docente Sara Renata Francesca MARCEGLIA Dipartimento

Dettagli

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) Richiami dei diagrammi di base per l utilizzo nel corso di RPPI Rielaborazione delle slide proposte da M. Cossentino 1 Perchè usare la progettazione visuale? Mary Loomis,

Dettagli

Informatica 3. LEZIONE 8: Fondamenti di programmazione orientata agli oggetti (2)

Informatica 3. LEZIONE 8: Fondamenti di programmazione orientata agli oggetti (2) Informatica 3 LEZIONE 8: Fondamenti di programmazione orientata agli oggetti (2) Modulo 1: Ereditarietà Modulo 2: Polimorfismo e classi astratte Modulo 3: Visibilità delle proprietà di una classe Modulo

Dettagli

Obiettivi. Comprendere i vantaggi offerti dal meccanismo dell ereditarietà Attivare processi di astrazione e specializzazione.

Obiettivi. Comprendere i vantaggi offerti dal meccanismo dell ereditarietà Attivare processi di astrazione e specializzazione. Obiettivi Unità B2 Gli oggetti: concetti avanzati Comprendere i vantaggi offerti dal meccanismo dell ereditarietà Attivare processi di astrazione e specializzazione Ereditarietà L ereditarietà permette

Dettagli

Programmazione Java Avanzata Programmazione Object- Oriented in Java

Programmazione Java Avanzata Programmazione Object- Oriented in Java Programmazione Java Avanzata Programmazione Object- Oriented in Java Ing. Gianluca Caminiti Testi di Riferimento (Java) Cay Horstmann Concetti di informatica e fondamenti di Java Apogeo, 2007 (Versione

Dettagli

Informatica 3. Informatica 3. LEZIONE 8: Fondamenti di programmazione orientata agli oggetti (2) Lezione 8 - Modulo 1

Informatica 3. Informatica 3. LEZIONE 8: Fondamenti di programmazione orientata agli oggetti (2) Lezione 8 - Modulo 1 Informatica 3 Informatica 3 LEZIONE 8: Fondamenti di programmazione orientata agli oggetti (2) Modulo 1: Ereditarietà Modulo 2: Polimorfismo e classi astratte Modulo 3: Visibilità delle proprietà di una

Dettagli

Interfacce. Un interfaccia Java è una collezione di metodi astratti (e di costanti) Un metodo astratto è un metodo non implementato

Interfacce. Un interfaccia Java è una collezione di metodi astratti (e di costanti) Un metodo astratto è un metodo non implementato Interfacce 1 Interfacce Un interfaccia Java è una collezione di metodi astratti (e di costanti) Un metodo astratto è un metodo non implementato costituito dall intestazione senza il corpo della definizione

Dettagli

Programmazione orientata agli oggetti Classi astratte e interfacce

Programmazione orientata agli oggetti Classi astratte e interfacce Programmazione orientata agli oggetti Classi astratte e interfacce Fondamenti di Informatica L-B 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma

Dettagli

Principi di Progettazione del Software a.a

Principi di Progettazione del Software a.a Principi di Progettazione del Software a.a. 2016-2017 UML: approfondimenti sui diagrammi delle classi e di sequenza. Diagrammi di package e di deployment Prof. Università del Salento Obiettivi della lezione

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software Simulazione di esame Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Anno Accademico 2015/2016

Dettagli

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo Esempi al calcolatore su: 1) 2) Subtyping e polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

18 - Classi parzialmente definite: Classi Astratte e Interfacce

18 - Classi parzialmente definite: Classi Astratte e Interfacce 18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION 1 Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION 2 Rivediamo questo esempio di activity diagram Università

Dettagli

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni LA PROGETTAZIONE DI BASI DI DATI Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni La progettazione dei dati è l attività più importante Per progettare i dati al

Dettagli

Introduzione alla OOP Object Oriented Programming

Introduzione alla OOP Object Oriented Programming Introduzione alla OOP Object Oriented Programming Programmazione Orientata agli Oggetti I livelli dei linguaggi livelli di tensione porte logiche codice binario linguaggio assembler linguaggi procedurali

Dettagli

Introduzione all OOP!

Introduzione all OOP! Introduzione all OOP! Introdurre l evoluzione dei linguaggi di programmazione e la loro classificazione Introdurre l OOP (astrazione, incapsulamento, ereditarietà) Dal C a Java un primo esempio 1 LINGUAGGI

Dettagli

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A4_3 V2.1 Progettazione Metodi e Linguaggi Il contenuto del documento è liberamente utilizzabile dagli studenti, per

Dettagli

Elena Baralis, Claudio Demartini

Elena Baralis, Claudio Demartini Progetto concettuale Il progetto concettuale 1 Obiettivo: produrre lo schema concettuale Strumenti: meccanismi di astrazione forniti dal modello Entità-Relazione Specifiche iniziali: descrizioni in linguaggio

Dettagli

Informatica I. Ingegneria Medica. Prof. Diego Salamon

Informatica I. Ingegneria Medica. Prof. Diego Salamon Informatica I Ingegneria Medica Prof. Diego Salamon Java: Classi e Oggetti Prof. Diego Salamon Metafore Classi e Oggetti sono un astrazione della realtà. I linguaggi orientati agli oggetti contengono livelli

Dettagli

Programmazione con Java

Programmazione con Java Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:

Dettagli

I livelli dei linguaggi. Introduzione alla OOP Object Oriented Programming. La programmazione procedurale separa il calcolo dalla memoria

I livelli dei linguaggi. Introduzione alla OOP Object Oriented Programming. La programmazione procedurale separa il calcolo dalla memoria Introduzione alla OOP Object Oriented Programming Programmazione Orientata agli Oggetti I livelli dei linguaggi livelli di tensione porte logiche codice binario linguaggio assembler linguaggi procedurali

Dettagli

IL CONCETTO DI CLASSE

IL CONCETTO DI CLASSE IL CONCETTO DI CLASSE Una CLASSE riunisce le proprietà di: componente software: può essere dotata di suoi propri dati / operazioni moduli: riunisce dati e relative operazioni, fornendo idonei meccanismi

Dettagli

Esonero del corso di Programmazione a Oggetti

Esonero del corso di Programmazione a Oggetti Esonero del corso di Programmazione a Oggetti Roma, 1 dicembre 2005 Considerate le seguenti definizioni di classi e interfacce in Java: interface Fumetto{ void esclama(); void utile(); class Personaggio

Dettagli

Principi di Progettazione del Software. Principi di Progettazione del Software a.a

Principi di Progettazione del Software. Principi di Progettazione del Software a.a Principi di Progettazione del Software a.a. 2016-2017 Fondamenti di Java Ing. Principi di Progettazione del Software https://twitter.com/rvergallo 2 1 Obiettivi della lezione Introduzione alla programmazione

Dettagli

Uso di classi e oggetti. Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Uso di classi e oggetti. Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Uso di classi e oggetti Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Tipi di dati Tipi primitivi: interi Java fornisce otto tipi primitivi indipendenti dall implementazione

Dettagli

Programmazione orientata agli oggetti

Programmazione orientata agli oggetti Programmazione orientata agli oggetti La programmazione orientata agli oggetti (OOP, Object Oriented Programming) è un paradigma di programmazione che prevede di raggruppare in un unica entità (la classe)

Dettagli

SOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria

SOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria Sapienza - Università di Roma Facoltà di Ingegneria Requisiti Corso di PROGETTAZIONE DEL SOFTWARE I (Corso di Laurea in Ingegneria Informatica) Prof. Giuseppe De Giacomo Canali A-L & M-Z A.A. 2006-07 Compito

Dettagli

Basi di dati a oggetti

Basi di dati a oggetti Basi di dati a oggetti A L B E R T O B E L U S S I S I S T E M I I N F O M A T I V I G E O G R A F I C I E M U L T I M E D I A L I A N N O A C C A D E M I C O 2 0 1 1 / 1 2 Aree applicative emergenti Progettazione

Dettagli

Esercizio: Lista Circolare

Esercizio: Lista Circolare Esercizio: Lista Circolare Si realizzi in Java un gestore di una lista circolare. La dimensione minima della lista è 2 elementi (ed è anche la dimensione iniziale). La dimensione massima è 20 elementi.

Dettagli

Oggetti e classi. Cos è un oggetto

Oggetti e classi. Cos è un oggetto Oggetti e classi Cos è un oggetto Basta guardarsi intorno per scoprire che il mondo reale è costituito da oggetti: libri, biciclette, giocattoli, ma anche ragazzi, bambini, fiori, gatti, cani, fiumi, montagne,

Dettagli

UML. Cos è UML. Diagrammi UML. Analisi di un problema. Definizione dei requisic. Un esempio

UML. Cos è UML. Diagrammi UML. Analisi di un problema. Definizione dei requisic. Un esempio Cos è UML UML Unified Modeling Language E un linguaggio di proge&azione, da non confondere con i linguaggi di programmazione (C, C++, Java, ) Fornisce una serie di diagrammi per rappresentare ogni Cpo

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

object oriented design

object oriented design object oriented design 1 attività di progetto l obiettivo del progetto è raggiungere la piena comprensione dei dettagli importanti legati alla realizzazione di un sistema il sistema deve soddisfare requisiti

Dettagli

Ereditarietà e Polimorfismo

Ereditarietà e Polimorfismo Ereditarietà e Polimorfismo Riusare il software A volte si incontrano classi con funzionalità simili In quanto sottendono concetti semanticamente vicini È possibile creare classi disgiunte replicando le

Dettagli

Java. Java: compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto

Java. Java: compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto Java Java: compilatore e interprete Il linguaggio Java è un linguaggio di programmazione ad alto livello - algoritmo: astrazione della realtà - linguaggio di programmazione: astrazione del processore -

Dettagli

Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona di Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona su Sommario di su di di di su Astrazione sugli oggetti di su Il concetto di classe Classe: realizza l astrazione

Dettagli

Algoritmi e Strutture di Dati

Algoritmi e Strutture di Dati Algoritmi e Strutture di Dati Capitolo 3 - Tipi di dato e strutture di dati This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license,

Dettagli

Definizione di metodi

Definizione di metodi Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 9 Definizione di metodi Carla Limongelli Novembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Definizione di metodi 1 Contenuti

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 07 Oggetti e Java Marzo 2010 Programmazione Java 1 Contenuti Il linguaggio Java Applicazioni Java e il metodo main Esempi di applicazioni

Dettagli

Astrazioni sui dati : Specifica di Tipi di Dato Astratti in Java

Astrazioni sui dati : Specifica di Tipi di Dato Astratti in Java Astrazioni sui dati : Specifica di Tipi di Dato Astratti in Java 1 Specifica ed Implementazione di Tipi di Dato Astratti in Java cos è un tipo di dato astratto specifica di tipi di dati astratti un tipo

Dettagli