際際滷

際際滷Share a Scribd company logo
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 duso,) 
 Relazioni (associazioni, generalizzazioni,) 
 Diagrammi (delle classi, dei casi duso, 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 dellarchitettura 
 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 lintero 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 
OMGs 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 dellarchitettura 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 lutilizzo 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 linteroperabilit degli strumenti CASE 
 Concetto tuttora 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 dellautore 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 duso
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 (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
Riccardo 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 diagram
Giuseppe Cramarossa
Design Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency InjectionDesign Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency Injection
Riccardo Cardin
Design Pattern Creazionali
Design Pattern CreazionaliDesign Pattern Creazionali
Design Pattern Creazionali
Riccardo 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 js
Riccardo Cardin
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
Andrea 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 pptx
GiacomoZorzin
High Level Synthesis Using Esterel
High Level Synthesis Using EsterelHigh Level Synthesis Using Esterel
High Level Synthesis Using Esterel
Alberto Minetti
Lezione 07 - Decorator
Lezione 07 - DecoratorLezione 07 - Decorator
Lezione 07 - Decorator
Marco Bianchi
Refactoring Smell Code
Refactoring Smell CodeRefactoring Smell Code
Refactoring Smell Code
JOULEHUB GMBH
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
Emerasoft, solutions to collaborate
MyJOrganizer presentazione
MyJOrganizer presentazioneMyJOrganizer presentazione
MyJOrganizer presentazione
Davide Bellettini
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
Tesi di Laurea
Tesi di LaureaTesi di Laurea
Tesi di Laurea
Felice Pescatore
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
Gian 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 DevOps
Giulio 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 piace
Ilaria 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 2012
Ilaria Mauric
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
Riccardo 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 diagram
Giuseppe Cramarossa
Design Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency InjectionDesign Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency Injection
Riccardo Cardin
Design Pattern Creazionali
Design Pattern CreazionaliDesign Pattern Creazionali
Design Pattern Creazionali
Riccardo 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 js
Riccardo Cardin
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
Andrea 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 pptx
GiacomoZorzin
High Level Synthesis Using Esterel
High Level Synthesis Using EsterelHigh Level Synthesis Using Esterel
High Level Synthesis Using Esterel
Alberto Minetti
Lezione 07 - Decorator
Lezione 07 - DecoratorLezione 07 - Decorator
Lezione 07 - Decorator
Marco Bianchi
Refactoring Smell Code
Refactoring Smell CodeRefactoring Smell Code
Refactoring Smell Code
JOULEHUB GMBH
MyJOrganizer presentazione
MyJOrganizer presentazioneMyJOrganizer presentazione
MyJOrganizer presentazione
Davide Bellettini
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 2011
Gian 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 DevOps
Giulio 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 piace
Ilaria 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 2012
Ilaria Mauric

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)
Riccardo Cardin
Java - Processing input and output
Java - Processing input and outputJava - Processing input and output
Java - Processing input and output
Riccardo Cardin
Java - Sockets
Java - SocketsJava - Sockets
Java - Sockets
Riccardo Cardin
Design Pattern Comportamentali
Design Pattern ComportamentaliDesign Pattern Comportamentali
Design Pattern Comportamentali
Riccardo 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 programming
Riccardo 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 concepts
Riccardo Cardin
Java - Concurrent programming - Thread's basics
Java - Concurrent programming - Thread's basicsJava - Concurrent programming - Thread's basics
Java - Concurrent programming - Thread's basics
Riccardo Cardin
Software architecture patterns
Software architecture patternsSoftware architecture patterns
Software architecture patterns
Riccardo Cardin
Java Graphics Programming
Java Graphics ProgrammingJava Graphics Programming
Java Graphics Programming
Riccardo Cardin
Java Exception Handling, Assertions and Logging
Java Exception Handling, Assertions and LoggingJava Exception Handling, Assertions and Logging
Java Exception Handling, Assertions and Logging
Riccardo Cardin
Java - Remote method invocation
Java - Remote method invocationJava - Remote method invocation
Java - Remote method invocation
Riccardo Cardin
SOLID - Principles of Object Oriented Design
SOLID - Principles of Object Oriented DesignSOLID - Principles of Object Oriented Design
SOLID - Principles of Object Oriented Design
Riccardo Cardin
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections framework
Riccardo 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-1
odfoundation
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
Unix pranesimu temos
Unix pranesimu temosUnix pranesimu temos
Unix pranesimu temos
Donatas Bukelis
Presentazione one thor in pdf
Presentazione one thor in pdfPresentazione one thor in pdf
Presentazione one thor in pdf
onethoritalia
Pagrindines dos komandos
Pagrindines dos komandosPagrindines dos komandos
Pagrindines dos komandos
Donatas Bukelis
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 (...
The Council of Community Colleges of Jamaica
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 output
Riccardo Cardin
Design Pattern Comportamentali
Design Pattern ComportamentaliDesign Pattern Comportamentali
Design Pattern Comportamentali
Riccardo 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 programming
Riccardo 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 concepts
Riccardo Cardin
Java - Concurrent programming - Thread's basics
Java - Concurrent programming - Thread's basicsJava - Concurrent programming - Thread's basics
Java - Concurrent programming - Thread's basics
Riccardo Cardin
Software architecture patterns
Software architecture patternsSoftware architecture patterns
Software architecture patterns
Riccardo Cardin
Java Graphics Programming
Java Graphics ProgrammingJava Graphics Programming
Java Graphics Programming
Riccardo Cardin
Java Exception Handling, Assertions and Logging
Java Exception Handling, Assertions and LoggingJava Exception Handling, Assertions and Logging
Java Exception Handling, Assertions and Logging
Riccardo Cardin
Java - Remote method invocation
Java - Remote method invocationJava - Remote method invocation
Java - Remote method invocation
Riccardo Cardin
SOLID - Principles of Object Oriented Design
SOLID - Principles of Object Oriented DesignSOLID - Principles of Object Oriented Design
SOLID - Principles of Object Oriented Design
Riccardo Cardin
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections framework
Riccardo 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-1
odfoundation
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 pdf
onethoritalia
Pagrindines dos komandos
Pagrindines dos komandosPagrindines dos komandos
Pagrindines dos komandos
Donatas Bukelis
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 (...
The Council of Community Colleges of Jamaica

Similar to Introduzione a UML (20)

Lezione 6 - Accenni sullingegneria del software
Lezione 6 - Accenni sullingegneria del softwareLezione 6 - Accenni sullingegneria del software
Lezione 6 - Accenni sullingegneria del software
Giuseppe Cramarossa
Presentazione review it_20min
Presentazione review it_20minPresentazione review it_20min
Presentazione review it_20min
Fabrizio Straccia
Presentazione Tamiazzo09
Presentazione Tamiazzo09Presentazione Tamiazzo09
Presentazione Tamiazzo09
gueste37f39
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 Angular
dotnetcode
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 devops
Igor Antonacci
Reportage Delphi Day 2012
Reportage Delphi Day 2012Reportage Delphi Day 2012
Reportage Delphi Day 2012
Marco Breveglieri
Il programmatore e le sue api
Il programmatore e le sue apiIl programmatore e le sue api
Il programmatore e le sue api
Better 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 novembre
Profesia 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 Code
Daniele 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 studio
Marco Parenzan
Tesi Marco Ventura
Tesi Marco VenturaTesi Marco Ventura
Tesi Marco Ventura
guest335584
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
Introduzione all'ALM
Introduzione all'ALMIntroduzione all'ALM
Introduzione all'ALM
Gian Maria Ricci
Lezione 6 - Accenni sullingegneria del software
Lezione 6 - Accenni sullingegneria del softwareLezione 6 - Accenni sullingegneria del software
Lezione 6 - Accenni sullingegneria del software
Giuseppe Cramarossa
Presentazione review it_20min
Presentazione review it_20minPresentazione review it_20min
Presentazione review it_20min
Fabrizio Straccia
Presentazione Tamiazzo09
Presentazione Tamiazzo09Presentazione Tamiazzo09
Presentazione Tamiazzo09
gueste37f39
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 Angular
dotnetcode
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 devops
Igor Antonacci
Reportage Delphi Day 2012
Reportage Delphi Day 2012Reportage Delphi Day 2012
Reportage Delphi Day 2012
Marco Breveglieri
Il programmatore e le sue api
Il programmatore e le sue apiIl programmatore e le sue api
Il programmatore e le sue api
Better 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 novembre
Profesia 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 Code
Daniele 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 studio
Marco Parenzan
Tesi Marco Ventura
Tesi Marco VenturaTesi Marco Ventura
Tesi Marco Ventura
guest335584
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

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 duso,) Relazioni (associazioni, generalizzazioni,) Diagrammi (delle classi, dei casi duso, 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 dellarchitettura 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 lintero 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 OMGs 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 dellarchitettura 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 lutilizzo 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 linteroperabilit degli strumenti CASE Concetto tuttora 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 dellautore 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 duso
  • 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