SlideShare a Scribd company logo
1 of 250
Download to read offline
Definizione di UML
Cos'è UML ? ,[object Object]
Specificare
Visualizzare
Costruire
Documentare
domini applicativi eterogenei, adatto maggiormente a progettare sistemi object-oriented e sistemi component-based.,[object Object]
sintassi: regole attraverso le quali gli elementi del linguaggio (parole) sono assemblate in espressioni (frasi).
semantica: regole attraverso le quali alle espressioni sintattiche viene assegnato un significato.,[object Object]
quale linguaggio di modellazione utilizzare per descrivere il lavoro progettuale
quali sono i passi necessari per raggiungere la “industrializzazione” nella produzione del software.,[object Object]
Include una descrizione e sequenzializzazione di attività,  documenti e modelli.
Definisce i criteri per il monitoraggio delle attività e la valutazione degli artefatti.,[object Object]
un paradigma codificato per la produzione di tecnologie fra loro compatibili e interoperabili riferiti ad hardware, software o infrastrutture di rete.,[object Object]
entità coinvolte
relazioni esistenti tra di loro
Esempio:
Diagrammi di flusso
UML
Diagrammi Entita-Relazione,[object Object]
deve descrivere il sistema correttamente, completamente e senza ambiguità;
Consistenza:
le diverse viste devono completarsi vicendevolmente per formare un insieme coerente
Semplicità:
deve poter essere compreso, senza troppi problemi, da persone estranee al processo di modellazione;
Manutenibilità:
la variazione dello stesso deve essere la più semplice possibile.,[object Object]
Dettagli di implementazione
Visualizzare
Un immagine è meglio di 100 parole
Costruire
Idee, pensieri
Documentare
Interazione con gruppi esterni,[object Object]
sanità, finanza, TLC, aerospazio
indipendentemente dalla piattaforma
Sistema:
una singola organizzazione vista nella sua globalità (es. azienda)‏
una parte di un’organizzazione (es. divisione, oppure processo)‏
un insieme di organizzazioni, o di parti di organizzazioni, in relazione tra loro (es. processi di interazione Business-to-Business)‏,[object Object]
Alta coesione (omogeneità interna)‏
Information hiding (poco rumore nella comunicazione)‏
Basso accoppiamento (indipendenza da altri moduli)‏
Interfacciamento esplicito (chiare modalità d’uso)‏,[object Object]
Componenti riutilizzabili
Dividere la logica dall'interfaccia
Utilizzare uno standard di comunicazione,[object Object]
Vediamo meglio cosa si intende per ObjectOriented …,[object Object]
Approccio ad UML ,[object Object]
Abbozzo (sketch)
Progetto (blueprint)
Linguaggio di programmazione,[object Object]
Documentazione, discussione e condivisione delle idee
Basso rigore formale
Selettività: focalizzazione solo su alcuni aspetti dell’applicazione
Bassa, se non nulla dipendenza dal tool di modellazione,[object Object]
Alto rigore formale
Completezza
Forward e reverse engineering
Forte dipendenza dal tool di modellazione,[object Object]
Utilizzare diagrammi per generare codice
Fortissima dipendenza dal tool di modellazione,[object Object]
Come si arriva allo standard ? ,[object Object]
sotto l'egida dell'OMG (Object Management Group)
a partire dal contributo dei “Tre Amigos” (GradyBooch, Jim Rumbaugh e IvarJacobson)‏
ed il  supporto delle più importanti società di software mondiali,[object Object]
Obiettivo: creare un sistema di gestione di un'architettura distribuita basati sul paradigma ad oggetti.
Standard più importanti proposti:
architettura CORBA
linguaggio di modellazione UML
standard XMI,[object Object]
SADT (StructuredAnalysis and DevelopmentTechnique)‏
DFD (Data Flow Diagram)‏
IDEF0 (IntegrationDefinitionforFunctionModeling)‏,[object Object]
Jim Rumbaugh: ObjectModelingTechnique - OMT
IvarJacobson: Object-Oriented Software Engineering - OOSE,[object Object]
Jacobson capo di Objectory che nel 1995 fu acquistata dalla Rational e nel 1995 UnifiedModelingLanguage v0.9
Booch e Rumbaugh e Jacobson crearono consorzio “UML Partners” e redassero UML v1.0
Microsoft, HP, Oracle, Rational ed altri crearono consorzio “OMG”,[object Object]
dicembre 1998:  		versione 1.2
Marzo 2000:    		versione 1.3
settembre 2001:    		versione 1.4
marzo 2003:     		versione 1.5
luglio 2005 :   		versione 2.0
agosto 2006: 		versione 2.1
settembre 2008: 		versione 2.2 Beta,[object Object]
Diagrammi UML
Diagrammi UML ,[object Object]
Strutturali: come è composto il sistema
Comportamentali: come interagisce sistema
‏Interattivi: che tipo di messaggi si scambia il sistema,[object Object]
Object diagram
Deployment diagram
Component diagram
Package diagram
Activity diagram
Use case diagram
Sequence diagram
Communication diagram
State Chart diagramUML 2.x ,[object Object]
Object diagram
Deployment diagram
Component diagram
Package diagram
Activity diagram
Use case diagram
Sequence diagram
Collaboration diagram
State Machine diagram
Interaction Overview diagram
Composite Structure
Timing diagram,[object Object]
Concetti di: classe, associazione, dipendenze, generalizzazione.,[object Object]
Concetti di: oggetto, relazione.,[object Object]
Spesso si combina con le componenti software per mostrare dove sono distribuite (ComponentDiagram).
Concetti di: nodo, connessione.,[object Object]
Concetti di: componente, interfaccia.,[object Object]
Concetti di: package, merge, import, nested.,[object Object]
Concetti di: oggetti, messaggi, lifetime, attivazione,[object Object]
Concetti di: attività, flusso, responsabilità.,[object Object]
Concetti di: sistema, attore, caso, associazioni.,[object Object]
Concetti di: oggetti, messaggi.,[object Object]
Concetti di: stato, transizione.,[object Object]
Concetti di: oggetto, relazione.,[object Object]
Concetti di: oggetto, relazione, tempo.,[object Object]
Concetti di: parte, connettore, porte.,[object Object]
DiagramInterchangeSpecification
layout dello schema con strumenti diversi (xmi)‏
UML Infrastructure
definisce il core dell'uml, cioè il meta modello utilizzato
UML Superstructure
definizione formale degli elementi uml, utilizzata dai tool dei vendor e definisce in dettaglio i diagrammi utilizzati
ObjectConstraintLanguage (OCL)‏
definisce le regole e le logiche da utilizzare. Ha una sintassi e delle parole chiavi.,[object Object]
E’ il padre di tutti gli elementi
Viene usato per formalizzare la notazione e definire le specifiche di linguaggio per il metamodel
Metamodel
Ogni oggetto del metamodel è una istanza dei concetti del meta-metamodel
Qui si descrivono astrazioni di modelli object-oriented e component-oriented
Si definiscono linguaggi per definire domini e modelli,[object Object]
Qui si definiscono i domini, i problemi e le soluzioni di sistemi
Userobject
E’ composto da elementi che semplificano i modelli UML
Qui si descrivono le specifiche informazioni del dominio,[object Object]
Computer Aided Software Engineering ( CASE )‏ ,[object Object]
Supporto alla creazione dei diagrammi e validazione
Ricerca tra i mille modelli creati
Generazione del codice
Supporto a diversi linguaggi di programmazione, DDL, DML
Reverse engineering
Supporto all'analisi partendo dal codice
UML 1.x – 2.x
Supporto alle versioni,[object Object]
Together (Borland)‏
Visio (Microsoft)‏
TAU (Telelogic)‏
Objecteering (Softeam)‏
Poseidon (Gentleware)‏
Enterprise Architect (Sparx Systems)‏
Magic Draw (No Magic)‏
ArgoUML (open source)‏
StarUML (open source)‏
UModel 2005 (Altova)‏
TAU Developer and TAU Architect (Telelogic)‏
Jude (open-source)‏
InnovatorAOX 2006 Object eXcellence (MID)‏
Real-time Studio(ARTiSAN)‏
OMONDO EclipseUML Studio  (open source)‏
PathMATE (Pathfinder Solutions)‏
Metis with UML 2.0 Template (Computas)‏
Describe (Embarcadero)‏
I-Logix Rhapsody
MetaMatrix MetaBase Modeller (Tibco)‏
Java Studio Enterprise (Sun Microsystems)‏
Model-in-Action (Mia Software)‏
Pattern Weaver Ver. 2.0
EDGE UML Suite (Mentor Graphics)‏,[object Object]
Dove si colloca
Cosa sono ,[object Object]
Interno
Punto di vista del progettista, interessato agli aspetti architetturali
Esterno
Visto come una “black box”, di cui si può osservare solo il comportamento dall’esterno
Il punto di vista esterno è il punto di vista dell’utilizzatore e di tutto ciò che interagisce con il sistema per assicurarne il corretto funzionamento.,[object Object]
Vista del progettista (interno)
All’interno vi sono dei componenti
Ogni componente svolge funzioni particolari
Ogni componente deve essere utilizzato correttamente e rispettare dei requisiti
Vista dell’utente (esterno)
Nel manuale c’è la descrizione di come può essere utilizzato
Come si inserisce una cassetta
Come si effettua il fermo immagine
Ecc...ecc..,[object Object]
Descrivono l’interazione tra attori e sistema, senza rivelare l’organizzazione interna del sistema
Sono espressi anche in forma testuale, comprensibile anche per i non “addetti ai lavori”
Possono essere definiti a livelli diversi (sistema o parti del sistema)‏,[object Object]
Nelle fasi iniziali della progettazione
Chiariscono cosa dovrà fare il sistema
Stabiliscono una base comune per la discussione con il committente
Fine - individuare ed analizzare i requisisti del sistema
A regime
Guidano l’intero processo di sviluppo
Rappresentano il punto di partenza per la progettazione del sistema
Definizione dell’architettura
Creazione dei modelli di analisi e disegno
Realizzazione del codice applicativo
Costituiscono il riferimento primario per dei test per la verifica di quanto prodotto
la definizione
la progettazione
l’esecuzione,[object Object]
E’ costituito dalla documentazione e dai diagrammi
La Documentazione
Descrive, in modo testuale, il Caso d’Uso
Costituisce l’elemento centrale di comunicazione tra tutte le parti in causa
Committente, Management, Gruppo di progetto
Guida la progettazione e la definizione dei Casi di Test
I Diagrammi
Ruolo complementare ma secondario
Forniscono una “mappa visuale” estremamente sintetica, delle modalità di uso del sistema,[object Object]
Sono le funzionalità che il sistema mette a disposizione dei suoi utilizzatori
Descrivono il sistema da un punto di vista esterno (black box)‏
Sono rappresentati con un’icona a forma di ellisse,[object Object]
Sono i soggetti (esterni) che interagiscono con il sistema tramite messaggi
Ogni attore corrisponde ad un insieme coerente di ruoli che i soggetti possono assumere interagendo con il sistema
Possono rappresentare
Esseri umani
Sistemi hardware o software
Organizzazioni,[object Object]
Contiene un insieme di casi d’uso riguardanti un particolare sistema
Descrive in modo completo gli utilizzi del sistema dall’esterno
Non rileva la struttura interna del sistema
Gli attori sono esterni al sistema,[object Object]
Ha il significato di comunicazione
Ogni caso d’uso è collegato agli attori (uno o più)‏
Per evidenziare la direzione della comunicazione l’associazione può essere orientata,[object Object]
È quello per il quale è stato pensato il caso d’uso
Ha un interesse primario per la funzionalità che quel caso d’uso esprime
Attore secondario
E’ un sistema esterno che interagisce con il sistema di riferimento nell’ambito del caso d’uso
Ogni caso d’uso ha per definizione almeno un attore primario
Il ruolo “primario” o “secondario” non è assoluto
Un attore primario per un caso d’uso può essere secondario in un altro
E viceversa,[object Object]
L’unica associazione ammessa tra attori è la specializzazione
L’attore specializzato eredita la partecipazione a tutti i casi d’uso con i quali comunica l’attore generico
L’attore specializzato può partecipare ad ulteriori casi d’uso ai quali l’attore generico non è collegato,[object Object]
Non è ammessa in UML una associazione di comunicazione tra i casi d’uso (un caso d’uso descrive un utilizzo completo del sistema)‏
Non è ammessa la suddivisione di una funzionalità completa in casi d’uso distinti,[object Object]
Specializzazione
Estensione

