SlideShare una empresa de Scribd logo
1 de 23
DIAGRAMMI DI ATTIVITÀ 
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 
 Concetti base 
Ingegneria del software mod. A 
Riccardo Cardin 2
SOMMARIO 
 Introduzione 
 Concetti base 
Ingegneria del software mod. A 
Riccardo Cardin 3
DIAGRAMMI DI ATTIVITÀ 
Ingegneria del software mod. A 
Riccardo Cardin 4
DIAGRAMMI DI ATTIVITÀ 
 Analisi dei Requisiti, 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
Nodo 
iniziale 
Fork 
Fine 
dell’attività 
Join 
Decisione 
(branch) 
Guardia 
Merge 
Ingegneria del software mod. A Riccardo Cardin 6
DIAGRAMMI DI ATTIVITÀ 
Descrivono la logica procedurale, i processi di business 
Aiutano a descrivere gli aspetti dinamici dei casi d’uso 
Supportano l’elaborazione parallela 
Un’attività è un insieme di più azioni 
 Nodo iniziale 
 Da dove inizia l’esecuzione del processo 
 Fork 
 Elaborazione parallela 
Nessun ordine fra le attività di processi differenti 
 Join 
 Sincronizzazione fra i processi paralleli 
 Specifiche di Join 
Espressione booleana 
Ingegneria del software mod. A 
Riccardo Cardin 7 
[joinSpec= b1 and b2]
DIAGRAMMI DI ATTIVITÀ 
 Definizioni 
Un’attività è un insieme di più azioni 
 Decisione (branch) 
 Si può intraprendere solo uno dei percorsi 
 Nodo finale 
 Nodo di fine di flusso 
Token 
 Vengono prodotti e consumati 
 Il nodo iniziale genera token 
 Il nodo finale consuma token 
 Fork produce un token per ogni processo 
 Join consuma i token in ingresso e ne genera solo uno 
Ingegneria del software mod. A 
Riccardo Cardin 8
DIAGRAMMI DI ATTIVITÀ 
 Esempio principale 
Ingegneria del software mod. A 
Riccardo Cardin 9 
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.
DIAGRAMMI DI ATTIVITÀ 
 Esempio 1 
Ingegneria del software mod. A 
Riccardo Cardin 10
SOMMARIO 
 Introduzione 
 Concetti base 
Ingegneria del software mod. A 
Riccardo Cardin 11
Nome 
dell’attività 
Ingegneria del software mod. A 
Operazione di una classe 
Notazione UML 2.x 
AZIONI 
 Implementazione di una azione 
Sotto-attività 
Invia Conto 
(Ordine::InviaConto) 
Riccardo Cardin 12 
Activity 
frame
AZIONI 
Merge 
Ingegneria del software mod. A 
In UML 2.0 visto 
come un punto 
di join 
Riccardo Cardin 13
AZIONI 
 Pin e trasformazioni 
Passaggio di parametri tra azioni 
I Pin corrispondono ai box dei parametri 
 Nel business risorse prodotte e consumate 
Espressione di 
trasformazione 
Ingegneria del software mod. A 
Riccardo Cardin 14 
Cancella 
appuntamento 
Appuntamento 
Pin parametro 
Messaggio Paziente 
Notifica 
paziente 
«transformation» 
«transformation» appuntamento.paziente 
appuntamento.notifica
PARTIZIONI 
 Forniscono una responsabilità all’esecuzione 
delle azioni 
Swimlanes 
Ingegneria del software mod. A 
Responsabilità 
Riccardo Cardin 15 
Swimlanes
SEGNALI 
 Evento proveniente da un processo esterno 
Verificato da 
passaggio del 
tempo 
Ingegneria del software mod. A 
Riccardo Cardin 16 
Attende il 
verificarsi di un 
segnale 
Generazione 
segnali
SEGNALI 
 Eventi temporali 
Un evento con un arco entrante è un timeout 
Un evento senza archi entranti è un evento ripetuto 
Ingegneria del software mod. A 
Riccardo Cardin 17
DIAGRAMMI DI ATTIVITÀ 
 Esempio 2 
Ingegneria del software mod. A 
Riccardo Cardin 18 
Aspetta 15 min.
FLUSSI E ARCHI 
 Connessione fra due azioni 
Quando la relazione semplice non basta... 
Ingegneria del software mod. A 
Riccardo Cardin 19 
Facilita la lettura di 
diagrammi complessi 
Oggetto 
messaggio
REGIONI DI ESPANSIONE 
 Ripetizione delle attività su una collezione 
