Diagrammi di interazione

Documenti analoghi
Il problema. ! Si chiede di sviluppare un applicazione per la

Diagrammi di Interazione

Informatica Industriale Modello funzionale Casi d uso

Sequence Diagram e Collaboration Diagram

Traccia di soluzione dell esercizio del 25/1/2005

C A T A L O G O. Catalogo del Sistema Bibliotecario Padovano. Gruppo Lavoro per il Coordinamento dei Corsi all Utenza

Liberare la memoria allocata dinamicamente.

PRENOTAZIONI APPELLI ON LINE tramite SOL-SegreteriaOnLine

Esercitazione di Basi di Dati

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA

Concetti di base di ingegneria del software

Informatica Industriale Modello funzionale: Informazione Progettazione concettuale

Laboratorio di Basi di Dati Esercizio 8.1

Analisi e progettazione del software AbcBid studio di caso 6 dicembre 2007 REQUISITI ITERAZIONE 1

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Class Discovery E.

Progettaz. e sviluppo Data Base

Gestione del workflow

Promemoria delle principali funzioni di Gestione utenti e prestiti in SOL

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Programmi e Oggetti Software

I.1 DIVISIONE PROCESSI FORMATIVI SCUOLE Specifiche Direzione Scuole e Formazione professionale

Sebina OpenLibrary OPAC

Corso di Informatica

Servizio Tirocini. Facoltà di Psicologia. A cura dell Ufficio Tirocini

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Alternanza scuola lavoro: che cosa significa

LA COMUNITA CHE GUARISCE

Strumenti di modellazione. Gabriella Trucco

Informatica (Basi di Dati)

Procedura SMS. Manuale Utente

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Progettazione di Basi di Dati

Organizzazione degli archivi

Guida all uso del catalogo e all'area personale

Modellazione dei dati in UML

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Guida Compilazione Piani di Studio on-line

Soluzione dell esercizio del 2 Febbraio 2004

Reti di Telecomunicazione Lezione 8

Università Politecnica delle Marche. Progetto Didattico

Esercizi Capitolo 6 - Alberi binari di ricerca

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Caso d Uso: AcquistoAbbonamentoStudentiSettimanaleGiornaliero Breve descrizione. Procedura per la registrazione al servizio CicloPi.

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini

UML Unified Modeling Language

Servizi bibliotecari di Ateneo: Carta dei servizi

Corso di Informatica

OPAC di Ateneo: servizi on-line per utenti registrati

Facilitare, per quanto possibile, i contatti fra lo studente e la scuola italiana.

Protezione. Protezione. Protezione. Obiettivi della protezione

On-line Public Access Catalogue. informaopac. InFormare sull uso del catalogo online delle biblioteche OPAC. La ricerca bibliografica I servizi online

Gestione dei servizi all utenza. 3. Autorizzazioni

A T I C _W E B G U I D A AL L A N A V I G A Z I O N E S U L S I T O D E L G R U P P O. Rev. 2.1

Progetto NoiPA per la gestione giuridico- economica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

Il diagramma dei casi d uso

Ministero dell Istruzione, dell Università e della Ricerca

object oriented analysis

LAUREE TRIENNALI DIPARTIMENTO DI ECONOMIA E DIPARTIMENTO DI STUDI AZIENDALI CORSI INTENSIVI DI RECUPERO

Breve guida. all uso delle biblioteche UniPa SBA. Scienze umane e patrimonio culturale. Medicina e chirurgia

Sistemi Informativi. Introduzione. Processi fisici. Tipologie di processi. Processi informativi. Processi aziendali

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Programmazione a Oggetti Modulo B

Laboratorio di Basi di Dati

Basi di dati 9 febbraio 2010 Compito A

MESSAGGISTICA ALL UTENTE. Manuale per l operatore

Gestione dei documenti e delle registrazioni Rev. 00 del

Breve guida alla ricerca bibliografica on-line. A cura di Tilde Tocci

Regolamento del servizio di tutorato. (Decreto Rettorale n.35 del 12 dicembre 2008)

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Istruzioni per l uso

CARTA DEI SERVIZI. Premessa:

INSERIMENTO DATI BASILARI

