Ingegneria del Software (Ing.Informatica Nuovo Ord.) Canale M-Z / A.A Marco Cadoli

Documenti analoghi
UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Introduzione a UML Adriano Comai Introduzione a UML. Adriano Comai Pag. 1

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Introduzione a UML. obiettivo di questa introduzione

Introduzione a UML. Obiettivi. Unified Modeling Language. Gli autori di UML. Cos è UML. Cos è UML (cont.) Unified Modeling Language

Fondamenti di Informatica II 21. Standard UML

Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2006/2007

Modellazione discreta con UML

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato

Sistemi Informativi I Strumenti - UML

UML Unified Modeling Language

Unified Modeling Language - UML

UML I diagrammi implementativi

UML UNIFIED MODELING LANGUAGE

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009

Progettazione del Sofware

1. UML 2 ed il Processo Unificato

Introduzione ai casi d uso

LEZIONE 5 SEQUENCE DIAGRAM

Corso di Ingegneria del Software. Activity Diagram

Redazione e Presentazione di Progetti Informatici

Progettazione del Software

A. Ferrari Object Oriented Design

UML2. Concetti base. Andrea Polini. Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L31 Università di Camerino

Laboratorio di Sistemi Software UML per Design Patterns e Refactoring

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION

Proff. Toni Mancini & Monica Scannapieco Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza

I Diagrammi di Flusso OO

SOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base

Modulo 11. Interazioni Diagrammi di sequenza Diagrammi di collaborazione. Descrivere il comportamento di un sistema software

2. Finalità generali previste dalle indicazioni nazionali

Unified Modeling Language (UML)

SOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base

Unified Modeling Language (UML)

SOMMARIO DIAGRAMMI DI SEQUENZA

Antinisca Di Marco. Laboratorio di Ingegneria del Software a.a

Ingegneria del Software

UML. Unified Modeling Language (UML) Breve storia dell UML. Perchè usare la progettazione visuale? Ken Jacobs, Oracle Vice-president:

Ingegneria del Software

Ingegneria del Software UML - Unified Modeling Language

Programmazione ad Oggetti

Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa

Alcuni diagrammi. OCL (Object Constraint Language)

LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM

SOMMARIO. DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Concetti base.

Progettazione del Software

Progettazione del Software Analisi

SOMMARIO DIAGRAMMI DI ATTIVITÀ

Ingegneria del Software 8. Diagrammi di attività. Dipartimento di Informatica Università di Pisa A.A. 2014/15

SOMMARIO. DIAGRAMMI DI SEQUENZA INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Partecipanti e messaggi.

UML e i diagrammi di attività

2. Modellazione dei casi d uso

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Introduzione a UML. Iolanda Salinari

Class diagram COMPORTAMENTO associazioni

UML2. Progettazione della realizzazione dei casi d uso. Andrea Polini

A. Ferrari sistemi informativi e sistemi informatici

Introduzione a UML. Adriano Comai. versione 19 marzo Adriano Comai. Introduzione a UML Pag.

Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa

Sequence Diagram e Collaboration Diagram

Descrivono la collaborazione di un gruppo di oggetti per implementare collettivamente un comportamento

UML. Una introduzione incompleta. UML: Unified Modeling Language

Il PROCESSO UNIFICATO

Progettazione Logica e Modello Realizzativo

Activity Diagrams. Ing. Orazio Tomarchio

Introduzione ad UML. Perché modelliamo

Programmazione Orientata agli Oggetti in Linguaggio Java

INGEGNERIA DEL SOFTWARE

Processi iterativi. Marina Zanella - Ingegneria del Software RUP 1

Relazioni tra le classi e rappresentazione mediante diagrammi delle classi UML. Relazioni tra le classi Ereditarietà (is a)...

UniRoma2 - Ingegneria del Software 1 1

Le aree dell informatica

Implementation diagram Component diagram - mostrano la struttura del codice Deployment diagram - mostrano la struttura del sistema run-time

Informatizzare i processi nell'ottica del riutilizzo

PROGRAMMAZIONE DIDATTICA DI DIPARTIMENTO A.S. 2017/2018

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi D1_3 V3.

AUTOMA A STATI FINITI

PROGETTAZIONE DEL SOFTWARE

Activity Diagrams (lezione 3)

LEZIONE 2 I LINGUAGGI DI MODELLAZIONE && UML

Attività vs. Stato. Elementi di UML (4) Activity diagram. Activity diagram: notazione (1/3) Activity diagram: notazione (2/3)

Corso di Ingegneria del Software. Casi d uso

Ingegneria del Software (Ing.Informatica Nuovo Ord.) Canale M-Z / A.A Marco Cadoli

CLASS DIAGRAM PARTE 1