More Related Content

What's hot

Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Marco Loregian
 
Lezione 6: Remote Method Invocation
Lezione 6: Remote Method InvocationLezione 6: Remote Method Invocation
Lezione 6: Remote Method InvocationAndrea Della Corte
 
Lezione 10: Web Service in Java (2)
Lezione 10: Web Service in Java (2)Lezione 10: Web Service in Java (2)
Lezione 10: Web Service in Java (2)Andrea Della Corte
 
Lezione 7: Remote Method Invocation e SSL
Lezione 7: Remote Method Invocation e SSLLezione 7: Remote Method Invocation e SSL
Lezione 7: Remote Method Invocation e SSLAndrea Della Corte
 
Maria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci
 
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxGiovanni Cappellini
 
Lezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaLezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaAndrea Della Corte
 
Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Antonio Musarra
 
Web service architetture e standard - Tesi - cap1
Web service architetture e standard - Tesi - cap1Web service architetture e standard - Tesi - cap1
Web service architetture e standard - Tesi - cap1pma77
 

What's hot (12)

Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3
 
Lezione 6: Remote Method Invocation
Lezione 6: Remote Method InvocationLezione 6: Remote Method Invocation
Lezione 6: Remote Method Invocation
 
Lezione 10: Web Service in Java (2)
Lezione 10: Web Service in Java (2)Lezione 10: Web Service in Java (2)
Lezione 10: Web Service in Java (2)
 
