SlideShare a Scribd company logo
1 of 22
DIAGRAMMI DI SEQUENZA 
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 
 Introduzione 
 Partecipanti e messaggi 
 Concetti avanzati 
Ingegneria del software mod. A 
Riccardo Cardin 2
SOMMARIO 
 Introduzione 
 Partecipanti e messaggi 
 Concetti avanzati 
Ingegneria del software mod. A 
Riccardo Cardin 3
DIAGRAMMI DI SEQUENZA 
Ingegneria del software mod. A 
Riccardo Cardin 4
DIAGRAMMI DI SEQUENZA 
 Specifica Tecnica, Definizione di Prodotto 
Ingegneria del software mod. A 
Riccardo Cardin 5 
• Diagrammi Use case 
• Diagrammi di attività 
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
DIAGRAMMI DI SEQUENZA 
Definizione 
Descrivono la collaborazione di un gruppo di oggetti che devono 
implementare collettivamente un comportamento 
Ingegneria del software mod. A 
Riccardo Cardin 6 
Partecipante 
Scorrere del tempo 
Linea della vita
SOMMARIO 
 Introduzione 
 Partecipanti e messaggi 
 Concetti avanzati 
Ingegneria del software mod. A 
Riccardo Cardin 7
PARTECIPANTI 
 Entità che detengono il flusso del caso d’uso 
 UML 1.x  Istanze di classi (oggetti) 
 UML 2.x  Concetto più lato 
 Eliminata la sottolineatura 
 Barra di attivazione 
 Indica in quale momento 
un partecipante è attivo 
 Opzionale, ma molto utile 
Ingegneria del software mod. A 
Riccardo Cardin 8 
Classe : nome 
Barra di 
attivazione
attribute = signal_name (args) : return_type 
args = <name> : <class> 
MESSAGGI (SEGNALI) 
 Dati e operazioni scambiati tra i partecipanti 
 Chiamata a metodi degli oggetti 
 Messaggio trovato 
 Primo messaggio che scaturisce dall’esterno 
Messaggio trovato 
Ingegneria del software mod. A 
Riccardo Cardin 9 
Messaggi 
Chiamata 
interna 
Ritorno
MESSAGGI (SEGNALI) 
 Esempio principale 
Ingegneria del software mod. A 
Riccardo Cardin 10 
Esempio 
È richiesto lo sviluppo di un’applicazione che permetta la gestione di un semplice blog. 
In particolare devono essere disponibili almeno tutte le funzionalità base di un blog: 
deve essere possibile per un utente inserire un nuovo post e successivamente per gli 
altri utenti deve essere possibile commentarlo. Queste due operazioni devono essere 
disponibili unicamente agli utenti registrati all’interno del sistema. La registrazione 
avviene scegliendo una username e una password. La username deve essere univoca 
all’interno del sistema.
MESSAGGI (SEGNALI) 
 Esempio 1 
Ingegneria del software mod. A 
Riccardo Cardin 11
MESSAGGI (SEGNALI) 
 Tipologie 
Ingegneria del software mod. A 
Riccardo Cardin 12
MESSAGGI (SEGNALI) 
 Passaggio di dati 
 Nessuna tecnica di modellazione standard!!! 
 Metodo classico 
 Girini dei dati (data tadpoles) 
Ingegneria del software mod. A 
Riccardo Cardin 13 
metodo(param) 
metodo param
MESSAGGI (SEGNALI) 
 Messaggi sincroni 
 Il chiamante rimane in attesa della risposta 
 Messaggi asincroni 
 Il chiamante non rimane in attesa della risposta 
Ingegneria del software mod. A 
Riccardo Cardin 14 
metodo(param) 
metodo(param)
MESSAGGI (SEGNALI) 
 Creazione partecipanti 
 Comodo l’utilizzo della parola “new” 
 Distruzione 
Ingegneria del software mod. A 
Riccardo Cardin 15 
Creazione 
(con parametro) 
Distruzione 
Auto distruzione
MESSAGGI (SEGNALI) 
 Esempio 2 