UML un linguaggio universale per la modellazione del software. Adriano Comai

Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria. Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento)

Introduzione alle Basi di Dati

Basi di dati Basi di dati per bioinformatica

La fase di Progettazione

Transcript:

Ingegneria del Software (Ing.Informatica Nuovo Ord.) Canale M-Z / A.A. 2005-06 Marco Cadoli Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica TERZA PARTE Analisi dei requisiti e definizione delle specifiche Sezione II: Complementi di UML Versione definitiva Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 1

TERZA PARTE Analisi e specifica dei requisiti I. Concetti fondamentali dell analisi e specifica dei requisiti II. Complementi di UML Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 2

II. Complementi di UML II.1. Ripasso di UML II.2. Diagramma delle attività II.3. Altri diagrammi Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 3

II.1. Ripasso di UML Come si è arrivati alla convergenza dei metodi Rassegna dei principali diagrammi di UML Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 4

La convergenza dei metodi anni 80 compaiono le prime metodologie OO 1989-1994 vengono presentati oltre 50 linguaggi di modellazione OO 1994 Grady Booch e Jim Rumbaugh iniziano il loro lavoro di unificazione: Booch+OMT 1995 viene presentato Unified Method 0.8, nello stesso anno si unisce Ivar Jacobson portando il suo OOSE 1995 inizia l unificazione degli approcci Booch, OMT e OOSE Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 5

La convergenza dei metodi (2) 1996 vengono rilasciate le versioni UML (Unified Modeling Language) 0.9 e 0.91. Durante lo stesso anno molti altri partner si uniscono a supportare UML 1997 viene rilasciata la versione UML 1.0 e OMG lo adotta come standard giugno 1999 - : 1.1, 1.2, 1.3, Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 6

La convergenza dei metodi (3) Publication of UML 1.3 June 99 UML 1.3 Industrialization Publication of UML 1.1 September 97 UML 1.1 Standardization Publication of UML 1.0, Jan 97 UML 1.0 public feedback June 96 & Oct 96 OOPSLA 95 UML 0.9 & 0.91 Unified Method 0.8 UML Partners Expertise Unification Booch 93 OMT - 2 Other methods Booch 91 OMT - 1 OOSE Fragmentation Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 7

Alcuni strumenti che usano UML Tool Composer ObjectTeam Paradigm Plus Rose Select System Architect Visio 2000 ArgoUML Azienda Texas Instruments Cayenne Platinum Rational Select Popkin Microsoft Open source Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 8

I principali diagrammi di UML Progettazione del SW 1 1,7,8: Diagrammi statici 2..6: Diagrammi comportamentali 1. Class Diagram 2. Use Case Diagram 3. State&Transition Diag. 4. Activity Diagram 5. Sequence Diagram 6. Collaboration Diagram 7. Component Diagram 8. Deployment Diagram Struttura statica Interazione con l utente Ciclo di vita di un oggetto Attività e sincronizzazione Interazione fra gruppi di oggetti Realizzazione di classi Risorse HW Design model Implementation/ Architectural model Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 9

Diagrammi di UML: class Illustra gli elementi statici di un modello assieme alle loro proprietà caratteristiche e alle relazioni tra di loro intercorrenti Studente Nome: stringa Cognome: stringa Matricola: int Età: int Esame Corso Nome: stringa Disciplina: stringa {complete} corso di laurea Professore Codice: stringa Età: int Voto: 18..30 Base Crediti: intero Specialistico Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 10

Diagrammi di UML: use case Uno Use Case: rappresenta una tipica interazione tra un attore (persona o sistema esterno) ed il sistema software da realizzare cattura una qualche funzione visibile dall utente la sua descrizione si ottiene attraverso l interazione tra analista e cliente in fase di analisi Studente chiede-iscrizione fattura Sistema di Fatturazione Iscrizione ad un corso Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 11

Diagrammi di UML: state & transition Illustra il comportamento dettagliato di un singolo oggetto come macchina a stati Esempio: diagramma degli stati e delle transizioni relativo ad una classe UML Caldaia. off spento on [acqua non gelata] inizio fine-accensione in-funzione off off temperatura desiderata temperatura inferiore caldo temperatura desiderata Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 12

II.2. Diagramma delle attività Differenze rispetto al diagramma degli stati e delle transizioni Esempi Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 13

Diagrammi di UML: state & activity State (o statechart o state and transition) diagram Illustra il comportamento dettagliato di un singolo oggetto come macchina a stati Prende spunto (con significative modifiche) dal modello classico di automa a stati finiti Activity Diagram Descrive processi paralleli Coinvolge più oggetti Prende spunto dal modello delle reti di Petri Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 14