Ogni elemento della lista è un token 
Un solo token in uscita dalla regione 
Ingegneria del software mod. A 
Riccardo Cardin 20 
Scegli 
argomenti 
Scrivi articolo 
Pubblica 
Newsletter 
Rivedi articolo 
Regione di 
espansione 
Un token quando 
tutti gli input sono 
arrivati 
Lista 
argomenti
NODI DI TERMINAZIONE 
 Terminazione di un flusso 
Non termina l’intera l’attività, consuma un token 
Ingegneria del software mod. A 
Riccardo Cardin 21 
In una regione 
di espansione 
All’interno di 
una fork
MA NON È TUTTO QUI … 
 Uno dei diagrammi più ricchi 
Soprattutto da UML 2.x 
 Da utilizzare quando: 
Espressione di flussi paralleli 
Per descrivere casi d’uso o requisiti 
 Direttamente dal capitolato tecnico 
 Semplici da comprendere 
Ma ancora poco utilizzati 
Ingegneria del software mod. A 
Riccardo Cardin 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 23

Más contenido relacionado

La actualidad más candente

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
 
Design Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency InjectionDesign Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency InjectionRiccardo 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 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
 
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
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented ProgrammingAndrea Bozzoni
 
High Level Synthesis Using Esterel
High Level Synthesis Using EsterelHigh Level Synthesis Using Esterel
High Level Synthesis Using EsterelAlberto Minetti
 
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
 
Refactoring Smell Code
Refactoring Smell CodeRefactoring Smell Code
Refactoring Smell CodeJOULEHUB GMBH
 
Riuso Object Oriented
Riuso Object OrientedRiuso Object Oriented
Riuso Object OrientedStefano Fago
 

La actualidad más candente (12)

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
 
Design Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency InjectionDesign Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency Injection
 
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 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
 
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
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
High Level Synthesis Using Esterel
High Level Synthesis Using EsterelHigh Level Synthesis Using Esterel
High Level Synthesis Using Esterel
 
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...
 
Refactoring Smell Code
Refactoring Smell CodeRefactoring Smell Code
Refactoring Smell Code
 
MyJOrganizer presentazione
MyJOrganizer presentazioneMyJOrganizer presentazione
MyJOrganizer presentazione
 
Riuso Object Oriented
Riuso Object OrientedRiuso Object Oriented
Riuso Object Oriented
 

Destacado

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
 
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
 
Design Pattern Comportamentali
Design Pattern ComportamentaliDesign Pattern Comportamentali
Design Pattern ComportamentaliRiccardo 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
 
Baths
BathsBaths
Bathsmhr56
 
Odf report-destruction-of-independent-journalism-in-ukraine-ru 1
Odf report-destruction-of-independent-journalism-in-ukraine-ru 1Odf report-destruction-of-independent-journalism-in-ukraine-ru 1
Odf report-destruction-of-independent-journalism-in-ukraine-ru 1odfoundation
 
Financial report 2011 eng
Financial report 2011   engFinancial report 2011   eng
Financial report 2011 engodfoundation
 
VI sympozjum chemiczne
VI sympozjum chemiczneVI sympozjum chemiczne
VI sympozjum chemicznezso2pl
 