Ingegneria del software mod. A 
Riccardo Cardin 16
SOMMARIO 
 Introduzione 
 Partecipanti e messaggi 
 Concetti avanzati 
Ingegneria del software mod. A 
Riccardo Cardin 17
CICLI E CONDIZIONI 
 Frame di interazione (UML 2) 
Ingegneria del software mod. A 
Riccardo Cardin 18 
Pseudocodice 
procedura spedizione 
foreach (elementoLinea) 
if (prodotto.valore > 10K) 
raccomandata.spedizione 
else 
normale.spedizione 
end if 
end for 
if (neccesitaConferma) 
messenger.conferma 
end procedura 
Frame 
interazione 
Guardia
CICLI E CONDIZIONI 
 Frame di interazione 
Ingegneria del software mod. A 
Riccardo Cardin 19 
Operatore Significato 
alt Frammenti multipli in alternativa; verrà eseguito solo quello per cui è 
verificata la condizione. 
opt Opzionale; il frammento viene eseguito solo se la condizione specificata è 
verificata. Equivalente a alt con solo una freccia. 
par Parallelo; ogni frammento è eseguito in parallelo. 
loop Ciclo; il frammento può essere eseguito più volte, la base dell’iterazione è 
indicata dalla guardia. 
region Regione critica; il frammento può essere eseguito da un solo thread alla 
volta. 
neg Negativo; il frammento mostra un’interazione non valida. 
ref Riferimento; si riferisce ad un’interazione definita in un altro diagramma 
sd Sequence diagram; utilizzato per racchiudere un intero diagramma di 
sequenza.
MODELLAZIONE 
 Ottimi per modellare le collaborazioni fra oggetti 
 Non la logica di controllo 
 Inadeguatezza a modellare cicli e condizioni … 
 Meglio i diagrammi di attività 
 … o pseudocodice … 
 Controllo centralizzato VS Distribuito 
 Centralizzato 
 Unico partecipante che governa l’elaborazione 
 Distribuito 
 Suddivisione dei compiti dei partecipanti 
Ingegneria del software mod. A 
Riccardo Cardin 20
MODELLAZIONE 
 Controllo centralizzato VS Distribuito 
Ingegneria del software mod. A 
Riccardo Cardin 21 
Centralizzato 
Distribuito
RIFERIMENTI 
OMG Homepage – www.omg.org 
 UML Homepage – www.uml.org 
 UML Distilled, Martin Fowler, 2004, Pearson 
(Addison Wesley) 
 Learning UML 2.0, Kim Hamilton, Russell Miles, 
O’Reilly, 2006 
Ingegneria del software mod. A 
Riccardo Cardin 22

More Related Content

What's hot

Open source Software: pros and cons
Open source Software: pros and consOpen source Software: pros and cons
Open source Software: pros and consygpriya
 
Enable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgentEnable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgentBobby Curtis
 
MySQL 8.0 Document Store - Discovery of a New World
MySQL 8.0 Document Store - Discovery of a New WorldMySQL 8.0 Document Store - Discovery of a New World
MySQL 8.0 Document Store - Discovery of a New WorldFrederic Descamps
 
RESTful web service with JBoss Fuse
RESTful web service with JBoss FuseRESTful web service with JBoss Fuse
RESTful web service with JBoss Fuseejlp12
 
CSS in JS - Escrevendo CSS no JavaScript - Dan Vitoriano
CSS in JS - Escrevendo CSS no JavaScript - Dan VitorianoCSS in JS - Escrevendo CSS no JavaScript - Dan Vitoriano
CSS in JS - Escrevendo CSS no JavaScript - Dan VitorianoDan Vitoriano
 
Database-Migration and -Upgrade with Transportable Tablespaces
Database-Migration and -Upgrade with Transportable TablespacesDatabase-Migration and -Upgrade with Transportable Tablespaces
Database-Migration and -Upgrade with Transportable TablespacesMarkus Flechtner
 
Slides For Operating System Concepts By Silberschatz Galvin And Gagne
Slides For Operating System Concepts By Silberschatz Galvin And GagneSlides For Operating System Concepts By Silberschatz Galvin And Gagne
Slides For Operating System Concepts By Silberschatz Galvin And Gagnesarankumar4445
 