Diagramma delle attività Un diagramma delle attività (activity diagram) può essere visto come un caso particolare di diagramma degli stati e delle transizioni per il quale tutti (o la maggior parte) degli stati sono activity state (stati in cui viene svolta un attività) Un diagramma delle attività è tipicamente associato ad una o più classi UML. In alcuni casi può essere associato ad un metodo Permette di concentrarsi sul flusso di controllo definito dalle elaborazioni interne (complementare a quello definito dagli eventi esterni) I diagrammi delle attività permettono di rappresentare processi paralleli e la loro sincronizzazione Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 15

Diagramma delle attività (2) Questi diagrammi sono utili per rappresentare comportamenti sequenziali, non determinismo, concorrenza, sistemi distribuiti, business workflow. Il diagramma delle attività deve essere utilizzato quando la maggioranza degli eventi da rappresentare sono la terminazione delle azioni. Viceversa, il diagramma degli stati e delle transizioni deve essere usato nei casi in cui accadono eventi asincroni. Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 16

Esempio Questo diagramma mostra le varie attività che devono essere svolte per bere una bevanda (che può essere caffè o cola) Se la bevanda è caffè devono essere svolte varie attività (di durata non nulla) che hanno bisogno di sincronizzazione e che in alcuni casi possono essere svolte in parallelo. Si noti la presenza di eventi (ad es. light goes out ), condizioni (ad es. [no coffee] ), azioni (ad es. coffeepot.turnon ) Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 17

Commenti sui diagrammi delle attività Dal punto di vista concettuale questi diagrammi sono simili ai diagrammi PERT. In meno, hanno l assenza delle durate per ciascuna attività In più, hanno la possibilità di specificare alcuni aspetti del controllo. Ad esempio, si possono inserire dei nodi di scelta (rombi), simili a quelli nei diagrammi di flusso della programmazione. In particolare, sono ammessi cicli. Per il resto, la sintassi degli elementi grafici (stato iniziale e finale, transizioni, condizioni, azioni) è identica a quella dei diagrammi degli stati e delle transizioni Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 18

Esercizio 1 Tracciare il diagramma delle attività a partire da questi requisiti. La costruzione e commercializzazione di un edificio per uffici inizia con la scelta del sito e prosegue con la commessa ad uno studio di ingegneria che presenta un progetto. Il progetto deve essere sottoposto alle autorità, che lo possono accettare o rifiutare. In quest ultimo caso, il progetto può essere ripresentato. Quando il progetto viene accettato, iniziano sia l opera sul sito sia la ricerca di un ente acquirente. L ente acquirente propone ulteriori (limitati) interventi, che vengono realizzati. Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 19

Responsabilità Oggetto responsabile per un azione L oggetto responsabile per l esecuzione di un azione può essere rappresentato visualizzando la sua linea del tempo di vita e posizionando le azioni di cui è responsabile lungo questa linea. Possono esserci differenti linee per differenti oggetti della stessa classe o di classi diverse. Queste linee prendono il nome di swimlanes (corsie di una vasca per il nuoto). Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 20

Esempio Questo esempio mostra tre swimlanes (cliente, ufficio vendite e magazzino) per i tre oggetti coinvolti nella vendita di un certo prodotto Questo tipo di modellazione viene spesso usato per la modellazione dei cosiddetti business workflow Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 21

Object Flow Flusso degli oggetti Per aumentare la chiarezza delle informazioni scambiate in un diagramma delle attività possono essere rappresentati gli oggetti che sono in ingresso o in uscita ad una azione Stato dell oggetto Quando uno stesso oggetto viene manipolato da più attività successive è possibile rappresentare tutti i collegamenti da e verso l oggetto Per maggiore chiarezza si visualizza lo stesso oggetto più volte in un diagramma, dove ogni immagine rappresenta l oggetto in un differente stato Lo stato dell oggetto può essere descritto in forma testuale Possono essere associati diagrammi degli stati e delle transizioni per gli oggetti evidenziati Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 22

Esempio Vengono evidenziati due oggetti: 1. o, di tipo Order, che può essere in tre stati: aperto evaso chiuso 2. f, di tipo Fattura, che può essere in due stati: non pagata pagata Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 23

II.3. Altri diagrammi Component diagram Deployment diagram Sequence diagram Collaboration diagram Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 24

Diagrammi di UML: component Un componente è una parte di un sistema che realizza un insieme di classi UML. A differenza di una classe UML, il componente è una parte: fisica: costituita da uno o più file (eseguibili, sorgenti, dati), e rimpiazzabile: è possibile sostituirla con un altra che abbia la stessa interfaccia. Il component diagram rappresenta un insieme di componenti del sistema e le loro mutue relazioni. cercafrodi.class Realizza: Frode, Direttiva, Ricerca Nome del componente Descrizione del componente Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 25

