SlideShare a Scribd company logo
1 of 25
INTRODUZIONE A UML 
INGEGNERIA DEL SOFTWARE 
Università degli Studi di Padova 
Dipartimento di Matematica 
Corso di Laurea in Informatica, A.A. 2014 – 2015 
rcardin@math.unipd.it
SOMMARIO 
 Che cos’è UML 
 Utilizzo di UML 
 Prospettiva di Utilizzo 
 Diagrammi UML 
 UML e lo Sviluppo Software 
Ingegneria del software mod. A 
Riccardo Cardin 2
SOMMARIO 
 Che cos’è UML 
 Utilizzo di UML 
 Prospettiva di Utilizzo 
 Diagrammi UML 
 UML e lo Sviluppo Software 
Ingegneria del software mod. A 
Riccardo Cardin 3
CHE COS’È UML 
“Famiglia di notazioni grafiche che si basano su un singolo meta-modello 
e servono a supportare la descrizione e il progetto dei sistemi 
 Pensato su un paradigma ad oggetti (object oriented) 
 Meta-modello 
 Insieme di regole, vincoli e teorie utilizzate per la 
modellazione di una classe di problemi 
 Modello: astrazione del mondo reale 
Ingegneria del software mod. A 
Riccardo Cardin 4 
software” 
Martin Fowler
COS’È UML 
 Linguaggio visuale 
 Facile da imparare, ma semanticamente molto ricco 
 Sintassi 
 UML Notation Guide 
 Regole attraverso le quali gli elementi di un linguaggio 
sono assemblati in espressioni 
 Elementi di modellazione (classi, interfacce, casi d’uso,…) 
 Relazioni (associazioni, generalizzazioni,…) 
 Diagrammi (delle classi, dei casi d’uso, di interazione,…) 
 Semantica 
 UML Semantics 
 Regole attraverso le quali alle espressioni sintattiche viene 
attribuito un significato 
Ingegneria del software mod. A 
Riccardo Cardin 5
CHE COS’È UML 
 Caratteristiche principali 
 Incorpora la miglior esperienza sviluppata a livello 
industriale 
 È uno strumento flessibile, che si adatta alla maggior 
parte dei sistemi produttivi 
 Si adatta ai bisogni di sviluppo dei moderni software 
 Scalabilità 
 Distribuzione dell’architettura 
 Concorrenza 
 … 
 È indipendente dai linguaggi di sviluppo e 
programmazione 
Ingegneria del software mod. A 
Riccardo Cardin 6
CHE COS’È UML 
 Caratteristiche principali 
 Supporta concetti di sviluppo ad alto livello 
 Frameworks 
 Patterns 
 Componenti 
 … 
 Supporta l’intero ciclo di vita del software 
 Dal documento di Analisi dei Requisiti al documento di Piano di 