Achieving High Availability in PostgreSQL
Achieving High Availability in PostgreSQLAchieving High Availability in PostgreSQL
Achieving High Availability in PostgreSQLMydbops
 
Oracle OCI APIs and SDK
Oracle OCI APIs and SDKOracle OCI APIs and SDK
Oracle OCI APIs and SDKPhil Wilkins
 
Building day 2 upload Building the Internet of Things with Thingsquare and ...
Building day 2   upload Building the Internet of Things with Thingsquare and ...Building day 2   upload Building the Internet of Things with Thingsquare and ...
Building day 2 upload Building the Internet of Things with Thingsquare and ...Adam Dunkels
 
19 features you will miss if you leave Oracle Database
19 features you will miss if you leave Oracle Database19 features you will miss if you leave Oracle Database
19 features you will miss if you leave Oracle DatabaseFranck Pachot
 
hierarchical bus system
 hierarchical bus system hierarchical bus system
hierarchical bus systemElvis Jonyo
 
Taleemat-e-Islam تعلیمات اسلام Book for Bs ,Mbbs,A.D.A,BA
Taleemat-e-Islam تعلیمات اسلام Book for Bs ,Mbbs,A.D.A,BATaleemat-e-Islam تعلیمات اسلام Book for Bs ,Mbbs,A.D.A,BA
Taleemat-e-Islam تعلیمات اسلام Book for Bs ,Mbbs,A.D.A,BAKamran Abdullah
 
Oracle Exadata Exam Dump
Oracle Exadata Exam DumpOracle Exadata Exam Dump
Oracle Exadata Exam DumpPooja C
 
Operating system 37 demand paging
Operating system 37 demand pagingOperating system 37 demand paging
Operating system 37 demand pagingVaibhav Khanna
 
Lecture 6
Lecture  6Lecture  6
Lecture 6Mr SMAK
 
Exadata I/O Resource Manager (Exadata IORM)
Exadata I/O Resource Manager (Exadata IORM)Exadata I/O Resource Manager (Exadata IORM)
Exadata I/O Resource Manager (Exadata IORM)Monowar Mukul
 
8 memory management strategies
8 memory management strategies8 memory management strategies
8 memory management strategiesDr. Loganathan R
 

What's hot (20)

Open source Software: pros and cons
Open source Software: pros and consOpen source Software: pros and cons
Open source Software: pros and cons
 
Enable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgentEnable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgent
 
MySQL 8.0 Document Store - Discovery of a New World
MySQL 8.0 Document Store - Discovery of a New WorldMySQL 8.0 Document Store - Discovery of a New World
MySQL 8.0 Document Store - Discovery of a New World
 
RESTful web service with JBoss Fuse
RESTful web service with JBoss FuseRESTful web service with JBoss Fuse
RESTful web service with JBoss Fuse
 
CSS in JS - Escrevendo CSS no JavaScript - Dan Vitoriano
CSS in JS - Escrevendo CSS no JavaScript - Dan VitorianoCSS in JS - Escrevendo CSS no JavaScript - Dan Vitoriano
CSS in JS - Escrevendo CSS no JavaScript - Dan Vitoriano
 
Open Source & PHP
Open Source & PHPOpen Source & PHP
Open Source & PHP
 
Database-Migration and -Upgrade with Transportable Tablespaces
Database-Migration and -Upgrade with Transportable TablespacesDatabase-Migration and -Upgrade with Transportable Tablespaces
Database-Migration and -Upgrade with Transportable Tablespaces
 
Slides For Operating System Concepts By Silberschatz Galvin And Gagne
Slides For Operating System Concepts By Silberschatz Galvin And GagneSlides For Operating System Concepts By Silberschatz Galvin And Gagne
Slides For Operating System Concepts By Silberschatz Galvin And Gagne
 
scheduling.pptx
scheduling.pptxscheduling.pptx
scheduling.pptx
 
Achieving High Availability in PostgreSQL
Achieving High Availability in PostgreSQLAchieving High Availability in PostgreSQL
Achieving High Availability in PostgreSQL
 