MODELLO E/R. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Introduzione ai tipi di dato astratti: applicazione alle liste

Questionario di Customer Satisfaction

Dal sito del Polo Qualità di Napoli si può accedere a due piattaforme:

Database. Si ringrazia Marco Bertini per le slides

OFFERTE DI TU/STAGE E MODALITA DI ACCESSO Consultando il sito si potranno avere tutte le informazioni.

ALGEBRA RELAZIONALE RIEPILOGO

Progettazione del Software A.A.2008/09

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

I WEBQUEST SCIENZE DELLA FORMAZIONE PRIMARIA UNIVERSITÀ DEGLI STUDI DI PALERMO. Palermo 9 novembre 2011

Valutazione della Didattica On-Line

GUIDA STUDENTI ALLA PRENOTAZIONE DEGLI APPELLI D ESAME ONLINE

Progetto interregionale ICAR Interoperabilità e Cooperazione Applicativa tra le Regioni. <Task AP3>

REGOLAMENTO BIBLIOTECHE

Gestione appelli d esame

DOCUMENTO DI VALUTAZIONE DEI RISCHI

REGOLAMENTO DELLA COMMISSIONE MENSA IC8 (Approvato dal Consiglio d Istituto nella seduta del 30/06/2015)

+ Il Questionario Scuola

QUESTIONARIO SULLA SODDISFAZIONE DEGLI UTENTI DELLA BIBLIOTECA DELLA FACOLTÀ INGEGNERIA DELL UNIVERSITÀ DEGLI STUDI DI GENOVA

La piattaforma e-learning Informazioni e strumenti principali

Indice. Prefazione alla seconda edizione italiana XVII. Introduzione. Parte 1 Introduzione all UML e all UP 1

Licenza per sito Manuale dell amministratore

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Transcript:

Diagrammi di interazione! Sono usati per portare a compimento un caso d uso, un operazione o un alta componente comportamentale.! Mostrano la seguenza di eventi (messaggi) tra gli oggetti durante la collaborazione.! Sono usati negli stadi più avanzati dell analisi dei requisiti e di progettazione, quando il modello delle classi di base è noto.

Tipologie! Diagrammi di collaborazione Enfatizzano le relazioni (tra oggetti) lungo cui i messaggi sono scambiati. Di solito sono più utili nella fase di progettazione.! Diagrammi di sequenza Enfatizzano lo scambio di messaggi tra oggetti organizzato in sequenze temporale. Di solito sono più utili nella fase di analisi.! Sono interscambiabili.

Diagrammi di collaborazione (I)! Una collaborazione è rappresentata da un insieme di oggetti (che collaborano per portare a termine un compito) e di legami tra essi.! Un interazione è un insieme di messaggi che caratterizza un qualche comportamento.! Una collaborazione senza nessuna interazione (messaggio) può essere vista come un istanza del diagramma delle classi (oggetti, attori, legami).

Diagrammi di collaborazione (II)! Oggetti nomeoggetto: nomeclasse nomeoggetto -> suggerisce il ruolo dell oggetto nel diagramma. : nome Classe -> rappresenta una generica istanza della classe.! Legami Sono rappresentati come le associazioni nel diagramma delle classi. Sono istanze delle associazioni.! Attori Corrispondono agli attori rappresenati nei casi d uso. L attore che inizia un caso d uso o un diagramma d interazione si chiama iniziatore.

Messaggi (I)! La struttura di un messaggio corrisponde alla segnatura del metodo dell oggetto a cui il messaggio viene indirizzato.! Per inviare un messaggio l oggetto mittente deve fornire: L oid dell oggetto destinatario; Il nome dell operazione (metodo) nell oggetto destinatario; Gli argomenti attuali d ingresso (in) e di ritorno (out) o sia d ingresso che di ritorno (inout).

Messaggi (II)! L oid dell oggetto destinatario: Può essere contenuto in un attributo del mittente. Potrebbe corrispondere al nome dell oggetto destinatario sul diagramma: nomeoggetto.nomemessaggio(in x, out y)

Messaggi (III)! La specifica di messaggi conduce alla scoperta di operazioni.! La dipendenza tra i messaggi e le operazioni: ogni messaggio invoca l operazione del oggetto target che ha lo stesso nome del messaggio.