Destacado (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
 
Java- Concurrent programming - Synchronization (part 2)
Java- Concurrent programming - Synchronization (part 2)Java- Concurrent programming - Synchronization (part 2)
Java- Concurrent programming - Synchronization (part 2)
 
Design Pattern Comportamentali
Design Pattern ComportamentaliDesign Pattern Comportamentali
Design Pattern Comportamentali
 
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
 
Baths
BathsBaths
Baths
 
Odf report-destruction-of-independent-journalism-in-ukraine-ru 1
Odf report-destruction-of-independent-journalism-in-ukraine-ru 1Odf report-destruction-of-independent-journalism-in-ukraine-ru 1
Odf report-destruction-of-independent-journalism-in-ukraine-ru 1
 
5 Most Common Trade Spend Mistakes
5 Most Common Trade Spend Mistakes 5 Most Common Trade Spend Mistakes
5 Most Common Trade Spend Mistakes
 
Financial report 2011 eng
Financial report 2011   engFinancial report 2011   eng
Financial report 2011 eng
 
Sprawozdanie 2011
Sprawozdanie 2011Sprawozdanie 2011
Sprawozdanie 2011
 
VI sympozjum chemiczne
VI sympozjum chemiczneVI sympozjum chemiczne
VI sympozjum chemiczne
 

Similar a Diagrammi di Attività

Tesi Marco Ventura
Tesi Marco VenturaTesi Marco Ventura
Tesi Marco Venturaguest335584
 
Meetup ASP.NET Core Angular
Meetup ASP.NET Core AngularMeetup ASP.NET Core Angular
Meetup ASP.NET Core Angulardotnetcode
 
Iuavcamp presentazione
Iuavcamp presentazioneIuavcamp presentazione
Iuavcamp presentazione269054
 
REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...
REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...
REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...Enrico Paluzzano
 
Layered Expression Trees: una terza via (idiomatica) verso il DDD
Layered Expression Trees: una terza via (idiomatica) verso il DDDLayered Expression Trees: una terza via (idiomatica) verso il DDD
Layered Expression Trees: una terza via (idiomatica) verso il DDDAndrea Saltarello
 
Presentazione review it_20min
Presentazione review it_20minPresentazione review it_20min
Presentazione review it_20minFabrizio Straccia
 
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
 
Lo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTLo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTMatteo Gentile
 
Il programmatore e le sue api
Il programmatore e le sue apiIl programmatore e le sue api
Il programmatore e le sue apiBetter Software
 
Milano Meetups XIII - Official.pdf
Milano Meetups XIII - Official.pdfMilano Meetups XIII - Official.pdf
Milano Meetups XIII - Official.pdfFlorence Consulting
 
Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker dotnetcode
 
ASP.NET Core 2 e Docker
ASP.NET Core 2 e DockerASP.NET Core 2 e Docker
ASP.NET Core 2 e DockerLuca Congiu
 
Idiomatic Domain Driven Design
Idiomatic Domain Driven DesignIdiomatic Domain Driven Design
Idiomatic Domain Driven DesignAndrea Saltarello
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1dotnetcode
 
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
 
2° Ciclo Microsoft Fondazione CRUI 5° Sessione: Process Automation, implement...
2° Ciclo Microsoft Fondazione CRUI 5° Sessione: Process Automation, implement...2° Ciclo Microsoft Fondazione CRUI 5° Sessione: Process Automation, implement...
2° Ciclo Microsoft Fondazione CRUI 5° Sessione: Process Automation, implement...Jürgen Ambrosi
 

Similar a Diagrammi di Attività (20)

Introduzione all'ALM
Introduzione all'ALMIntroduzione all'ALM
Introduzione all'ALM
 
PALUZZANO PRELAUREA
PALUZZANO PRELAUREAPALUZZANO PRELAUREA
PALUZZANO PRELAUREA
 
Tesi Marco Ventura
Tesi Marco VenturaTesi Marco Ventura
Tesi Marco Ventura
 
Meetup ASP.NET Core Angular
Meetup ASP.NET Core AngularMeetup ASP.NET Core Angular
Meetup ASP.NET Core Angular
 
Iuavcamp presentazione
Iuavcamp presentazioneIuavcamp presentazione
Iuavcamp presentazione
 
REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...
REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...
REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...
 
Layered Expression Trees: una terza via (idiomatica) verso il DDD
Layered Expression Trees: una terza via (idiomatica) verso il DDDLayered Expression Trees: una terza via (idiomatica) verso il DDD
Layered Expression Trees: una terza via (idiomatica) verso il DDD
 
Presentazione review it_20min
Presentazione review it_20minPresentazione review it_20min
Presentazione review it_20min
 
Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)
 
Lo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTLo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICT
 
Il programmatore e le sue api
Il programmatore e le sue apiIl programmatore e le sue api
Il programmatore e le sue api
 
Spring 2.5
Spring 2.5Spring 2.5
Spring 2.5
 
Milano Meetups XIII - Official.pdf
Milano Meetups XIII - Official.pdfMilano Meetups XIII - Official.pdf
Milano Meetups XIII - Official.pdf
 
Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker
 
ASP.NET Core 2 e Docker
ASP.NET Core 2 e DockerASP.NET Core 2 e Docker
ASP.NET Core 2 e Docker
 
Idiomatic Domain Driven Design
Idiomatic Domain Driven DesignIdiomatic Domain Driven Design
Idiomatic Domain Driven Design
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
 
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
 
2° Ciclo Microsoft Fondazione CRUI 5° Sessione: Process Automation, implement...
2° Ciclo Microsoft Fondazione CRUI 5° Sessione: Process Automation, implement...2° Ciclo Microsoft Fondazione CRUI 5° Sessione: Process Automation, implement...
2° Ciclo Microsoft Fondazione CRUI 5° Sessione: Process Automation, implement...
 
3DD 1e Reconfig
3DD 1e Reconfig3DD 1e Reconfig
3DD 1e Reconfig
 