Oracle OCI APIs and SDK
Oracle OCI APIs and SDKOracle OCI APIs and SDK
Oracle OCI APIs and SDK
 
Building day 2 upload Building the Internet of Things with Thingsquare and ...
Building day 2   upload Building the Internet of Things with Thingsquare and ...Building day 2   upload Building the Internet of Things with Thingsquare and ...
Building day 2 upload Building the Internet of Things with Thingsquare and ...
 
19 features you will miss if you leave Oracle Database
19 features you will miss if you leave Oracle Database19 features you will miss if you leave Oracle Database
19 features you will miss if you leave Oracle Database
 
hierarchical bus system
 hierarchical bus system hierarchical bus system
hierarchical bus system
 
Taleemat-e-Islam تعلیمات اسلام Book for Bs ,Mbbs,A.D.A,BA
Taleemat-e-Islam تعلیمات اسلام Book for Bs ,Mbbs,A.D.A,BATaleemat-e-Islam تعلیمات اسلام Book for Bs ,Mbbs,A.D.A,BA
Taleemat-e-Islam تعلیمات اسلام Book for Bs ,Mbbs,A.D.A,BA
 
Oracle Exadata Exam Dump
Oracle Exadata Exam DumpOracle Exadata Exam Dump
Oracle Exadata Exam Dump
 
Operating system 37 demand paging
Operating system 37 demand pagingOperating system 37 demand paging
Operating system 37 demand paging
 
Lecture 6
Lecture  6Lecture  6
Lecture 6
 
Exadata I/O Resource Manager (Exadata IORM)
Exadata I/O Resource Manager (Exadata IORM)Exadata I/O Resource Manager (Exadata IORM)
Exadata I/O Resource Manager (Exadata IORM)
 
8 memory management strategies
8 memory management strategies8 memory management strategies
8 memory management strategies
 

Viewers also liked

Introduzione ai Design Pattern
Introduzione ai Design PatternIntroduzione ai Design Pattern
Introduzione ai Design PatternRiccardo 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 - 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 - Synchronization (part 2)
Java- Concurrent programming - Synchronization (part 2)Java- Concurrent programming - Synchronization (part 2)
Java- Concurrent programming - Synchronization (part 2)Riccardo Cardin
 
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
 
Design Pattern Strutturali
Design Pattern StrutturaliDesign Pattern Strutturali
Design Pattern StrutturaliRiccardo Cardin
 
Java Graphics Programming
Java Graphics ProgrammingJava Graphics Programming
Java Graphics ProgrammingRiccardo Cardin
 
Java - Processing input and output
Java - Processing input and outputJava - Processing input and output
Java - Processing input and outputRiccardo Cardin
 
A (too) Short Introduction to Scala
A (too) Short Introduction to ScalaA (too) Short Introduction to Scala
A (too) Short Introduction to ScalaRiccardo Cardin
 
Design pattern architetturali Model View Controller, MVP e MVVM
Design pattern architetturali   Model View Controller, MVP e MVVMDesign pattern architetturali   Model View Controller, MVP e MVVM
Design pattern architetturali Model View Controller, MVP e MVVMRiccardo 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
 
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections frameworkRiccardo Cardin
 
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
 
Presto updates to 0.178
Presto updates to 0.178Presto updates to 0.178
Presto updates to 0.178Kai Sasaki
 
Scala For Java Programmers
Scala For Java ProgrammersScala For Java Programmers
Scala For Java ProgrammersEnno Runne
 
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 - Remote method invocation
Java - Remote method invocationJava - Remote method invocation
Java - Remote method invocationRiccardo Cardin
 
Software architecture patterns
Software architecture patternsSoftware architecture patterns
Software architecture patternsRiccardo Cardin
 
Java - Generic programming
Java - Generic programmingJava - Generic programming
Java - Generic programmingRiccardo Cardin
 

Viewers also liked (20)

Introduzione ai Design Pattern
Introduzione ai Design PatternIntroduzione ai Design Pattern
Introduzione ai Design Pattern
 