Lezione 7: Remote Method Invocation e SSL
Lezione 7: Remote Method Invocation e SSLLezione 7: Remote Method Invocation e SSL
Lezione 7: Remote Method Invocation e SSL
 
Laravel Framework PHP
Laravel Framework PHPLaravel Framework PHP
Laravel Framework PHP
 
Maria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazione
 
Xml annessi e connessi
Xml annessi e connessiXml annessi e connessi
Xml annessi e connessi
 
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
 
couchbase mobile
couchbase mobilecouchbase mobile
couchbase mobile
 
Lezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaLezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in Java
 
Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1
 
Web service architetture e standard - Tesi - cap1
Web service architetture e standard - Tesi - cap1Web service architetture e standard - Tesi - cap1
Web service architetture e standard - Tesi - cap1
 

Viewers also liked (7)

Corso progettazione
Corso progettazioneCorso progettazione
Corso progettazione
 
Design Pattern
Design PatternDesign Pattern
Design Pattern
 
Corso Java 2 - AVANZATO
Corso Java 2 - AVANZATOCorso Java 2 - AVANZATO
Corso Java 2 - AVANZATO
 
Corso Java
Corso JavaCorso Java
Corso Java
 
Corso Java 1 - BASE
Corso Java 1 - BASECorso Java 1 - BASE
Corso Java 1 - BASE
 