Qualifica 
 E’ supportato da numerosi tools di progettazione 
 Rational Application Developer (IBM RAD) 
 http://www-01.ibm.com/software/awdtools/developer/application 
 Eclipse Papyrus UML (http://www.eclipse.org/modeling/mdt/papyrus) 
 Astah Community Edition (http://astah.net/editions/community) 
 BoUML (http://bouml.free.fr) 
Ingegneria del software mod. A 
Riccardo Cardin 7
CHE COS’È UML 
 UML è uno standard 
 Object Management Group (OMG) 
 CORBA (Common Object Request Broker Architecture) 
 BPMN (Business Process Managament Notation) 
 Relativamente giovane: 1997 
 Prima esistevano una miriade di linguaggi grafici di 
modellazione, ognuno con le proprie regole 
 Anni ’80 e ’90 
 Perché? 
 Il linguaggio naturale è troppo astratto e dispersivo 
 È ambiguo e non formale 
 I linguaggi di programmazione sono troppo concreti 
Ingegneria del software mod. A 
Riccardo Cardin 8
OBJECT MANAGEMENT GROUP 
OMG’s mission is to develop, with our worldwide membership, enterprise integration 
standards that provide real-world value. OMG is also dedicated to promoting business 
technology and optimization for innovation through its Business Ecology® Initiative (BEI) 
program and associated Communities of Practice 
 Aziende che partecipano alla definizione di UML 
Ingegneria del software mod. A 
Riccardo Cardin 9 
Aonix 
Colorado State University 
Computer Associates 
Concept Five 
Data Access 
EDS 
Enea Data 
Hewlett-Packard 
IBM 
I-Logix 
InLine Software 
Intellicorp 
Kabira Technologies 
Klasse Objecten 
Lockheed Martin 
Microsoft 
ObjecTime 
Oracle 
Ptech 
OAO Technology Solutions 
Rational Software 
Reich 
SAP 
Softeam 
Sterling Software 
Sun 
Taskon 
Telelogic 
Unisys 
…
SOMMARIO 
 Che cos’è UML 
 Utilizzo di UML 
 Prospettiva di Utilizzo 
 Diagrammi UML 
 UML e lo Sviluppo Software 
Ingegneria del software mod. A 
Riccardo Cardin 10
UTILIZZO DI UML 
 UML come abbozzo (skecth) 
 Approccio più utilizzato in assoluto 
 Confermo ;-) 
 Documentare e descrizione porzioni di sistema 
 Forward engineering 
 Il sistema (o una parte) è descritto con diagrammi UML 
prima delle stesura del codice 
 Aiuta la progettazione dell’architettura del prodotto 
 Aziende medio/grandi 
 Documento di Specifica Tecnica (ST) 
 Reverse engineering 
 Il diagramma UML è costruito a partire dal codice 
 Documentazione a posteriori 
 Aziende medio/piccole (aziende italiane in genere…) 
Ingegneria del software mod. A 
Riccardo Cardin 11
UTILIZZO DI UML 
 UML come abbozzo (skecth) 
Ingegneria del software mod. A 
Riccardo Cardin 12
UTILIZZO DI UML 
 UML come progetto 
 Approccio più ingegneristico 
 Documento di Definizione di prodotto (DP) 
 Descrive formalmente il sistema per modelli 
 Elevato grado di dettaglio 
 Nessuna decisione o interpretazione da parte del 
programmatore 
 Definizione delle interfacce tra sottosistemi 
 Approccio più comune rispetto alla descrizione di tutto il 
sistema 
 I programmatori “progettano” e sviluppano le componenti 
dei sistemi in autonomamente 
 Software per la progettazione di dettaglio 
 CASE (Computer-Aided Software Engineeging) 
Ingegneria del software mod. A 
Riccardo Cardin 13
UTILIZZO DI UML 
 UML come progetto 
Ingegneria del software mod. A 
Riccardo Cardin 14
UTILIZZO DI UML 
 UML come linguaggio di programmazione 
 Generazione automatica del codice a partire dai 
diagrammi 
 Approccio ottimale (ma utopistico…) 
 Prevede l’utilizzo di pattern ricorrenti 
 Programmazione meccanica 
 Strumenti di compilazione dei diagrammi UML 
 Complessi e costosi … 
 Correttezza formale del codice 
 Il codice prodotto può soddisfare intrinsecamente delle 
proprietà di correttezza formale 
 È realmente un approccio conveniente? 
 È più costosa la modellazione o la scrittura del codice? 
Ingegneria del software mod. A 
Riccardo Cardin 15
PROSPETTIVA DI UTILIZZO 
 Concetti VS. Software 
 Prospettiva software 
 Elementi UML corrispondono ad elementi software 
 Classi, oggetti, ecc… 
 La più utilizzata 
 Prospettiva concettuale 
 Utilizzato per descrive concetti in un dominio 
 Definizione di un vocabolario comune 
 Approccio meno comune 
 UML inizia ora a diffondersi nei domini informatici, 
figuriamoci in quelli non informatici… 
UML, a volte non basta 
 Modellazione di processi di business (BPM) 
Ingegneria del software mod. A 
Riccardo Cardin 16
UML: UN PO’ DI STORIA 
 Anni ’80 
 Programmazione a oggetti 
 Smalltalk, albori del C++, … 
 Linguaggi grafici orientati agli oggetti per la progettazione 
 Moltitudine di autori: Grady Booch, Peter Coad, ecc… 
 Teorie molto simili, ma con fastidiosi particolari che non permettevano la 
standardizzazione 
 Anni ‘90 
 Rational (ora parte di IBM) 
 Sviluppa un suo standard (UML 0.8) 
 Pericoloso vantaggio competitivo… 
 OMG 
 Pressioni da numerosi produttori di strumenti software 
 Mantenere l’interoperabilità degli strumenti CASE 
 Concetto tutt’ora non raggiunto :-( 
 UML 1.0: gennaio 1997 
 2003: UML 2.0 
 Major release: Versione da utilizzare! 
Ingegneria del software mod. A 
Riccardo Cardin 17
UML DI TUTTI I GIORNI… 
 Esiste UML legale? 
 Non possiede regole prescrittive 
 Definiscono cosa è legale e cosa non lo è 
 Necessita di un ente ufficiale di controllo 
 Precise regole descrittive 
 …per imparare conviene partire dal suo utilizzo concreto… 
 Il grado di dettaglio può variare 
 Ogni elemento UML può essere soppresso, ottenendo ancora 
un diagramma legale 
 E’ la sensibilità dell’autore a determinare le informazioni da 
esporre nel diagramma 
Voi sarete OBBLIGATI a tenere sempre un buon grado di dettaglio 
Ingegneria del software mod. A 
Riccardo Cardin 18 
durante il corso…
SOMMARIO 
 Che cos’è UML 
 Utilizzo di UML 
 Prospettiva di Utilizzo 
 Diagrammi UML 
 UML e lo Sviluppo Software 
Ingegneria del software mod. A 
Riccardo Cardin 19
DIAGRAMMI UML 
Ingegneria del software mod. A 
Riccardo Cardin 20
DIAGRAMMI UML 
 Esempi di diagrammi 
Ingegneria del software mod. A 
Riccardo Cardin 21 
Diagramma delle classi 
Diagramma di sequenza 
Diagramma dei casi d’uso
SOMMARIO 
 Che cos’è UML 
 Utilizzo di UML 
 Prospettiva di Utilizzo 
 Diagrammi UML 
 UML e lo Sviluppo Software 
Ingegneria del software mod. A 
Riccardo Cardin 22
UML E LO SVILUPPO SOFTWARE 
 Ogni fase, i suoi diagrammi 
Ingegneria del software mod. A 
Riccardo Cardin 23 
• Diagrammi Use case 
• Diagrammi di flusso 
Revisione 
dei 
Requisiti 
R. Progetto 
Architetturale 
Revisione di 
Qualifica 
R. di 
Accettazione 
• Diagrammi dei package 
• Diagrammi delle classi 
• Diagrammi degli oggetti 
• Diagrammi di attività 
• Diagrammi di sequenza 
• Diagrammi delle classi 
• Diagrammi di attività 
• Diagrammi di sequenza 
• Diagrammi di flusso
GLOSSARIO 
 Design Pattern 
 Soluzione progettuale generale a un problema ricorrente. Una descrizione o un 
modello da applicare per risolvere un problema che può presentarsi in diverse 
situazioni durante la progettazione e lo sviluppo del software. 
 Framework 
 Struttura di supporto su cui un software può essere organizzato e progettato 
Ingegneria del software mod. A 
Riccardo Cardin 24
RIFERIMENTI 
OMG Homepage – www.omg.org 
 UML Homepage – www.uml.org 
 UML Distilled, Martin Fowler, 2004, Pearson 
(Addison Wesley) 
Ingegneria del software mod. A 
Riccardo Cardin 25

More Related Content

What's hot

Errori comuni nei documenti di Analisi dei Requisiti
Errori comuni nei documenti di Analisi dei RequisitiErrori comuni nei documenti di Analisi dei Requisiti
Errori comuni nei documenti di Analisi dei RequisitiRiccardo Cardin
 
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramIl linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramGiuseppe Cramarossa
 
Design Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency InjectionDesign Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency InjectionRiccardo Cardin
 
Design Pattern Creazionali
Design Pattern CreazionaliDesign Pattern Creazionali
Design Pattern CreazionaliRiccardo Cardin
 
Mvc e di spring e angular js
Mvc e di   spring e angular jsMvc e di   spring e angular js
Mvc e di spring e angular jsRiccardo Cardin
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented ProgrammingAndrea Bozzoni
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGiacomoZorzin
 
High Level Synthesis Using Esterel
High Level Synthesis Using EsterelHigh Level Synthesis Using Esterel
High Level Synthesis Using EsterelAlberto Minetti
 
Lezione 07 - Decorator
Lezione 07 - DecoratorLezione 07 - Decorator
Lezione 07 - DecoratorMarco Bianchi
 
Refactoring Smell Code
Refactoring Smell CodeRefactoring Smell Code
Refactoring Smell CodeJOULEHUB GMBH
 
Stato di avanzamento dei lavori e roadmap del progetto CMDBuild - CMDBuild Da...
Stato di avanzamento dei lavori e roadmap del progetto CMDBuild - CMDBuild Da...Stato di avanzamento dei lavori e roadmap del progetto CMDBuild - CMDBuild Da...
Stato di avanzamento dei lavori e roadmap del progetto CMDBuild - CMDBuild Da...CMDBuild org
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Gian Maria Ricci
 
I processi di sviluppo software: l'evoluzione agile ed il DevOps
I processi di sviluppo software: l'evoluzione agile ed il DevOpsI processi di sviluppo software: l'evoluzione agile ed il DevOps
I processi di sviluppo software: l'evoluzione agile ed il DevOpsGiulio Destri
 
Perché non facciamo più quello che ci piace
Perché non facciamo più quello che ci piacePerché non facciamo più quello che ci piace
Perché non facciamo più quello che ci piaceIlaria Mauric
 
Perché non facciamo più quello che ci piace - Italian Agile Day 2012
Perché non facciamo più quello che ci piace - Italian Agile Day 2012Perché non facciamo più quello che ci piace - Italian Agile Day 2012
Perché non facciamo più quello che ci piace - Italian Agile Day 2012Ilaria Mauric
 

What's hot (19)

Errori comuni nei documenti di Analisi dei Requisiti
Errori comuni nei documenti di Analisi dei RequisitiErrori comuni nei documenti di Analisi dei Requisiti
Errori comuni nei documenti di Analisi dei Requisiti
 
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramIl linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
 
Design Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency InjectionDesign Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency Injection
 
Design Pattern Creazionali
Design Pattern CreazionaliDesign Pattern Creazionali
Design Pattern Creazionali
 
Mvc e di spring e angular js
Mvc e di   spring e angular jsMvc e di   spring e angular js
Mvc e di spring e angular js
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
 
High Level Synthesis Using Esterel
High Level Synthesis Using EsterelHigh Level Synthesis Using Esterel
High Level Synthesis Using Esterel
 
Lezione 07 - Decorator
Lezione 07 - DecoratorLezione 07 - Decorator
Lezione 07 - Decorator
 
Refactoring Smell Code
Refactoring Smell CodeRefactoring Smell Code
Refactoring Smell Code
 
Iloveyou
IloveyouIloveyou
Iloveyou
 
Software Testing Forum 2012 - Polarion e TRS SpA
Software Testing Forum 2012 - Polarion e TRS SpASoftware Testing Forum 2012 - Polarion e TRS SpA
Software Testing Forum 2012 - Polarion e TRS SpA
 
MyJOrganizer presentazione
MyJOrganizer presentazioneMyJOrganizer presentazione
MyJOrganizer presentazione
 
Stato di avanzamento dei lavori e roadmap del progetto CMDBuild - CMDBuild Da...
Stato di avanzamento dei lavori e roadmap del progetto CMDBuild - CMDBuild Da...Stato di avanzamento dei lavori e roadmap del progetto CMDBuild - CMDBuild Da...
Stato di avanzamento dei lavori e roadmap del progetto CMDBuild - CMDBuild Da...
 
Tesi di Laurea
Tesi di LaureaTesi di Laurea
Tesi di Laurea
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011
 
I processi di sviluppo software: l'evoluzione agile ed il DevOps
I processi di sviluppo software: l'evoluzione agile ed il DevOpsI processi di sviluppo software: l'evoluzione agile ed il DevOps
I processi di sviluppo software: l'evoluzione agile ed il DevOps
 
Perché non facciamo più quello che ci piace
Perché non facciamo più quello che ci piacePerché non facciamo più quello che ci piace
Perché non facciamo più quello che ci piace
 
Perché non facciamo più quello che ci piace - Italian Agile Day 2012
Perché non facciamo più quello che ci piace - Italian Agile Day 2012Perché non facciamo più quello che ci piace - Italian Agile Day 2012
Perché non facciamo più quello che ci piace - Italian Agile Day 2012
 

Viewers also liked

Java- Concurrent programming - Synchronization (part 1)
Java- Concurrent programming - Synchronization (part 1)Java- Concurrent programming - Synchronization (part 1)
Java- Concurrent programming - Synchronization (part 1)Riccardo Cardin
 
Java - Processing input and output
Java - Processing input and outputJava - Processing input and output
Java - Processing input and outputRiccardo Cardin
 
Design Pattern Comportamentali
Design Pattern ComportamentaliDesign Pattern Comportamentali
Design Pattern ComportamentaliRiccardo Cardin
 
Java- Concurrent programming - Synchronization (part 2)
Java- Concurrent programming - Synchronization (part 2)Java- Concurrent programming - Synchronization (part 2)
Java- Concurrent programming - Synchronization (part 2)Riccardo Cardin
 
Java - Generic programming
Java - Generic programmingJava - Generic programming
Java - Generic programmingRiccardo Cardin
 
Java - Concurrent programming - Thread's advanced concepts
Java - Concurrent programming - Thread's advanced conceptsJava - Concurrent programming - Thread's advanced concepts
Java - Concurrent programming - Thread's advanced conceptsRiccardo Cardin
 
Java - Concurrent programming - Thread's basics
Java - Concurrent programming - Thread's basicsJava - Concurrent programming - Thread's basics
Java - Concurrent programming - Thread's basicsRiccardo Cardin
 
Software architecture patterns
Software architecture patternsSoftware architecture patterns
Software architecture patternsRiccardo Cardin
 
Java Graphics Programming
Java Graphics ProgrammingJava Graphics Programming
Java Graphics ProgrammingRiccardo Cardin
 
Java Exception Handling, Assertions and Logging
Java Exception Handling, Assertions and LoggingJava Exception Handling, Assertions and Logging
Java Exception Handling, Assertions and LoggingRiccardo Cardin
 
Java - Remote method invocation
Java - Remote method invocationJava - Remote method invocation
Java - Remote method invocationRiccardo Cardin
 
SOLID - Principles of Object Oriented Design
SOLID - Principles of Object Oriented DesignSOLID - Principles of Object Oriented Design
SOLID - Principles of Object Oriented DesignRiccardo Cardin
 
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections frameworkRiccardo Cardin
 
Yd1105164 sprawozdanie merytoryczne 2011 eng done-1
Yd1105164 sprawozdanie merytoryczne 2011 eng    done-1Yd1105164 sprawozdanie merytoryczne 2011 eng    done-1
Yd1105164 sprawozdanie merytoryczne 2011 eng done-1odfoundation
 
SGI OpenFOAM Cloud Benchmark Part 3, OpenFOAM Study Meeting for beginner@Kans...
SGI OpenFOAM Cloud Benchmark Part 3, OpenFOAM Study Meeting for beginner@Kans...SGI OpenFOAM Cloud Benchmark Part 3, OpenFOAM Study Meeting for beginner@Kans...
SGI OpenFOAM Cloud Benchmark Part 3, OpenFOAM Study Meeting for beginner@Kans...Masashi Imano
 
Presentazione one thor in pdf
Presentazione one thor in pdfPresentazione one thor in pdf
Presentazione one thor in pdfonethoritalia
 
Pagrindines dos komandos
Pagrindines dos komandosPagrindines dos komandos
Pagrindines dos komandosDonatas Bukelis
 

Viewers also liked (20)

Java- Concurrent programming - Synchronization (part 1)
Java- Concurrent programming - Synchronization (part 1)Java- Concurrent programming - Synchronization (part 1)
Java- Concurrent programming - Synchronization (part 1)
 
Java - Processing input and output
Java - Processing input and outputJava - Processing input and output
Java - Processing input and output
 
Java - Sockets
Java - SocketsJava - Sockets
Java - Sockets
 
Design Pattern Comportamentali
Design Pattern ComportamentaliDesign Pattern Comportamentali
Design Pattern Comportamentali
 
Java- Concurrent programming - Synchronization (part 2)
Java- Concurrent programming - Synchronization (part 2)Java- Concurrent programming - Synchronization (part 2)
Java- Concurrent programming - Synchronization (part 2)
 
Java - Generic programming
Java - Generic programmingJava - Generic programming
Java - Generic programming
 
Java - Concurrent programming - Thread's advanced concepts
Java - Concurrent programming - Thread's advanced conceptsJava - Concurrent programming - Thread's advanced concepts
Java - Concurrent programming - Thread's advanced concepts
 
Java - Concurrent programming - Thread's basics
Java - Concurrent programming - Thread's basicsJava - Concurrent programming - Thread's basics
Java - Concurrent programming - Thread's basics
 
Software architecture patterns
Software architecture patternsSoftware architecture patterns
Software architecture patterns
 
Java Graphics Programming
Java Graphics ProgrammingJava Graphics Programming
Java Graphics Programming
 
Java Exception Handling, Assertions and Logging
Java Exception Handling, Assertions and LoggingJava Exception Handling, Assertions and Logging
Java Exception Handling, Assertions and Logging
 
Java - Remote method invocation
Java - Remote method invocationJava - Remote method invocation
Java - Remote method invocation
 
SOLID - Principles of Object Oriented Design
SOLID - Principles of Object Oriented DesignSOLID - Principles of Object Oriented Design
SOLID - Principles of Object Oriented Design
 
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections framework
 
Yd1105164 sprawozdanie merytoryczne 2011 eng done-1
Yd1105164 sprawozdanie merytoryczne 2011 eng    done-1Yd1105164 sprawozdanie merytoryczne 2011 eng    done-1
Yd1105164 sprawozdanie merytoryczne 2011 eng done-1
 
SGI OpenFOAM Cloud Benchmark Part 3, OpenFOAM Study Meeting for beginner@Kans...
SGI OpenFOAM Cloud Benchmark Part 3, OpenFOAM Study Meeting for beginner@Kans...SGI OpenFOAM Cloud Benchmark Part 3, OpenFOAM Study Meeting for beginner@Kans...
SGI OpenFOAM Cloud Benchmark Part 3, OpenFOAM Study Meeting for beginner@Kans...
 
Unix pranesimu temos
Unix pranesimu temosUnix pranesimu temos
Unix pranesimu temos
 
Presentazione one thor in pdf
Presentazione one thor in pdfPresentazione one thor in pdf
Presentazione one thor in pdf
 
Pagrindines dos komandos
Pagrindines dos komandosPagrindines dos komandos
Pagrindines dos komandos
 
CCCJ Presentation to the International Association of University Presidents (...
CCCJ Presentation to the International Association of University Presidents (...CCCJ Presentation to the International Association of University Presidents (...
CCCJ Presentation to the International Association of University Presidents (...
 

Similar to Introduzione a UML

Lezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del softwareLezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del softwareGiuseppe Cramarossa
 
Presentazione review it_20min
Presentazione review it_20minPresentazione review it_20min
Presentazione review it_20minFabrizio Straccia
 
Presentazione Tamiazzo09
Presentazione Tamiazzo09Presentazione Tamiazzo09
Presentazione Tamiazzo09gueste37f39
 
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
 
Meetup ASP.NET Core Angular
Meetup ASP.NET Core AngularMeetup ASP.NET Core Angular
Meetup ASP.NET Core Angulardotnetcode
 
Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)K-Tech Formazione
 
Machine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsMachine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsIgor Antonacci
 
Il programmatore e le sue api
Il programmatore e le sue apiIl programmatore e le sue api
Il programmatore e le sue apiBetter Software
 
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...Emerasoft, solutions to collaborate
 
Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)DotNetMarche
 
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembre
Ibm elm  smart collaboration del tuo team di sys e sw engineering   19 novembreIbm elm  smart collaboration del tuo team di sys e sw engineering   19 novembre
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembreProfesia Srl, Lynx Group
 
Continuous Integration e High Quality Code
Continuous Integration e High Quality CodeContinuous Integration e High Quality Code
Continuous Integration e High Quality CodeDaniele Mondello
 
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Codemotion
 
Code Generation con i templates T4 in visual studio
Code Generation con i templates T4 in visual studioCode Generation con i templates T4 in visual studio
Code Generation con i templates T4 in visual studioMarco Parenzan
 
Tesi Marco Ventura
Tesi Marco VenturaTesi Marco Ventura
Tesi Marco Venturaguest335584
 
Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad al...
Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad al...Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad al...
Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad al...festival ICT 2016
 

Similar to Introduzione a UML (20)

Lezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del softwareLezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del software
 
Presentazione review it_20min
Presentazione review it_20minPresentazione review it_20min
Presentazione review it_20min
 
Presentazione Tamiazzo09
Presentazione Tamiazzo09Presentazione Tamiazzo09
Presentazione Tamiazzo09
 
Corso UML
Corso UMLCorso UML
Corso UML
 
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 ...
 
Meetup ASP.NET Core Angular
Meetup ASP.NET Core AngularMeetup ASP.NET Core Angular
Meetup ASP.NET Core Angular
 
Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)Corso Unified Modeling Language (UML)
Corso Unified Modeling Language (UML)
 
Machine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsMachine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devops
 
Reportage Delphi Day 2012
Reportage Delphi Day 2012Reportage Delphi Day 2012
Reportage Delphi Day 2012
 
Il programmatore e le sue api
Il programmatore e le sue apiIl programmatore e le sue api
Il programmatore e le sue api
 
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
 
Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)
 
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembre
Ibm elm  smart collaboration del tuo team di sys e sw engineering   19 novembreIbm elm  smart collaboration del tuo team di sys e sw engineering   19 novembre
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembre
 
Continuous Integration e High Quality Code
Continuous Integration e High Quality CodeContinuous Integration e High Quality Code
Continuous Integration e High Quality Code
 
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
 
Code Generation con i templates T4 in visual studio
Code Generation con i templates T4 in visual studioCode Generation con i templates T4 in visual studio
Code Generation con i templates T4 in visual studio
 
Tesi Marco Ventura
Tesi Marco VenturaTesi Marco Ventura
Tesi Marco Ventura
 
Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad al...
Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad al...Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad al...
Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad al...
 
AutoCAD2011
AutoCAD2011AutoCAD2011
AutoCAD2011
 
Introduzione all'ALM
Introduzione all'ALMIntroduzione all'ALM
Introduzione all'ALM
 

Introduzione a UML

  • 1. INTRODUZIONE A UML INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 – 2015 rcardin@math.unipd.it
  • 2. SOMMARIO  Che cos’è UML  Utilizzo di UML  Prospettiva di Utilizzo  Diagrammi UML  UML e lo Sviluppo Software Ingegneria del software mod. A Riccardo Cardin 2
  • 3. SOMMARIO  Che cos’è UML  Utilizzo di UML  Prospettiva di Utilizzo  Diagrammi UML  UML e lo Sviluppo Software Ingegneria del software mod. A Riccardo Cardin 3
  • 4. CHE COS’È UML “Famiglia di notazioni grafiche che si basano su un singolo meta-modello e servono a supportare la descrizione e il progetto dei sistemi  Pensato su un paradigma ad oggetti (object oriented)  Meta-modello  Insieme di regole, vincoli e teorie utilizzate per la modellazione di una classe di problemi  Modello: astrazione del mondo reale Ingegneria del software mod. A Riccardo Cardin 4 software” Martin Fowler
  • 5. COS’È UML  Linguaggio visuale  Facile da imparare, ma semanticamente molto ricco  Sintassi  UML Notation Guide  Regole attraverso le quali gli elementi di un linguaggio sono assemblati in espressioni  Elementi di modellazione (classi, interfacce, casi d’uso,…)  Relazioni (associazioni, generalizzazioni,…)  Diagrammi (delle classi, dei casi d’uso, di interazione,…)  Semantica  UML Semantics  Regole attraverso le quali alle espressioni sintattiche viene attribuito un significato Ingegneria del software mod. A Riccardo Cardin 5
  • 6. CHE COS’È UML  Caratteristiche principali  Incorpora la miglior esperienza sviluppata a livello industriale  È uno strumento flessibile, che si adatta alla maggior parte dei sistemi produttivi  Si adatta ai bisogni di sviluppo dei moderni software  Scalabilità  Distribuzione dell’architettura  Concorrenza  …  È indipendente dai linguaggi di sviluppo e programmazione Ingegneria del software mod. A Riccardo Cardin 6
  • 7. CHE COS’È UML  Caratteristiche principali  Supporta concetti di sviluppo ad alto livello  Frameworks  Patterns  Componenti  …  Supporta l’intero ciclo di vita del software  Dal documento di Analisi dei Requisiti al documento di Piano di Qualifica  E’ supportato da numerosi tools di progettazione  Rational Application Developer (IBM RAD)  http://www-01.ibm.com/software/awdtools/developer/application  Eclipse Papyrus UML (http://www.eclipse.org/modeling/mdt/papyrus)  Astah Community Edition (http://astah.net/editions/community)  BoUML (http://bouml.free.fr) Ingegneria del software mod. A Riccardo Cardin 7
  • 8. CHE COS’È UML  UML è uno standard  Object Management Group (OMG)  CORBA (Common Object Request Broker Architecture)  BPMN (Business Process Managament Notation)  Relativamente giovane: 1997  Prima esistevano una miriade di linguaggi grafici di modellazione, ognuno con le proprie regole  Anni ’80 e ’90  Perché?  Il linguaggio naturale è troppo astratto e dispersivo  È ambiguo e non formale  I linguaggi di programmazione sono troppo concreti Ingegneria del software mod. A Riccardo Cardin 8
  • 9. OBJECT MANAGEMENT GROUP OMG’s mission is to develop, with our worldwide membership, enterprise integration standards that provide real-world value. OMG is also dedicated to promoting business technology and optimization for innovation through its Business Ecology® Initiative (BEI) program and associated Communities of Practice  Aziende che partecipano alla definizione di UML Ingegneria del software mod. A Riccardo Cardin 9 Aonix Colorado State University Computer Associates Concept Five Data Access EDS Enea Data Hewlett-Packard IBM I-Logix InLine Software Intellicorp Kabira Technologies Klasse Objecten Lockheed Martin Microsoft ObjecTime Oracle Ptech OAO Technology Solutions Rational Software Reich SAP Softeam Sterling Software Sun Taskon Telelogic Unisys …
  • 10. SOMMARIO  Che cos’è UML  Utilizzo di UML  Prospettiva di Utilizzo  Diagrammi UML  UML e lo Sviluppo Software Ingegneria del software mod. A Riccardo Cardin 10
  • 11. UTILIZZO DI UML  UML come abbozzo (skecth)  Approccio più utilizzato in assoluto  Confermo ;-)  Documentare e descrizione porzioni di sistema  Forward engineering  Il sistema (o una parte) è descritto con diagrammi UML prima delle stesura del codice  Aiuta la progettazione dell’architettura del prodotto  Aziende medio/grandi  Documento di Specifica Tecnica (ST)  Reverse engineering  Il diagramma UML è costruito a partire dal codice  Documentazione a posteriori  Aziende medio/piccole (aziende italiane in genere…) Ingegneria del software mod. A Riccardo Cardin 11
  • 12. UTILIZZO DI UML  UML come abbozzo (skecth) Ingegneria del software mod. A Riccardo Cardin 12
  • 13. UTILIZZO DI UML  UML come progetto  Approccio più ingegneristico  Documento di Definizione di prodotto (DP)  Descrive formalmente il sistema per modelli  Elevato grado di dettaglio  Nessuna decisione o interpretazione da parte del programmatore  Definizione delle interfacce tra sottosistemi  Approccio più comune rispetto alla descrizione di tutto il sistema  I programmatori “progettano” e sviluppano le componenti dei sistemi in autonomamente  Software per la progettazione di dettaglio  CASE (Computer-Aided Software Engineeging) Ingegneria del software mod. A Riccardo Cardin 13
  • 14. UTILIZZO DI UML  UML come progetto Ingegneria del software mod. A Riccardo Cardin 14
  • 15. UTILIZZO DI UML  UML come linguaggio di programmazione  Generazione automatica del codice a partire dai diagrammi  Approccio ottimale (ma utopistico…)  Prevede l’utilizzo di pattern ricorrenti  Programmazione meccanica  Strumenti di compilazione dei diagrammi UML  Complessi e costosi …  Correttezza formale del codice  Il codice prodotto può soddisfare intrinsecamente delle proprietà di correttezza formale  È realmente un approccio conveniente?  È più costosa la modellazione o la scrittura del codice? Ingegneria del software mod. A Riccardo Cardin 15
  • 16. PROSPETTIVA DI UTILIZZO  Concetti VS. Software  Prospettiva software  Elementi UML corrispondono ad elementi software  Classi, oggetti, ecc…  La più utilizzata  Prospettiva concettuale  Utilizzato per descrive concetti in un dominio  Definizione di un vocabolario comune  Approccio meno comune  UML inizia ora a diffondersi nei domini informatici, figuriamoci in quelli non informatici… UML, a volte non basta  Modellazione di processi di business (BPM) Ingegneria del software mod. A Riccardo Cardin 16
  • 17. UML: UN PO’ DI STORIA  Anni ’80  Programmazione a oggetti  Smalltalk, albori del C++, …  Linguaggi grafici orientati agli oggetti per la progettazione  Moltitudine di autori: Grady Booch, Peter Coad, ecc…  Teorie molto simili, ma con fastidiosi particolari che non permettevano la standardizzazione  Anni ‘90  Rational (ora parte di IBM)  Sviluppa un suo standard (UML 0.8)  Pericoloso vantaggio competitivo…  OMG  Pressioni da numerosi produttori di strumenti software  Mantenere l’interoperabilità degli strumenti CASE  Concetto tutt’ora non raggiunto :-(  UML 1.0: gennaio 1997  2003: UML 2.0  Major release: Versione da utilizzare! Ingegneria del software mod. A Riccardo Cardin 17
  • 18. UML DI TUTTI I GIORNI…  Esiste UML legale?  Non possiede regole prescrittive  Definiscono cosa è legale e cosa non lo è  Necessita di un ente ufficiale di controllo  Precise regole descrittive  …per imparare conviene partire dal suo utilizzo concreto…  Il grado di dettaglio può variare  Ogni elemento UML può essere soppresso, ottenendo ancora un diagramma legale  E’ la sensibilità dell’autore a determinare le informazioni da esporre nel diagramma Voi sarete OBBLIGATI a tenere sempre un buon grado di dettaglio Ingegneria del software mod. A Riccardo Cardin 18 durante il corso…
  • 19. SOMMARIO  Che cos’è UML  Utilizzo di UML  Prospettiva di Utilizzo  Diagrammi UML  UML e lo Sviluppo Software Ingegneria del software mod. A Riccardo Cardin 19
  • 20. DIAGRAMMI UML Ingegneria del software mod. A Riccardo Cardin 20
  • 21. DIAGRAMMI UML  Esempi di diagrammi Ingegneria del software mod. A Riccardo Cardin 21 Diagramma delle classi Diagramma di sequenza Diagramma dei casi d’uso
  • 22. SOMMARIO  Che cos’è UML  Utilizzo di UML  Prospettiva di Utilizzo  Diagrammi UML  UML e lo Sviluppo Software Ingegneria del software mod. A Riccardo Cardin 22
  • 23. UML E LO SVILUPPO SOFTWARE  Ogni fase, i suoi diagrammi Ingegneria del software mod. A Riccardo Cardin 23 • Diagrammi Use case • Diagrammi di flusso Revisione dei Requisiti R. Progetto Architetturale Revisione di Qualifica R. di Accettazione • Diagrammi dei package • Diagrammi delle classi • Diagrammi degli oggetti • Diagrammi di attività • Diagrammi di sequenza • Diagrammi delle classi • Diagrammi di attività • Diagrammi di sequenza • Diagrammi di flusso
  • 24. GLOSSARIO  Design Pattern  Soluzione progettuale generale a un problema ricorrente. Una descrizione o un modello da applicare per risolvere un problema che può presentarsi in diverse situazioni durante la progettazione e lo sviluppo del software.  Framework  Struttura di supporto su cui un software può essere organizzato e progettato Ingegneria del software mod. A Riccardo Cardin 24
  • 25. RIFERIMENTI OMG Homepage – www.omg.org  UML Homepage – www.uml.org  UML Distilled, Martin Fowler, 2004, Pearson (Addison Wesley) Ingegneria del software mod. A Riccardo Cardin 25