Java Exception Handling, Assertions and Logging
Java Exception Handling, Assertions and LoggingJava Exception Handling, Assertions and Logging
Java Exception Handling, Assertions and Logging
 
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 - Synchronization (part 2)
Java- Concurrent programming - Synchronization (part 2)Java- Concurrent programming - Synchronization (part 2)
Java- Concurrent programming - Synchronization (part 2)
 
Java- Concurrent programming - Synchronization (part 1)
Java- Concurrent programming - Synchronization (part 1)Java- Concurrent programming - Synchronization (part 1)
Java- Concurrent programming - Synchronization (part 1)
 
Design Pattern Strutturali
Design Pattern StrutturaliDesign Pattern Strutturali
Design Pattern Strutturali
 
Java Graphics Programming
Java Graphics ProgrammingJava Graphics Programming
Java Graphics Programming
 
Java - Processing input and output
Java - Processing input and outputJava - Processing input and output
Java - Processing input and output
 
A (too) Short Introduction to Scala
A (too) Short Introduction to ScalaA (too) Short Introduction to Scala
A (too) Short Introduction to Scala
 
Design pattern architetturali Model View Controller, MVP e MVVM
Design pattern architetturali   Model View Controller, MVP e MVVMDesign pattern architetturali   Model View Controller, MVP e MVVM
Design pattern architetturali Model View Controller, MVP e MVVM
 
Java - Concurrent programming - Thread's basics
Java - Concurrent programming - Thread's basicsJava - Concurrent programming - Thread's basics
Java - Concurrent programming - Thread's basics
 
Diagrammi delle Classi
Diagrammi delle ClassiDiagrammi delle Classi
Diagrammi delle Classi
 
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections framework
 
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
 
Presto updates to 0.178
Presto updates to 0.178Presto updates to 0.178
Presto updates to 0.178
 
Scala For Java Programmers
Scala For Java ProgrammersScala For Java Programmers
Scala For Java Programmers
 
SOLID - Principles of Object Oriented Design
SOLID - Principles of Object Oriented DesignSOLID - Principles of Object Oriented Design
SOLID - Principles of Object Oriented Design
 
Java - Remote method invocation
Java - Remote method invocationJava - Remote method invocation
Java - Remote method invocation
 
Software architecture patterns
Software architecture patternsSoftware architecture patterns
Software architecture patterns
 
Java - Generic programming
Java - Generic programmingJava - Generic programming
Java - Generic programming
 

Similar to Diagrammi di Sequenza

Design Pattern Comportamentali
Design Pattern ComportamentaliDesign Pattern Comportamentali
Design Pattern ComportamentaliRiccardo 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
 
Design Pattern Creazionali
Design Pattern CreazionaliDesign Pattern Creazionali
Design Pattern CreazionaliRiccardo Cardin
 
Design Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency InjectionDesign Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency InjectionRiccardo Cardin
 
Presentazione review it_20min
Presentazione review it_20minPresentazione review it_20min
Presentazione review it_20minFabrizio Straccia
 
Presentazione understand
Presentazione understandPresentazione understand
Presentazione understandLuigi La Torre
 
Clean programming 2020-01-25 @ Modena Tech Summit
Clean programming 2020-01-25 @ Modena Tech SummitClean programming 2020-01-25 @ Modena Tech Summit
Clean programming 2020-01-25 @ Modena Tech SummitDavide Muzzarelli
 
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
 
Anti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo evitiAnti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo evitiSimone Federici
 
High Level Synthesis Using Esterel
High Level Synthesis Using EsterelHigh Level Synthesis Using Esterel
High Level Synthesis Using EsterelAlberto Minetti
 
Idiomatic Domain Driven Design
Idiomatic Domain Driven DesignIdiomatic Domain Driven Design
Idiomatic Domain Driven DesignAndrea Saltarello
 
Refactoring Smell Code
Refactoring Smell CodeRefactoring Smell Code
Refactoring Smell CodeJOULEHUB GMBH
 

Similar to Diagrammi di Sequenza (20)

