emily's picture From emily rss RSS  subscribe Subscribe

Esercitazione Java UML 



Corrispondenza Semantica tra Diagrammi di Classe e
Codice Java
 
Tags:  Java  UML 
Views:  12724
Downloads:  291
Published:  August 12, 2007
 
14
save to favorite
ask author to add audio Ask author to add audio
Share plick with friends Share
mark as inappropriate Mark as inappropriate
 
Related Plicks
Model driven development of SOA with Web services – using QVT technology

Model driven development of SOA with Web services – using QVT technology

From: babo
Views: 2715 Comments: 1
SOA
Service Oriented Architecture
Focus is set on Web services
MDA
Model Driven Architecture
Framework for model-driven deve (more)

 
浅谈“地方病”和“公害病”

浅谈“地方病”和“公害病”

From: dlrjbk
Views: 416 Comments: 0

 
Analysis and Design with UML

Analysis and Design with UML

From: gavi
Views: 2513 Comments: 0
Benefits of Visual Modeling
History of the UML
Visual Modeling with UML
The Rational Iterative Development Process

 
Java One 2005 Technical Web

Java One 2005 Technical Web

From: emily
Views: 1200 Comments: 0
Technical Conference Report Web
 
See all 
 
More from this user
Tomcat apache setting

Tomcat apache setting

From: emily
Views: 6143
Comments: 1

Building on SOA Entry Point Successes

Building on SOA Entry Point Successes

From: emily
Views: 5999
Comments: 1

NRL Business Plan 2

NRL Business Plan 2

From: emily
Views: 3463
Comments: 1

4.- Funciones. Subrutinas y procedimientos

4.- Funciones. Subrutinas y procedimientos

From: emily
Views: 20995
Comments: 1

Top 10 Pretty Words

Top 10 Pretty Words

From: emily
Views: 4722
Comments: 1

Top 10 cute  animal babies

Top 10 cute animal babies

From: emily
Views: 11642
Comments: 2

See all 
 
Place your Ad here for $2.00 a month
Sample Ad
Advertise your business on myplick.
Only $2.00 a month.
 
 URL:          AddThis Social Bookmark Button
Embed Thin Player: (fits in most blogs)
Embed Full Player :
 
 

Name

Email (will NOT be shown to other users)

 

 
 