Tipi di messaggi! Messaggi inviati ad un oggetto classe: Costruttori/destruttori (messaggi per creare/distruggere oggetti istanza).! Messaggi inviati sia ad un oggetto classe sia ad un oggetto istanza: Di letttura (messaggi interogativi, orientati al presente); Di aggiornamento (messaggi informativi, orientati al passato); Di collaborazione (messaggi imperativi, orientati al futuro).

Messaggi iterativi! Un messaggio iterattivo è inviato ripetutamente a più oggetti di una classe.! Hanno una marca d iterazione: *.! Operano su collezioni (vettori, liste, ecc.).

Messaggi self! Specificano un invocazione locale (un metodo chiama un altro metodo nello stesso oggetto).! Oppure l oid del mittente è inviato al destinatario (di solito nei messaggi asincroni).

Messaggi asincroni! In un messaggio asincrono, l oggetto mittente non deve attendere che il destinatario finisca il proprio lavoro prima di continuare l esecuzione.! Sono utilizzati per l esecuzione concorrente di diverse operazioni.! Sono rappresentati con una mezza freccia.

Diagrammi di sequenza! Gli oggetti sono disposti lungo la dimensione orizzontale.! La sequenza dei messaggi è mostrata nella dimensione verticale.! Una linea verticale = linea di vita di un oggetto. Linea trateggiata oggetto non attivo (non in vita). Rettangolo stretto oggetto attivo (in vita).! Una freccia un messaggio da un oggetto mittente (sender) ad un oggetto destinatario (target).

Il sistema bibliotecario! Diagramma dei casi d uso: universitario (I) presta rivista UtenteMotoreRicerc a cerca libro/rivista PrestatarioRiviste ritorna rivista prest a copia libro ritorna copia libro PrestatarioLibri ResponsabileBibliot ecario aggiorna catalogo prenota libro estende prestito

Il sistema bibliotecario! Diagramma delle classi: universitario (II) Utente cerca Libro prenota è una copia 1 cerca MembroBiblioteca presta/ritorna/estende/scade 0..1 0..* 1.. * CopiaLibro Rivista presta/ritorna/scade PersonaleBiblioteca aggiungi/rimouvi 0..* 0..1 aggiungi/rimouvi

Il sistema bibliotecario! Diagramma delle classi: universitario (III) Utent e cerca cerca(s : String) : CopiaLibro [ ] prenot a Libro isbn : String titolo : String autore : String nocopie : Integer prenotato : Boolean getnocopiedisponibili() : Integer setnocopiedisponibili(n : Integer) getprenotato() : Boolean setprenotato(p : Boolean) è una copia 1 1.. * cerc a id : String nolibri : Integer MembroBiblioteca pres tacopialibro(libro : CopiaLibro) : Boolean ritornacopialibro(libro : CopiaLibro) : Boolean estendepres tito(libro : CopiaLibro) : Boolean prenota(libro : Libro) : Boolean getnolibri() : Boolean setnolibri(n : Integer) presta/ritorna/estende/scade 0..1 0..* CopiaLibro disponibile : Boolean dal : Date chi : MembroBiblioteca prest a(m : Mem brobibliotec a) : Boolean ritorna() : Boolean estende() : Boolean getdisponibile() : Boolean setdisponibile(b : Boolean) getdal() : Dat e setdal(d : Date) getchi() : M em brobiblioteca setchi(m : Mem brobiblioteca) Rivista disponibile : Boolean presta/ritorna/sc ade 0..* 0..1 PersonaleBiblioteca noriviste : Integer prestarivista(rivista) : Boolean ritornarivista(rivista : Rivista) : Boolean aggiungi/rimouvi aggiungi/ rimouvi

Presta copia libro: diagramma di collaborazione 4: setdisponibile(falso) 2: getnolibri( ) 5: setchi(m) 8: setnolibri(getnolibri()+1) 6: setdal(date) 3: presta(m) 1: prestacopialibro(c) unmembro : MembroBiblioteca copia : CopiaLibro 7: setnocopiedisponibili(getnocopiedisponibili()-1) libro : Libro : PrestatarioLibri