Diagrammi di Attività
Diagrammi di AttivitàDiagrammi di Attività
Diagrammi di Attività
 
Design Pattern Comportamentali
Design Pattern ComportamentaliDesign Pattern Comportamentali
Design Pattern Comportamentali
 
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
 
Introduzione a UML
Introduzione a UMLIntroduzione a UML
Introduzione a UML
 
Design Pattern Creazionali
Design Pattern CreazionaliDesign Pattern Creazionali
Design Pattern Creazionali
 
3DD 1e Salomone
3DD 1e Salomone3DD 1e Salomone
3DD 1e Salomone
 
Design Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency InjectionDesign Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency Injection
 
Diagrammi Use Case
Diagrammi Use CaseDiagrammi Use Case
Diagrammi Use Case
 
Presentazione review it_20min
Presentazione review it_20minPresentazione review it_20min
Presentazione review it_20min
 
Presentazione understand
Presentazione understandPresentazione understand
Presentazione understand
 
Vb.Net
Vb.NetVb.Net
Vb.Net
 
Clean programming 2020-01-25 @ Modena Tech Summit
Clean programming 2020-01-25 @ Modena Tech SummitClean programming 2020-01-25 @ Modena Tech Summit
Clean programming 2020-01-25 @ Modena Tech Summit
 
Thesis Magnone Slides IT
Thesis Magnone Slides ITThesis Magnone Slides IT
Thesis Magnone Slides IT
 
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
 
Anti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo evitiAnti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo eviti
 
High Level Synthesis Using Esterel
High Level Synthesis Using EsterelHigh Level Synthesis Using Esterel
High Level Synthesis Using Esterel
 
Thesis M. Redaelli Slides EN
Thesis M. Redaelli Slides ENThesis M. Redaelli Slides EN
Thesis M. Redaelli Slides EN
 
Idiomatic Domain Driven Design
Idiomatic Domain Driven DesignIdiomatic Domain Driven Design
Idiomatic Domain Driven Design
 
Refactoring Smell Code
Refactoring Smell CodeRefactoring Smell Code
Refactoring Smell Code
 