Ley islr reforma dic 2015
Ley islr reforma dic 2015Ley islr reforma dic 2015
Ley islr reforma dic 2015
 
Reforma cot g.o-6152
 Reforma cot g.o-6152 Reforma cot g.o-6152
Reforma cot g.o-6152
 

Similar to Corso UML

Idiomatic Domain Driven Design
Idiomatic Domain Driven DesignIdiomatic Domain Driven Design
Idiomatic Domain Driven DesignAndrea Saltarello
 
Riuso Object Oriented
Riuso Object OrientedRiuso Object Oriented
Riuso Object OrientedStefano Fago
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Massimo Cenci
 
Approccio Pratico al Domain Driven Design
Approccio Pratico al Domain Driven DesignApproccio Pratico al Domain Driven Design
Approccio Pratico al Domain Driven DesignLuca Milan
 
AreaMVC: un'architettura software basata sulla semplicità
AreaMVC: un'architettura software basata sulla semplicitàAreaMVC: un'architettura software basata sulla semplicità
AreaMVC: un'architettura software basata sulla semplicitàGiulio Destri
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented ProgrammingAndrea Bozzoni
 
Domain Driven Design e CQRS
Domain Driven Design e CQRSDomain Driven Design e CQRS
Domain Driven Design e CQRSManuel Scapolan
 
Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)K-Tech Formazione
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Massimo Cenci
 