Diagrammi di Attività

  • 1. DIAGRAMMI DI ATTIVITÀ 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  Concetti base Ingegneria del software mod. A Riccardo Cardin 2
  • 3. SOMMARIO  Introduzione  Concetti base Ingegneria del software mod. A Riccardo Cardin 3
  • 4. DIAGRAMMI DI ATTIVITÀ Ingegneria del software mod. A Riccardo Cardin 4
  • 5. DIAGRAMMI DI ATTIVITÀ  Analisi dei Requisiti, 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. Nodo iniziale Fork Fine dell’attività Join Decisione (branch) Guardia Merge Ingegneria del software mod. A Riccardo Cardin 6
  • 7. DIAGRAMMI DI ATTIVITÀ Descrivono la logica procedurale, i processi di business Aiutano a descrivere gli aspetti dinamici dei casi d’uso Supportano l’elaborazione parallela Un’attività è un insieme di più azioni  Nodo iniziale  Da dove inizia l’esecuzione del processo  Fork  Elaborazione parallela Nessun ordine fra le attività di processi differenti  Join  Sincronizzazione fra i processi paralleli  Specifiche di Join Espressione booleana Ingegneria del software mod. A Riccardo Cardin 7 [joinSpec= b1 and b2]
  • 8. DIAGRAMMI DI ATTIVITÀ  Definizioni Un’attività è un insieme di più azioni  Decisione (branch)  Si può intraprendere solo uno dei percorsi  Nodo finale  Nodo di fine di flusso Token  Vengono prodotti e consumati  Il nodo iniziale genera token  Il nodo finale consuma token  Fork produce un token per ogni processo  Join consuma i token in ingresso e ne genera solo uno Ingegneria del software mod. A Riccardo Cardin 8
  • 9. DIAGRAMMI DI ATTIVITÀ  Esempio principale Ingegneria del software mod. A Riccardo Cardin 9 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.
  • 10. DIAGRAMMI DI ATTIVITÀ  Esempio 1 Ingegneria del software mod. A Riccardo Cardin 10
  • 11. SOMMARIO  Introduzione  Concetti base Ingegneria del software mod. A Riccardo Cardin 11
  • 12. Nome dell’attività Ingegneria del software mod. A Operazione di una classe Notazione UML 2.x AZIONI  Implementazione di una azione Sotto-attività Invia Conto (Ordine::InviaConto) Riccardo Cardin 12 Activity frame
  • 13. AZIONI Merge Ingegneria del software mod. A In UML 2.0 visto come un punto di join Riccardo Cardin 13
  • 14. AZIONI  Pin e trasformazioni Passaggio di parametri tra azioni I Pin corrispondono ai box dei parametri  Nel business risorse prodotte e consumate Espressione di trasformazione Ingegneria del software mod. A Riccardo Cardin 14 Cancella appuntamento Appuntamento Pin parametro Messaggio Paziente Notifica paziente «transformation» «transformation» appuntamento.paziente appuntamento.notifica
  • 15. PARTIZIONI  Forniscono una responsabilità all’esecuzione delle azioni Swimlanes Ingegneria del software mod. A Responsabilità Riccardo Cardin 15 Swimlanes
  • 16. SEGNALI  Evento proveniente da un processo esterno Verificato da passaggio del tempo Ingegneria del software mod. A Riccardo Cardin 16 Attende il verificarsi di un segnale Generazione segnali
  • 17. SEGNALI  Eventi temporali Un evento con un arco entrante è un timeout Un evento senza archi entranti è un evento ripetuto Ingegneria del software mod. A Riccardo Cardin 17
  • 18. DIAGRAMMI DI ATTIVITÀ  Esempio 2 Ingegneria del software mod. A Riccardo Cardin 18 Aspetta 15 min.
  • 19. FLUSSI E ARCHI  Connessione fra due azioni Quando la relazione semplice non basta... Ingegneria del software mod. A Riccardo Cardin 19 Facilita la lettura di diagrammi complessi Oggetto messaggio
  • 20. REGIONI DI ESPANSIONE  Ripetizione delle attività su una collezione Ogni elemento della lista è un token Un solo token in uscita dalla regione Ingegneria del software mod. A Riccardo Cardin 20 Scegli argomenti Scrivi articolo Pubblica Newsletter Rivedi articolo Regione di espansione Un token quando tutti gli input sono arrivati Lista argomenti
  • 21. NODI DI TERMINAZIONE  Terminazione di un flusso Non termina l’intera l’attività, consuma un token Ingegneria del software mod. A Riccardo Cardin 21 In una regione di espansione All’interno di una fork
  • 22. MA NON È TUTTO QUI …  Uno dei diagrammi più ricchi Soprattutto da UML 2.x  Da utilizzare quando: Espressione di flussi paralleli Per descrivere casi d’uso o requisiti  Direttamente dal capitolato tecnico  Semplici da comprendere Ma ancora poco utilizzati Ingegneria del software mod. A Riccardo Cardin 22
  • 23. 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 23