Presta copia libro: diagramma di sequenza : PrestatarioLibri : Mem brobiblioteca : CopiaLibro : Libro prestacopialibro(c) getnolibri( ) presta(m) s etdisponibile(false) setchi(m) setdal(date) setnocopiedisponibili(getnocopiedis ponibili()-1) setnolibri(getnolibri()+1)

Estende prestito: diagramma di collaborazione 1: estendeprestito(c) unmembro : MembroBiblioteca 2: estende( ) 3: getprenotato( ) copialibro : CopiaLibro libro : Libro : PrestatarioLibri

Estende prestito: diagramma di sequenza : PrestatarioLibri : MembroBiblioteca : CopiaLibro : Libro estendeprestito(c) estende( ) getprenotato( )

Il sistema di gestione delle lauree specialistiche (I)! Diagramma dei casi d uso: prepara programma corso Studente Laurea Specialistica iscrizione laurea specialistica insegna corso Docente Generico Studente Laurea Breve segue corso laurea specialistica consulta lista studenti Personale Generico consulta lista corsi Utente Generico Tutore Generico aiut a student e

Il sistema di gestione delle lauree specialistiche (II)! Diagramma delle classi: UtenteGenerico consulta lista studenti Personale Tutore 1 Docente 1 consulta lista corsi laurea specialistica aiuta 0..* Studente segue 1..* 1..* prepara programma/insegna 0..* Corso 6.. * compos to da StudenteLBreve Student els pecialistica iscrizione 0..* 1 1.. * LaureaSpecialistic a

Il sistema di gestione delle lauree specialistiche (III)! Diagramma delle classi: UtenteGenerico getlistacorsi() : Cors o [] consulta lista studenti id : Integer nome : String cognome : String indirizzo : String Personale getlistastudenti(ls : LaureaSpecialistica) : Studente [] Tutore liststudenti : Studente [] aggiungistudente(s : Studente) : Boolean rimuovistudente(s : Studente) : Boolean aiutastudente(s : Studente) aiuta 1 Docente listacorsi : Corso [ ] preparacorso(c : Corso) : Boolean aggiungicorso(c : Corso) : Boolean rimuovicorso(c : Corso) : Boolean 1 prepara programma/insegna consulta lista corsi laurea specialistica matricola : Integer nome : String cognome : String indirizzo : String corsi : Corso [] 0.. * Studente iscrizionecorso(c : Corso) : Boolean de-iscrizionecorso(c : Corso) : Boolean getmatricola() : Integer getnomecognome() : String segue 1..* 1..* Corso 0..* nome : String ore : Integer docente : Docente listastudenti : Studente [] programma : String aggiungistudente(s : Studente) : Boolean rimuovistudente(s : Studente) : Boolean getlistastudenti() : Studente [] 6..* composto da 1..* StudenteLBreve iscrizionelb() : Boolean StudenteLSpecialistica iscrizionels() : Boolean is crizione 0..* 1 LaureaSpecialistica nome : String listacorsi : Corso [ ] listastudenti : Studente [] aggiungicorso(c : Corso) : Boolean rimuovicorso(c : Corso) : Boolean aggiungistudente(s : Studente) : Boolean rimuovistudente(s : Studente) : Boolean getlistacorsi() : Corso [] getlistastudenti() : Studente []

Iscrizione laurea specialistica: diagramma di collaborazione 3: aggiungist udent e(t his) 4: aggiungist udent e(t his) corso1 : Corso 5: aggiungistudente(thi s) corso2 : Corso 1: iscrizionels( ) : Studente LSpeciali sti ca : Studente Laurea Specialistica 2: aggiungistudente(this) corso3 : Corso : LaureaS pecialist ica

Iscrizione laurea specialistica: diagramma di sequenza : Studente Laurea Speciali stica : StudenteLSpecialistica : LaureaSpecialistica : Cors o iscrizionels( ) aggiungistudente(this) * aggiungistudente(this)

Consulta lista studenti: diagramma di collaborazione 1: getnomecognome( ) : StudenteLBreve : Personale Generico : StudenteLSpecialistica 2: getnom ecognom e( )

Consulta lista studenti: diagramma di sequenza : Personale Generico : StudenteLB reve : St udent els pecialist ic a * getnomecognom e( ) * getnomecognome( )