Comments:
 
 
Notes:
 
 
Slide 1: Java e UML Corrispondenza Semantica tra Diagrammi di Classe e Codice Java Autore: Andrea Gini Data: 17 novembre 2003
Slide 2: Parte I Diagrammi di Classe
Slide 3: Sintassi Differente Stessa Semantica
Slide 4: Classi, Interfacce, Metodi e Attributi Esiste una corrispondenza uno a uno tra gli elementi del diagramma e le dichiarazioni presenti nel codice
Slide 5: 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; } } Sche daAnagrafica -nome:String -cognome:String +getNome():String +setNome(nome:String):void +getCognome():String +setCognome(cognome:String):void
Slide 6: Modificatori Ese mpioM odificatori -attributoPrivato:int #attributoProtected:int +attributoPublic:int +attributoStatic:int -metodoPrivato:void #metodooProtected:void +metodoPublic:void +metodoStatic:int • Public: Libero Accesso • Protected: Accessibile dalle Sottoclassi • Private: Accessibile solo all’interno della classe • Static: Accessibili anche senza creare istanze
Slide 7: Classi Astratte e Metodi Astratti • Una Classe Astratta contiene metodi privi di implementazione +metodoAstratto:void • Per questa ragione non +metodoConcreto:void può essere istanziata • Il corsivo permette di distinguere le parti astratte da quelle concrete ClasseAstratta
Slide 8: Interfacce interface Pesabile +unitaDiMisura:String +getPeso():int public interface Pesabile { public static String unitaDiMisura; public int getPeso(); }
Slide 9: Relazioni di Ereditarietà e Realizzazione Anche in questo caso la relazione tra diagrammi e codice è di tipo uno a uno
Slide 10: Ereditarietà EssereUmano public abstract class EssereUmano { .... } public class Donna extends EssereUmano { .... } Donna Uomo public class Uomo extends EssereUmano { .... }
Slide 11: Realizzazione interface MediaPlayer Nota: L’ereditarietà multipla tra interfacce permette di porre in essere esempi di ereditarietà a diamante interface MediaRecorder +play:void +stop:void +pause:void +fastForward:void +rewind:void +record:void Le ttore DVD Vide oRe gistratore Re gistratore DVD
Slide 12: Associazione Una 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
Slide 13: Esempio di Associazione public class Automobile { Automobile private Motore motore; -motore:Motore +accendi:void public void accendi() { motore.inserisciMiscela(); motore.accendiCandele(); } } M otore public class Motore { public void inserisciMiscela(); public void accendiCandele(); } +inserisciMiscela:void +accendiCandele:void
Slide 14: 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
Slide 15: Dipendenza public class Automobile { public void percorri(TrattoPercorribile p) { .... } } Automobile Viaggia Su +percorri:void interface TrattoPercorribile Nota: L’automobile dipende dalle strade (senza strade l’automobile non avrebbe senso di esistere). Al contrario le strade esistono indipendentemente dall’automobile Strada Ste rrato
Slide 16: Aggregazione L’Aggregazione rappresenta un’associazione uno a molti In UML l’aggregazione viene rappresentato con una freccia con la punta a diamante; in Java viene implementata con un array dinamico tipo “Vector”
Slide 17: Esempi di Aggregazione Portafoglio Banconota -valore:double -valuta:String Bibliote ca interface Libro
Slide 18: Composizione Una Composizione è una relazione uno a molti che implica una forma di esclusività La distruzione dell’oggetto che rappresenta il “tutto” provoca la distruzione a catena delle “parti”
Slide 19: Esempi di Composizione Automobile -motore:Motore 4 interface Ruota M otore 4..8 Cilindro
Slide 20: Differenza tra Composizione e Aggregazione La Composizione presuppone una condizione di esclusività Gommista 0..* interface Ruota Automobile 4
Slide 21: Esempio 1 incoming Viaggio Tragitto interface TrattoPercorribile outcoming Ste rrato Strada interface Segnalazione Autostrada -pedaggioAlChilometro:dobule StradaStatale Se gnale Stradale Pubblicita
Slide 22: Esempio 2 Automobile M otore interface Carburante M otore Be nzina interface CarburantePerBenzina CombustibileFossile interface CarburanteDiesel M otore Die se l Be nzina Gasolio EcoDie se l OlioDiColza
Slide 23: Parte II Diagrammi di Sequenza
Slide 24: Semantica Dei Diagrammi di Sequenza I diagrammi di sequenza hanno la stessa semantica di un linguaggio imperativo Turing-Equivalente
Slide 25: Chiamata a Metodo La Chiamata a Metodo denota uno scambio di messaggio, caratterizzato da target, argomenti e valore di ritorno
Slide 26: Valore di Ritorno Bancomat Io 1: PrelevaDanaro
Slide 27: Sequenza Una sequenza di frecce ha la stessa semantica di una sequenza di istruzioni
Slide 28: Sequenza di Chiamate Inte rruttore Lampadina M ia Nonna 1: turnOn 1.1: accendi
Slide 29: Creazione di Oggetti Il Diagramma di Sequenza permette di rappresentare anche la creazione di oggetti
Slide 30: Creazione di Oggetti Bancomat Stampe riaClande stina Io 1: PrelevaDanaro 1.1: produci 1.1.1: stampa Sghe i
Slide 31: Iterazione Grazie ai diagrammi di sequenza è possibile fornire una rappresentazione grafica dell’iterazione (while, do-while e for)
Slide 32: Iterazione Bancomat Stampe riaClande stina Io 1: PrelevaDanaro 1.1: produci while(isEmpty()) 1.1.1.1: stampa Sghe i
Slide 33: Selezione Esiste una sintassi per rappresentare la selezione (if – else o case)
Slide 34: Selezione Bancomat Stampe riaClande stina Io 1: PrelevaDanaro if(isEmpty()) 1.1.1: produci while(isEmpty()) 1.1.1.1.1: stampa Sghe i else 1.2.1: prendiBanconotePronte 1.3: contaBanconote
Slide 35: Sincronizzazione La freccia tagliata permette di rappresentare chiamate asincrone
Slide 36: Schema Statico Metodi Sincronizzati Bancomat -deposito:Deposito +prelevaDenaro:Sghei De posito Stampe riaClande stina -deposito:Deposito +putSghei:void +getSghei:Sghei +avviaProduzione:void produce Sghe i spende
Slide 37: Produttore - Consumatore Bancomat De posito Stampe riaClande stina Io Falsario 1: PrelevaDanaro 1.1: getSghei while(isEmpty) 1.1.1.1: wait Sghe i 2.1.1: stampa while(orarioDiLavoro) 2: avviaProduzione while(isFull) 2.1.2: putSghei 2.1.2.1.1: wait
Slide 38: Esempio Finale Automobile -motore:Motore +giraChiave:void M otore -cilindri:Cilindro[] -candele:Candela[] -serbatoio:Serbatoio -marmitta:Marmitta +accendi:void 1 Cilindro 0..* +pompaCarburante:void +espelliGas:void Gas produce 0..* +produciScintilla:void 1 Cande la Brucia +accendi:Gas Carburante Se rbatoio inquina con +getCarburante:Carburante M armitta +elimina:void
Slide 39: Sequenza di Accensione initial Automobile Autista 1: giraChiave():void 1.1: acce ndi():v oid for(int i = 0;i< cilindri.le ngth;i++) 1.1.1.1: c:=ge tCarburante ():Carburante 1.1.1.2: produciScintilla():v oid 1.1.1.3: gasDiScarico:=e spe lliGas():v oid 1.1.1.4: e limina(gasDiScarico):v oid motore Motore se rbatoio Serbatoio cande la Candela cilindro Cilindro marmitta Marmitta

   
Time on Slide Time on Plick
Slides per Visit Slide Views Views by Location
close
Please fill out the form below. You will be asked to make your payment to Myplick (Eastar Technologies) via Paypal. Your request will be processed within 24 hours after your submission.
 
Title (max 25 characters)
Link (placed on title)
Content (max 100 characters)
You have successfully submitted your ad request. Please send your payment to ericandlei@myplick.com via PAYPAL.
Ad submission failed. Please report the problem to ericandlei@myplick.com.