Introduzione. Modellazione visuale. Perché UML. cont.) Perché UML (cont( Contributi principali



Documenti analoghi
Unified Modeling Language

Ingegneria del Software I. UML - Use Case Diagram

UniRoma2 - Ingegneria del Software 1 1

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

UML - Unified Modeling Language

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Sequence Diagram e Collaboration Diagram

Modellazione dei dati in UML

Basi di Dati. Programmazione e gestione di sistemi telematici

Sistemi Informativi I Caso di studio con applicazione di UML

Strumenti di modellazione. Gabriella Trucco

PROGETTAZIONE DEL SOFTWARE

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

Esempio 1: CarMatch. Direzione centrale Sedi centrali per ogni paese Concessionarie locali di franchising UML 2

Paradigma object-oriented

Informatica Industriale Modello funzionale Casi d uso

Gestione Automatizzata di una Lista Nozze

Gestione del workflow

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

Object Oriented Programming

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

Ingegneria del Software UML - Unified Modeling Language

INI0506. Progetti InI0506 DISP-URM2 UML - Introduzione 1

UML e i casi d uso. Dr. Andrea Baruzzo. S i n t a s s i e L i n e e G u i d a. andrea.baruzzo@dimi.uniud.it

object oriented analysis

Esempio ordini 08UMLEX1.1

Progettazione del Software A.A.2008/09

Elementi di UML (2) Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico

Ingegneria del Software T

Programmi e Oggetti Software

La specifica del problema

Modellazione di sistema

Il diagramma dei casi d uso

TECNICHE DI SIMULAZIONE

Soluzione dell esercizio del 2 Febbraio 2004

Concetti di base di ingegneria del software

Progettazione di Basi di Dati

Una metodologia per la specifica di software basato su componenti

Programmazione A.A Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII)

Activity Diagrams. Ing. Orazio Tomarchio

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

Diagrammi di Interazione

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

CitySoftware PROTOCOLLO. Info-Mark srl

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Creare diagrammi di Gantt con Visio 2003

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

Esercitazione su UML Ingegneria del Software - San Pietro

Database. Si ringrazia Marco Bertini per le slides

Rational Unified Process Introduzione

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

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Gestione dei servizi all utenza. 3. Autorizzazioni

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

UML. Analisi Modellazione e altro. Macchine a stati, Diagrammi di attività.. UML aa 2006/7 G.Bucci 1

Organizzazione aziendale Lezione 16 BPMN. Ing. Marco Greco Tel Stanza 1S-28

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

DownUp gestisce la variante. DownUp è un programma rivoluzionario nel settore della cantieristica, per le varianti in corso d opera.

Informatica per le discipline umanistiche 2 lezione 14

Cos è l ISC (Indicatore Sintetico del Conto Corrente) e cosa sono i Profili tipo d utilizzo

Un modello è ragionevole quando contiene queste tre caratteristiche.

Casi d uso (use cases)

Elementi di UML (7): Diagrammi dei componenti e di deployment

Università Politecnica delle Marche. Progetto Didattico

Progettazione del Software. Emiliano Casalicchio. Dipartimento di Informatica e Sistemistica SAPIENZA Università di Roma Sede di Rieti

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

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

Diagrammi di Flusso dei Dati

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Progettazione di un Database

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

Introduzione ai tipi di dato astratti: applicazione alle liste

Informatica per le discipline umanistiche 2 lezione 10

La Metodologia adottata nel Corso

Policy sintetica di Banca delle Marche S.p.A. per la gestione dei conflitti d interesse

Dalla progettazione concettuale alla modellazione di dominio

Sequenza alternativa degli eventi: Variazione di prezzo superiore al 20% per almeno un articolo.

Linguaggi di Programmazione I Lezione 5

BASI DI DATI - : I modelli di database

Alessandra Raffaetà. Basi di Dati

Raggruppamenti Conti Movimenti

DN-SEV Sistema Esperto per la Validazione

Cosa è un foglio elettronico

INSERIMENTO DATI BASILARI

Strutturazione logica dei dati: i file

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

UML e (R)UP (an overview)

Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane. e per le Informazioni bibliografiche. Manuali utente per SBN WEB. Versione 1.

Le Basi di Dati. Le Basi di Dati

Fondamenti di Informatica. Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI!

Generazione Automatica di Asserzioni da Modelli di Specifica

Implementing a new ADT based on the HL7 version 3 RIM. Esempio

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

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

Organizzazione aziendale Lezione 22 BPMN. Ing. Marco Greco Tel Stanza 1S-28

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Corso di Laurea in Informatica, A.A

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

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Breve Guida per l organizzazione di eventi da parte di Associazioni e Gruppi studenteschi riconosciuti in Bocconi Febbraio 2012

Transcript:

Unified Modeling Language Introduzione Davide Frey Corso di Ingegneria del Software Tratto dal materiale di Luciano aresi Politecnico di Milano Modellazione visuale Perché UML richiesta ordine consegna usiness Process Un modello cattura le parti essenziali di un sistema Dr. James Rumbaugh Computer System UML è il linguaggio visuale standard (OMG) per definire, progettare, realizzare e documentare i sistemi software ad oggetti UML riunisce molte proposte esistenti (ooch, Rumbough e Jacobson) UML copre l intero processo di produzione UML è sponsorizzato dalle maggiori industrie produttrici di software 3 4 Perché UML (cont( cont.) Contributi principali UML riunisce aspetti dell ingegneria del software, delle basi di dati e della progettazione di sistemi UML è indipendente da qualsiasi linguaggio di programmazione UML è utilizzabile in domini applicativi diversi e per progetti di diverse dimensioni UML è estendibile per modellare meglio le diverse realtà ooch ooch method Rumbaugh OMT Meyer efore and after conditions Jacobson OOSE Harel Statecharts Shaler - Mellor Object lifecycles Gamma, et al Frameworks and patterns, HP Fusion Operation descriptions and message numbering Odell Classification Embley Singleton classes and high-level view Wirfs-rock Responsibilities 5 6 1

Model-based 4+1 Views I modelli rappresentano il linguaggio dei progettisti I modelli rappresentano il sistema da costruire o costruito I modelli sono un veicolo di comunicazione I modelli descrivono in modo visuale il sistema da costruire I modelli sono uno strumento per gestire la complessità I modelli consentono di analizzare caratteristiche particolari del sistema Design View Process View Logical Use Case View Implementation View Deployment View Physical P. Kruchten, The 4+1 View Model of Software rchitecture. IEEE Software 12 (6), pages 42-50, november 1995 7 8 Diagrammi UML Registrazione corsi Viste statiche Use Case Diagrams Class Diagrams Object Diagrams Component Diagrams Deployment Diagrams Viste dinamiche Sequence Diagrams Collaboration Diagrams Statechart Diagrams ctivity Diagrams ll inizio dell anno accademico, l ufficio amministrativo dell università fornisce agli studenti la lista di corsi disponibili, attraverso un sistema di registrazione. Il sistema deve consentire agli studenti di selezionare quattro corsi fra quelli disponibili. In aggiunta ogni studente deve indicare due alternative. Nessun corso può avere più di 10 studenti. Corsi con meno di 3 studenti vengono cancellati automaticamente. 9 10 Registrazione corsi (cont( cont.) I professori devono poter accedere al sistema per indicare i corsi in cui vorrebbero insegnare e per vedere gli studenti iscritti ai loro corsi. Il processo di registrazione dura 3 giorni. Il primo giorno è riservato agli studenti del primo anno. Il secondo giorno è riservato agli altri studenti. Durante il terzo giorno si risolvono eventuali conflitti. Finito il processo di registrazione, le informazioni relative ad un studente sono inviate all ufficio contabile per determinare le tasse da pagare. Use case diagram 11 2

Requisiti Il primo passo di qualsiasi processo di sviluppo è la definizione dei requisiti Definizione del usiness Model Solitamente informale e in linguaggio naturale Jacobson (OOSE) propone una notazione particolare che è confluita in UML Use Case Diagram Use case Definiscono il comportamento del sistema Le funzionalità (processi) principali Come il sistema agisce e reagisce Descrivono Il sistema L ambiente Le relazioni fra sistema e ambiente Diversi livelli di dettaglio 13 14 Elementi grafici Relazioni principali ctor: è qualcuno (utente) o qualcosa (sistemi esterni - hardware) che: Controlla le funzionalità Fornisce input o riceve output dal sistema Use Case: è un unità funzionale parte del sistema <<extend>> <<communicate>> ssociations identificano relazioni semplici tra attori e casi Include fattorizza proprietà comuni. È simile all innesto di procedure alla Pascal. includes Communicate indica scambio dati tra due use case Extend identifica comportamenti simili (varianti).. può essere visto come una variante di Generalization si applica sia ad attori che a use case.. eredita il comportamento di. può essere sostituito ad ogni occorrenza di 15 16 (Registrazione corsi) Contesto (Ufficio postale) mministrazione Studente Cambio organizzazione corso Scelta corsi Richiesta studenti registrati Cambio corsi Selezione corso Richiesta corsi Gestione studenti Professore Postino Cliente Distr. posta Sportello Il primo Use Case diagram definisce il contesto del modello Scelte diverse possono imporre ttori diversi Use case diversi Gestione corsi Gestione professori Impiegato rchivio globale 17 18 3

Extend/generalization Generalization indica che uno use case è simile a un altro ma è più specifico. Si descrive lo use case più specifico per differenze rispetto a quello più generale Extend e generalization sono leggermente differenti Esempi Pagamento prodotto e pagamento con carta di credito Stampa catalogo prodotti e pubblicazione catalogo su Internet Calcola prezzo prodotto e calcola prezzo scontato Include Include fattorizza attività ricorrenti e condivise nalogie con Chiamata a sottoprocedura in un linguaggio di programmazione Scomposizione gerarchica in DFD (Si perde la condivisione) Esempi La richiesta del numero di CC per ogni operazione bancaria La consultazione del catalogo di una biblioteca Le funzioni matematiche più complesse (sin, cos, log, ecc.) 19 20 Use case (Processo) Utente Gestione prestito Ordine <<extend>> Impiegato Ordine Internet Gestione pagamento Gestione disponibilità Gestione dati Il processo di definizione degli use case è iterativo Si inizia identificando il comportamento più semplici Si descrivono i comportamenti alternativi e più complessi Quando smettere? Un buon livello di dettaglio facilità tutte le attività successive Troppi dettagli Complicherebbero inutilmente la descrizione Introdurrebbero prematuramente scelte progettuali Precluderebbero la visione d insieme 21 22 Documentazione Oltre l analisi dei requisiti Per ogni use case: Titolo: : Computo tasse utori: Pluto e Topolino Descrizione: : Quando le iscrizioni di uno studente sono state accettate si inviano le informazioni all ufficio contabile ttori: : Ufficio contabile Pre-condizioni condizioni: : Studente registrato Post-condizioni condizioni: : Non identificate Scenari:... Convalida del sistema Gli use case possono essere utilizzati per ricavare i dati di test con cui convalidare il sistema Ogni use case rappresenta una funzionalità che andrebbe verificata Gestione del progetto Gli use case propongono una nuova unità di misura Gli use case potrebbero essere utili per Organizzare il progetto Stimare la complessità (sorta di function point) 23 24 4

Esercizio Scenari Si definisca un semplice Use Case Diagram per modellare il sistema informativo di una impresa edile. Il sistema deve gestire gli operai, i cantieri, il parco mezzi e i clienti 25 Uno scenario è un istanza di uno use case È una esecuzione particolare dello use case Rappresenta il comportamento (le azioni e gli eventi) del sistema nel caso particolare considerato Gli scenari definiscono requisiti di più basso livello rispetto agli use case Gli scenari sono solitamente definiti in linguaggio naturale UML propone una notazione particolare Interaction Diagram 26 Scenari (cont( cont.) (Selezione corsi) Ogni use case dovrebbe essere corredato da un insieme di scenari Scenari principali (più possibile) Tutto funziona correttamente Scenari secondari (pochi e significativi) Eccezioni (eventuali problemi o malfunzionamenti) Quanti scenari si devono definire? Servono tanti scenari quanti sono quelli necessari per capire il corretto funzionamento del sistema e le eccezioni che si ritengono significative in durante l analisi Pippo sceglie i corsi: informatica, fisica, analisi e disegno Come corsi alternativi sceglie: fotografia e giornalismo I corsi scelti sono immessi nel sistema di registrazione Lo studente viene aggiunto ai primi 3 corsi principali Il quarto corso non è disponibile IF la prima alternativa è disponibile THEN Lo studente viene aggiunto al corso ELSIF la seconda alternativa è disponible THEN Lo studente viene aggiunto al corso ELSE notifica allo studente IF not notifica THEN Si crea la cartella corsi dello studente Si mandano le informazioni all ufficio contabile 27 28 Interaction diagram Interaction diagram Descrivono il comportamento dinamico di un gruppo di oggetti che interagiscono per risolvere un problema Sono utilizzati per formalizzare gli scenari in termini Entità (oggetti) Messaggi scambiati (metodi) UML propone due diversi tipi di Interaction Diagram Sequence Diagram Collaboration Diagram 30 5

Sequence diagram Evidenziano la sequenza temporale delle azioni Non si vedono le associazioni tra oggetti Usabili in due forme diverse La forma generica: tutte le sequenze (esecuzioni) possibili La forma d istanza: una sequenza particolare (consistente con quella generica) (Caso specifico) Potrebbe Potrebbe essere essere diventare diventare un un attore attore Pippo Selettore Scegli informatica Candidati Candidati per per diventare diventare metodi metodi Conferma registrazione Candidati Candidati per per diventare diventare classi classi Informatica Disponibile? ggiungi Pippo Le risposte restano implicite 31 32 Oggetti luciano: Persona nome = Paperon cognome = De Paperoni datanascita = 1/01/50 luogonascita = Italia Paperon Paperon :Persona Paperon :Persona [ricco] : Persona (Raffinamento diagramma precedente) {transient} :Selettore Informatica: Corso Pippo seleziona(informatica) disponibile() aggiungi(pippo) conferma(informatica) Paperon 33 34 (Chiamata telefonica) Sequence diagram (lternative e creazione oggetti) Chiamante Mezzo Chiamato Obj3:C3 Obj4:C4 {b-a < 1 sec.} {c-b < 10 sec.} a b c inizio disponibile digita n.... op() Obj1:C1 [x>=0] foo(x) Obj2:C2 [x<0] bar(x) doit(w) doit(z) Il ritardo è dato dal mezzo di comunicazione {d -d < 5 sec.} d d aspetta instrada suona risposta more() La conversazione inizia fine attesa fine attesa 35 36 6

Messaggi gi Esercizio Sincroni Il sorgente deve aspettare il destinatario Chiamate di procedure o chiamate innestate Flusso di controllo piatto sincroni Il sorgente continua senza aspettare il destinatario Utile per sistemi concorrenti (con oggetti attivi) Condizioni [x>0] foo() Iterazioni * foo() Risposte (return) Send Create Destroy Si definisca un semplice Sequence Diagram per modellare il prelievo di denaro, supponiamo 200 Euro, da uno sportello ancomat 37 38 7