Diagrammi di Sequenza

  • 1. DIAGRAMMI DI SEQUENZA 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  Introduzione  Partecipanti e messaggi  Concetti avanzati Ingegneria del software mod. A Riccardo Cardin 2
  • 3. SOMMARIO  Introduzione  Partecipanti e messaggi  Concetti avanzati Ingegneria del software mod. A Riccardo Cardin 3
  • 4. DIAGRAMMI DI SEQUENZA Ingegneria del software mod. A Riccardo Cardin 4
  • 5. DIAGRAMMI DI SEQUENZA  Specifica Tecnica, Definizione di Prodotto Ingegneria del software mod. A Riccardo Cardin 5 • Diagrammi Use case • Diagrammi di attività 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
  • 6. DIAGRAMMI DI SEQUENZA Definizione Descrivono la collaborazione di un gruppo di oggetti che devono implementare collettivamente un comportamento Ingegneria del software mod. A Riccardo Cardin 6 Partecipante Scorrere del tempo Linea della vita
  • 7. SOMMARIO  Introduzione  Partecipanti e messaggi  Concetti avanzati Ingegneria del software mod. A Riccardo Cardin 7
  • 8. PARTECIPANTI  Entità che detengono il flusso del caso d’uso  UML 1.x  Istanze di classi (oggetti)  UML 2.x  Concetto più lato  Eliminata la sottolineatura  Barra di attivazione  Indica in quale momento un partecipante è attivo  Opzionale, ma molto utile Ingegneria del software mod. A Riccardo Cardin 8 Classe : nome Barra di attivazione
  • 9. attribute = signal_name (args) : return_type args = <name> : <class> MESSAGGI (SEGNALI)  Dati e operazioni scambiati tra i partecipanti  Chiamata a metodi degli oggetti  Messaggio trovato  Primo messaggio che scaturisce dall’esterno Messaggio trovato Ingegneria del software mod. A Riccardo Cardin 9 Messaggi Chiamata interna Ritorno
  • 10. MESSAGGI (SEGNALI)  Esempio principale Ingegneria del software mod. A Riccardo Cardin 10 Esempio È richiesto lo sviluppo di un’applicazione che permetta la gestione di un semplice blog. In particolare devono essere disponibili almeno tutte le funzionalità base di un blog: deve essere possibile per un utente inserire un nuovo post e successivamente per gli altri utenti deve essere possibile commentarlo. Queste due operazioni devono essere disponibili unicamente agli utenti registrati all’interno del sistema. La registrazione avviene scegliendo una username e una password. La username deve essere univoca all’interno del sistema.
  • 11. MESSAGGI (SEGNALI)  Esempio 1 Ingegneria del software mod. A Riccardo Cardin 11
  • 12. MESSAGGI (SEGNALI)  Tipologie Ingegneria del software mod. A Riccardo Cardin 12
  • 13. MESSAGGI (SEGNALI)  Passaggio di dati  Nessuna tecnica di modellazione standard!!!  Metodo classico  Girini dei dati (data tadpoles) Ingegneria del software mod. A Riccardo Cardin 13 metodo(param) metodo param
  • 14. MESSAGGI (SEGNALI)  Messaggi sincroni  Il chiamante rimane in attesa della risposta  Messaggi asincroni  Il chiamante non rimane in attesa della risposta Ingegneria del software mod. A Riccardo Cardin 14 metodo(param) metodo(param)
  • 15. MESSAGGI (SEGNALI)  Creazione partecipanti  Comodo l’utilizzo della parola “new”  Distruzione Ingegneria del software mod. A Riccardo Cardin 15 Creazione (con parametro) Distruzione Auto distruzione
  • 16. MESSAGGI (SEGNALI)  Esempio 2 Ingegneria del software mod. A Riccardo Cardin 16
  • 17. SOMMARIO  Introduzione  Partecipanti e messaggi  Concetti avanzati Ingegneria del software mod. A Riccardo Cardin 17
  • 18. CICLI E CONDIZIONI  Frame di interazione (UML 2) Ingegneria del software mod. A Riccardo Cardin 18 Pseudocodice procedura spedizione foreach (elementoLinea) if (prodotto.valore > 10K) raccomandata.spedizione else normale.spedizione end if end for if (neccesitaConferma) messenger.conferma end procedura Frame interazione Guardia
  • 19. CICLI E CONDIZIONI  Frame di interazione Ingegneria del software mod. A Riccardo Cardin 19 Operatore Significato alt Frammenti multipli in alternativa; verrà eseguito solo quello per cui è verificata la condizione. opt Opzionale; il frammento viene eseguito solo se la condizione specificata è verificata. Equivalente a alt con solo una freccia. par Parallelo; ogni frammento è eseguito in parallelo. loop Ciclo; il frammento può essere eseguito più volte, la base dell’iterazione è indicata dalla guardia. region Regione critica; il frammento può essere eseguito da un solo thread alla volta. neg Negativo; il frammento mostra un’interazione non valida. ref Riferimento; si riferisce ad un’interazione definita in un altro diagramma sd Sequence diagram; utilizzato per racchiudere un intero diagramma di sequenza.
  • 20. MODELLAZIONE  Ottimi per modellare le collaborazioni fra oggetti  Non la logica di controllo  Inadeguatezza a modellare cicli e condizioni …  Meglio i diagrammi di attività  … o pseudocodice …  Controllo centralizzato VS Distribuito  Centralizzato  Unico partecipante che governa l’elaborazione  Distribuito  Suddivisione dei compiti dei partecipanti Ingegneria del software mod. A Riccardo Cardin 20
  • 21. MODELLAZIONE  Controllo centralizzato VS Distribuito Ingegneria del software mod. A Riccardo Cardin 21 Centralizzato Distribuito
  • 22. RIFERIMENTI OMG Homepage – www.omg.org  UML Homepage – www.uml.org  UML Distilled, Martin Fowler, 2004, Pearson (Addison Wesley)  Learning UML 2.0, Kim Hamilton, Russell Miles, O’Reilly, 2006 Ingegneria del software mod. A Riccardo Cardin 22