Diagrammi di UML: deployment Nodo: elemento fisico che esiste a tempo di esecuzione e rappresenta una risorsa computazionale, dotata di memoria e capacità di processamento dati. Un nodo rappresenta un dispositivo HW su cui può essere allocato (e fatto eseguire) uno o più componenti. Un diagramma di deployment (allocazione, dislocazione, spiegamento) contiene nodi e connessioni fra essi. Nome server <<Ethernet>> chiosco Componenti gestcatasto.exe guicatasto.exe Allocazione <<RS-232>> console Connessione Nodo Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 26

Implementation model L implementation model è la struttura delle parti usate per assemblare e realizzare il sistema fisico. Comprende, tipicamente, I diagrammi: Component, Deployment, Package (non considerato nel corso). Il deployment diagram può mostrare l allocazione effettiva dei componenti ai nodi. Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 27

Interaction Diagrams L interazione tra oggetti può essere presentata in due forme, ciascuna basata sulle stesse informazioni ma in grado di enfatizzare un particolare aspetto: ilsequence diagram, e ilcollaboration diagram. I sequence diagram e i collaboration diagram esprimono le stesse informazioni, ma le rappresentano in modo differente. I sequence diagram illustrano la sequenza esplicita di messaggi e sono più indicati per specifiche real-time e per scenari complessi. I collaboration diagram rappresentano le relazioni tra gli oggetti e sono più indicati per evidenziare tutti gli effetti su un dato oggetto e per la progettazione procedurale. Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 28

Diagrammi di UML: sequence & collaboration Sequence Diagram Rappresenta le interazioni tra gli oggetti disponendole in sequenza Mostra gli oggetti che partecipano all interazione e la sequenza dei messaggi scambiati Collaboration Diagram Illustra le interazioni nel sistema organizzandole attorno agli oggetti e ai legami tra questi oggetti 1: 2: 3: Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 29

Sequence Diagram Un sequence diagram rappresenta un interazione visualizzata rispetto a una sequenza temporale. Esso: mostra gli oggetti che partecipano all interazione in termini del loro tempo di vita e dei messaggi che essi si scambiano, non mostra le relazioni esistenti tra gli oggetti. Sono definiti alcuni formati (leggermente differenti tra loro) da usarsi per enfatizzare differenti aspetti (concorrenza, controllo, creazione e distruzione di oggetti, ricorsione, esecuzione condizionale). Vedremo due esempi, uno relativo ad una conversazione telefonica, ed un altro relativo all evasione di un ordine bibliotecario. Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 30

tempo Esempio 1 oggetti (l ordine è ininfluente) Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 31

Commenti sul sequence diagram L asse orizzontale è quello degli oggetti L asse verticale è quello del tempo Di conseguenza, la vita di un oggetto viene evidenziata dalla sua linea verticale Un oggetto può inviare o ricevere messaggi da altri oggetti È possibile dare un nome all oggetto nei suoi vari stati È possibile annotare il diagramma con vincoli temporali (ad esempio sui tempi di trasmissione e ricezione dei messaggi) Un oggetto può esistere per tutta la durata dell interazione, oppure può essere creato in qualche istante intermedio (quando riceve il messaggio <<create>>) Un oggetto può anche essere distrutto (quando riceve il messaggio <<destroy>>). La distruzione viene evidenziata graficamente con una grande X Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 32

Esempio 2 Cittadino Bibliotecario Catalogo Vita dell oggetto Tessera + Richiesta libro Tessera valida Richiesta libro Tempo Libro in prestito Libro disponibile Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 33

Collaboration diagram Un collaboration diagram rappresenta gli oggetti partecipanti a un interazione ed i loro collegamenti. Diversamente da un sequence diagram, un collaboration diagram rappresenta le relazioni tra gli oggetti. D altra parte, un collaboration diagram non tratta il tempo come una dimensione separata, di conseguenza la sequenza dei messaggi deve essere determinata utilizzando i numeri di sequenza. Un collaboration diagram può essere utilizzato per specificare l implementazione dei costrutti di progetto, ma a questo scopo sono tipicamente necessarie ulteriori informazioni Vedremo l esempio precedente (relativo all evasione di un ordine bibliotecario) nel formato del collaboration diagram Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 34

Collaboration diagram 1: tessera + richiesta libro 2: tessera valida Cittadino Bibliotecario Catalogo 5: libro in prestito 3: richiesta libro 4: libro disponibile Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 35

Soluzioni degli esercizi Terza parte, sezione II Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 36

Soluzione esercizio 1 Scelta sito Commessa Progettazione Valutazione [non accettato] [else] Continua... Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 37

Soluzione esercizio 1 (2) Valutazione [non accettato] [else] Opera su sito Ricerca acquirente Finalizzazione Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 38