Implementazione di una Web App per la verifica dei requisiti progettuali del ...
Implementazione di una Web App per la verifica dei requisiti progettuali del ...Implementazione di una Web App per la verifica dei requisiti progettuali del ...
Implementazione di una Web App per la verifica dei requisiti progettuali del ...Luca Dalle Vedove
 
EXELEARNING COME EDITOR DI CONTENUTI PER MOODLE
EXELEARNING COME EDITOR DI CONTENUTI PER MOODLEEXELEARNING COME EDITOR DI CONTENUTI PER MOODLE
EXELEARNING COME EDITOR DI CONTENUTI PER MOODLEWebinarPro srl
 
Lezione 8 Il Web Semantico
Lezione 8   Il Web SemanticoLezione 8   Il Web Semantico
Lezione 8 Il Web SemanticoStefano Epifani
 
Estendere Java con il Meta Programming System di JetBrains
Estendere Java con il Meta Programming System di JetBrains Estendere Java con il Meta Programming System di JetBrains
Estendere Java con il Meta Programming System di JetBrains Federico Tomassetti
 

Similar to Corso UML (20)

Open xml
Open xmlOpen xml
Open xml
 
Idiomatic Domain Driven Design
Idiomatic Domain Driven DesignIdiomatic Domain Driven Design
Idiomatic Domain Driven Design
 
Riuso Object Oriented
Riuso Object OrientedRiuso Object Oriented
Riuso Object Oriented
 
Introduzione a UML
Introduzione a UMLIntroduzione a UML
Introduzione a UML
 
PLM@NET
PLM@NETPLM@NET
PLM@NET
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
 
Approccio Pratico al Domain Driven Design
Approccio Pratico al Domain Driven DesignApproccio Pratico al Domain Driven Design
Approccio Pratico al Domain Driven Design
 
AreaMVC: un'architettura software basata sulla semplicità
AreaMVC: un'architettura software basata sulla semplicitàAreaMVC: un'architettura software basata sulla semplicità
AreaMVC: un'architettura software basata sulla semplicità
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
Domain Driven Design e CQRS
Domain Driven Design e CQRSDomain Driven Design e CQRS
Domain Driven Design e CQRS
 
ORM - Introduzione
ORM - IntroduzioneORM - Introduzione
ORM - Introduzione
 
Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)
 
Slides marcosabatini
Slides marcosabatiniSlides marcosabatini
Slides marcosabatini
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
 
Implementazione di una Web App per la verifica dei requisiti progettuali del ...
Implementazione di una Web App per la verifica dei requisiti progettuali del ...Implementazione di una Web App per la verifica dei requisiti progettuali del ...
Implementazione di una Web App per la verifica dei requisiti progettuali del ...
 
EXELEARNING COME EDITOR DI CONTENUTI PER MOODLE
EXELEARNING COME EDITOR DI CONTENUTI PER MOODLEEXELEARNING COME EDITOR DI CONTENUTI PER MOODLE
EXELEARNING COME EDITOR DI CONTENUTI PER MOODLE
 
Lezione 8 Il Web Semantico
Lezione 8   Il Web SemanticoLezione 8   Il Web Semantico
Lezione 8 Il Web Semantico
 
Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...
Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...
Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...
 
Estendere Java con il Meta Programming System di JetBrains
Estendere Java con il Meta Programming System di JetBrains Estendere Java con il Meta Programming System di JetBrains
Estendere Java con il Meta Programming System di JetBrains
 
Agent UML
Agent UMLAgent UML
Agent UML
 

Corso UML