Introduzione auml. Introduzione alla notazione UML Cenni sul metamodello I diagrammi Gli strumenti UML



Documenti analoghi
Ingegneria del Software UML - Unified Modeling Language

UML e (R)UP (an overview)

Modellazione dei dati in UML

Concetti di base di ingegneria del software

Strumenti di modellazione. Gabriella Trucco

Rational Unified Process Introduzione

Informatica Industriale Modello funzionale Casi d uso

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

Progettaz. e sviluppo Data Base

UniRoma2 - Ingegneria del Software 1 1

UML - Unified Modeling Language

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

Volumi di riferimento

Object Oriented Programming

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

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

Il diagramma dei casi d uso

Progettazione orientata agli oggetti Introduzione a UML

Gestione del workflow

Introduzione ad UML. Perché modelliamo

UML. Una introduzione incompleta. UML: Unified Modeling Language

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

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

Alessandra Raffaetà. Basi di Dati

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

Sequence Diagram e Collaboration Diagram

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

Una metodologia per la specifica di software basato su componenti

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

Soluzione dell esercizio del 2 Febbraio 2004

Automazione Industriale (scheduling+mms) scheduling+mms.

PROGETTAZIONE DEL SOFTWARE

Diagrammi di Interazione

UML Component and Deployment diagram

La specifica del problema

Ciclo di vita del progetto

Informatica Industriale Modello funzionale: Informazione Progettazione concettuale

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

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

Strumenti per la gestione della configurazione del software

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

Introduzione a UML. Iolanda Salinari

ANALISI E PROGETTAZIONE OBJECT ORIENTED UNIFIED MODELLING LANGUAGE (UML)

Dispensa di database Access

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

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

WorkFLow (Gestione del flusso pratiche)

Database. Si ringrazia Marco Bertini per le slides

Sistemi Informativi I Caso di studio con applicazione di UML

Specifiche dello sviluppo di un progetto software e indicazioni sulla documentazione e sulle modalità di esercizio delle prestazioni

UML Unified Modeling Language

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

1. BASI DI DATI: GENERALITÀ

Dalla progettazione concettuale alla modellazione di dominio

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

Introduzione ai tipi di dato astratti: applicazione alle liste

Il database management system Access

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Esempio ordini 08UMLEX1.1

Organizzazione degli archivi

Soluzione dell esercizio del 12 Febbraio 2004

Ciclo di vita dimensionale

Corso di Sistemi di Elaborazione delle informazioni

Artifact Centric Business Processes (I)

Modellazione di sistema

La Metodologia adottata nel Corso

Specifiche tecniche e funzionali del Sistema Orchestra

Lezione 2. Il modello entità relazione

Introduzione alla Programmazione Orientata agli Oggetti. Classi, Oggetti e Messaggi

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

7. Architetture Software

Progettaz. e sviluppo Data Base

Progettazione dei Sistemi di Produzione

Introduzione al processo di Marketing Management Cap. 1

Esercitazione di Basi di Dati

Cosa significa che il SW è non lineare? Piccoli cambiamenti nel codice portano a grandi cambiamenti di comportamento

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

ELENCO CLIENTI FORNITORI Patch1

Linguaggi di Programmazione I Lezione 5

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

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

Parte 4. Progettazione di una simulazione

Piano di gestione della qualità

SISTEMA INFORMATIVO INPDAP SERVIZI E PROGETTI PER L'INTEGRAZIONE DEL SISTEMA STANDARD DI PRODOTTO PIANO DI QUALITA' DI PROGETTO

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

UML Diagrammi delle classi. UML Diagramma classi 1

Progettazione della componente applicativa

Brochure Internet. Versione The Keyrules Company s.r.l. Pagina 2 di 8

Raggruppamenti Conti Movimenti

Gestione Turni. Introduzione

4.1 Che cos è l ideazione

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

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

Progettazione concettuale

Cosa è un foglio elettronico

Politecnico di Bari Corso di Laurea Specialistica in Ingegneria Informatica A.A Casi di Studio. Traccia n 1

Il modello di ottimizzazione SAM

Gestione Iter Manuale Sistemista. Gestione Iter Manuale Sistemista

EXPLOit Content Management Data Base per documenti SGML/XML

Transcript:

Introduzione a Introduzione alla notazione Cenni sul metamodello I diagrammi Gli strumenti Riferimenti: Booch, Rumbaugh, Jacobson, User Guide, AddisonWesley 1997 Fowler, Distilled, AddisonWesley 1998.ed. italiana 2001 Alhir, in a nutshell, O Reilly 1998 Pooley & Stevens, Using : Sw Eng with Objects and Components, AW 1999 Informazioni su si possono reperire su Web agli indirizzi: www.omg.org/uml www.rational.com www.tecnetdati.it/uml/uml.htm www.assioma.com/oo/uml.htm Esempi di progettazione : www.objectmentor.com/resources/articles/walking_through_a Design.pdf www.student.math.uwaterloo.ca/~cs445/referencedocs/coffeemaker.pdf

La notazione Unified Modeling Language () è una notazione per analizzare, specificare, visualizzare e documentare lo sviluppo dei documenti di progetto di un sistema ad oggetti Più precisamente, è una notazione ed un metamodello (ontologia) che descrive la notazione stessa La continua nascita di nuovi metodi per l analisi e la progettazione ad oggetti, il cui numero sfiora il centinaio, ha determinato la necessità di uno standard notazionale include notazioni derivate da OOSE (per l analisi dei requisiti), da OMT-2 (per sistemi informativi ad alta densità di dati), da Booch- 93 (disegno e costruzione a oggetti) e da altri metodi di analisi L obiettivo di è ambizioso. Secondo le intenzioni deve divenire il linguaggio per la creazione di modelli software, cioè un linguaggio universale per la progettazione dei sistemi informatici

: riferimenti ha suscitato notevole interesse e sono molte le aziende che lo sostengono e lo hanno adottato come standard de facto sia per il progetto che per la documentazione Alcune aziende si sono unite alla Rational per sottoporre all approvazione come standard industriale da parte di OMG, che lo ha adottato nel 1998. Nel 2001 è uscita la seconda versione ( 2) I documenti originali che descrivono la notazione sono disponibili: http://www.rational.com/uml Un introduzione a si trova all indirizzo http://www.rational.com/uml/summary/

Metodi di analisi/specifica ad oggetti I libri più importanti sull analisi e progettazione ad oggetti apparvero tra il 1988 e il 1992; i metodi in essi descritti prendono il nome degli autori Shlaer e Mellor introdussero nel 1989 e 1991 l approccio Recursive Design (1997) Coad e Yourdon introdussero nel 1991 un approccio orientato alla prototipazione Booch nel 1994 e 1995 pubblica per la Rational due libri sull analisi a oggetti per realizzare sistemi in Ada Rumbaugh introduce nel 1991 la Object Modeling Technique (OMT) Jacobson introduce Objectory ed i casi d uso nel 1994 Il processo di unificazione metodologica che ha portato a è cominciato nel 1994, quando Booch e Rumbaugh hanno avviato l unificazione dei loro metodi Un passo determinante è stato poi compiuto con l arrivo di Jacobson alla Rational (società prima di Booch e poi anche di Rumbaugh). All integrazione di OOSE (di Jacobson) con OMT-2 e Booch-93 ha fatto quindi seguito una prima versione di, che rappresenta una base per l unificazione di tali metodi

Metamodello La maggior parte dei metodi OO sono poco rigorosi: le relative notazioni vengono presentate intuitivamente Un modo di aumentare il rigore di presentazione di una notazione consiste nel descrivere il suo metamodello: di solito è un diagramma di classi che definisce la notazione Quello che segue è un frammento di metamodel Relationship Generalization Association association roles (ordered) 1 2..* Association role

Rational Objectory Process non è un metodo! Infatti non definisce un processo di sviluppo I tre autori di hanno dato una definizione unificata di processo (Rational Objectory Process, o Rational Unified Process - RUP) Ricordiamo che Jacobson in passato propose il metodo Objectory 1. Inception: fase in cui si stabiliscono le motivazioni e l obiettivo di un progetto (~studio di fattibilità) 2. Elaboration: fase di raccolta e analisi dei requisiti, e definizione di un architettura di riferimento 3. Construction: fase che consiste di parecchie iterazioni, ciascuna delle quali costruisce software testato e integrato, che soddisfa un sottoinsieme dei requisiti (ciascuna iterazione ha un proprio ciclo di vita che comprende analisi, progettazione, realizzazione e test) 4. Transition: fase finale che include beta testing, performance tuning, e la formazione degli utenti finali Il RUP è un metodo derivato da ROP, in cui si usa sistematicamente ed i suoi strumenti

Le notazioni in è una notazione ibrida (composita), che include nove tipi di diagrammi, divisi in cinque categorie Diagrammi introduttivi - diagrammi dei casi d uso Diagrammi di struttura statica - diagrammi delle classi - diagrammi degli oggetti Diagrammi d interazione - diagramma di sequenza - diagramma di collaborazione Diagrammi di stato - diagramma di stato - diagramma di attività Diagrammi di implementazione - diagramma dei package - diagramma dei componenti - diagramma di dislocamento A partire da 1.1 esiste un ulteriore notazione, testuale, chiamata Object Constraint Language (OCL), per definire invarianti, vincoli, condizioni

2.0 Nel 2001 OMG ha rilasciato la specifica standard di 2.0 In 2.0 sono stati aggiunti altri diagrammi: il totale adesso è 12, divisi in tre categorie Diagrammi strutturali - diagrammi delle classi - diagrammi degli oggetti - diagrammi dei componenti - diagrammi di deployment Diagrammi di struttura dinamica e d interazione - diagramma dei casi di uso - diagramma di sequenza - diagramma delle attività - diagramma di collaborazione - diagramma statechart Diagrammi di gestione del modello - diagramma dei package - diagramma dei sottosistemi - diagramma dei modelli

Diagrammi dei casi d uso Definizione: un diagramma dei casi d uso è un grafo che mostra le relazioni tra attori e casi d uso di un sistema; è particolarmente utile per specificare requisiti. Un attore è un insieme di ruoli che gli utenti di un caso d uso possono impersonare interagendo con il caso d uso stesso Un caso d uso è una classe che definisce un insieme di istanze di casi d uso (cioè di sequenze di azioni eseguite da un sistema il cui risultato può essere osservato e riveste valore per un particolare attore). <<uses>> Use Case 2 Actor Use Case <<extends>> Use Case 3 Una freccia <<extends>> deriva da un altro caso d uso che è simile a quello in oggetto ma è un po più generale Una freccia <<uses>> punta un caso d uso riusabile, cioè riferito da altri casi d uso Cliente Fornitore Gestione Ordini Gestione Magazzino usa usa Sistema Fatture

Casi d uso: esempio biblioteca ricerca titoli Utente <<extends>> Responsabile richiesta titolo non disponibile situazione utente <<uses>> prestiti in corso Supervisore situazione generale utenti manutenzione <<uses>> <<uses>> manutenzione testi manutenzione utenti statistiche prestiti

Casi d uso: commercio elettronico Set limits Accounting system Trading manager Update accounts Analyze risks <<uses>> Valuation Price deal <<uses>> Trader Capture deal Trading manager <<extends>> Limits Exceeded

Attori Un attore è un ruolo che un utente gioca in relazione al sistema; gli attori eseguono casi d uso: un singolo attore può eseguire più casi d uso, e un caso d uso può includere più attori Un attore può essere un programma, o addirittura un intero sistema esterno interagente col sistema in analisi Le interazioni con i sistemi esterni non sono ben codificate in : alcuni pretendono di mostrare TUTTE le interazioni con sistemi esterni alcuni inseriscono un sistema esterno solo se questo inizia l interazione alcuni mostrano i sistemi esterni solo se questi necessitano del caso d uso altri proibiscono di pensare ad un sistema esterno come un attore di un caso d uso

Diagrammi delle classi Definizione: il diagramma delle classi è un grafo che descrive i tipi degli oggetti in un sistema, le relazioni statiche tra essi, gli attributi e le operazioni di una classe, ed i vincoli sulle relazioni Una classe è rappresentata da un rettangolo scomposto in tre parti: il nome della classe gli attributi della classe le operazioni della classe Order datereceived isprepaid number:string price: Money dispatch close Una relazione statica tra classi definisce in genere: associazione 0..1 * sottotipo (generalizzazione/ specializzazione) aggregazione composizione * *

Classi: esempio biblioteca 1 Editore codice titolo * Testo numerotesti numerorichieste disponibile? 1 * Prestito datainizio = datacorrente datafine * 1 Utente codice nome indirizzo note * Contatto riferimento tipo{tel,fax,email} note numerotesti * numeroprestiti prestiticorrenti Responsabile 1

Classi: esempio commercio elettronico Order Customer datereceived isprepaid number:string price: Money * 1 name address dispatch close 1 {if Order.customer.creditRating is poor, then Order.isPrepaid must be true creditrating: String() Corporate Customer contactname creditrating creditlimit Personal Customer creditcard# * OrderLine remind() billformonth(integer) * creditrating()== poor Quantity: Integer price: Money issatisfied: Boolean 0..1 Employee * 1 Product

Aggregazione e composizione Un aggregazione definisce una relazione part-of La differenza tra aggregazione e associazione è controversa: Coad: un esempio di aggregazione è la relazione tra una società e i suoi impiegati Rumbaugh: una società NON è l aggregazione dei suoi impiegati Una composizione definisce in modo univoco un entità come parte di un intero (e se l intero viene cancellato, scompaiono anche le sue parti) Forme alternative per la composizione: 1 Poligono 1 Poligono 1 formag: FormaG 3..* {ordered} Punto 1 FormaG colore texture 1 3..* {ordered} Punto

Interpretare un diagramma delle classi È importante capire che ci sono tre modi ben distinti di concepire e comprendere un diagramma delle classi: prospettiva concettuale: il diagramma rappresenta concetti del dominio in analisi; tali concetti potranno NON trovare corrispondenza nel sistema finale prospettiva analitica: il diagramma rappresenta le interfacce di moduli da implementare in seguito: in altre parole dichiara tipi piuttosto che classi, in quanto un tipo rappresenta un interfaccia che può sopportare parecchie diverse implementazioni prospettiva implementativa: le classi rappresentano direttamente moduli software

Diagrammi degli oggetti Definizione: diagramma degli oggetti È un grafo di istanze di classi. Un diagramma degli oggetti di tipo statico è un istanza di un diagramma delle classi. Mostra un immagine dello stato del sistema in un istante preciso. Un diagramma degli oggetti di tipo dinamico mostra lo stato del sistema durante un periodo di tempo, includendo i cambiamenti che si verificano; è generalmente conosciuto col nome di Diagramma delle collaborazioni

Diagramma di stato Definizione: un diagramma di stato è un grafo i cui nodi rappresentano stati e gli archi sono etichettati con eventi e rappresentano transizioni di stato; mostra come cambia un oggetto durante il suo ciclo di vita Un diagramma di stato è uno statechart che mostra le sequenze di stati che un oggetto, o un interazione, attraversa durante il ciclo di vita alla ricezione di stimoli Sintassi di una transizione: Evento [Guardia] / Azione La azioni sono associate alle transizioni, sono rapide e non interrompibili; le attività sono associate agli stati e possono essere più lunghe Superstate Name State Name variable:type = init_value entry/action do/activity exit/action event/action(arguments) event(args) [condition]/action State Name

Diagramma di stato: esempio biblioteca Nuovo Sospeso catalogazione riabilitato sospeso ritirato Disponibile prestito fine controllo [controllo OK] fine controllo [controllo NO] Indisponibile Prestato rientro InControllo

Diagramma di sequenza Definizione: diagramma di sequenza È un grafo che mostra una modalità di interazione tra oggetti; un interazione è una specifica temporale dei messaggi che vengono inviati tra le istanze per l esecuzione di un compito specifico :Cliente :GestioneOrdini sendorder(ref,qty,customerid?) check Reference create Order

Diagramma di sequenza: esempio biblioteca :Responsabile :Utente :Testo :Prestito verifica utente cerca testo verifica disponibilità [prestito possibile] (consegna testo) [prestito possibile] (impegna testo) [prestito possibile] registra prestito [prestito impossibile] (stampa motivazioni)

Diagramma di collaborazione Definizione: diagramma di collaborazione Un diagramma di collaborazione è un contesto, cioè un grafo di oggetti e link con indicazione del flusso dei messaggi sul link. Più precisamente, un contesto è la vista di uno o più elementi che sono in relazione per uno scopo particolare, come l esecuzione di una operazione. Il contesto di un operazione include i suoi argomenti e le variabili locali create durante l esecuzione, così come le ordinarie associazioni. Un diagramma di collaborazione evidenzia il contesto di una interazione tra oggetti, il diagramma di sequenza illustra invece esplicitamente la successione temporale degli eventi Object_name : class 1:simple message() asynchronous message() :class 1.1*:iteration message() 1.2:[condition] message() Object_name

Diagramma di attività Definizione: undiagramma di attività è un caso speciale del diagramma degli stati nel quale tutti gli stati (o la maggior parte) sono stati d azione e in cui tutte le transizioni (o la maggior parte) sono innescate dal completamento delle azioni nello stato sorgente Uno stato d azione è uno stato con una azione interna e con una o più transizioni verso l esterno connesse con il completamento dell azione interna Una transizione è una relazione tra due stati che indica che un oggetto nel primo stato eseguirà certe azioni ed entrerà nel secondo stato quando capiterà un dato evento e saranno soddisfatte delle determinate condizioni Il modello intero è attaccato a una classe, a un caso d uso o all implementazione di una operazione. Lo scopo del diagramma è focalizzare l attenzione sul flusso guidato dall elaborazione interna Activity [condition 2] [condition 1] Activity * Activity Activity Activity [synchronization condition]

Diagramma di attività: esempio biblioteca Richiesta Testo Verifica Disponibilità [disponibile] Compila Modulo Aggiorna Calendario [~disponibile] Prendi Libro Aggiorna Richieste

Diagrammi di implementazione: package Definizione: il diagramma dei package è un grafo che mostra come le classi vengono organizzate in moduli, e quali sono le dipendenze tra tali moduli Due elementi sul diagramma sono in dipendenza se una modifica alla definizione di un elemento può causare una modifica della definizione dell altro Package Name dependency Package Name Class 1 Class 2 Class 3 Nota: siccome package e dipendenze sono elementi su un diagramma di classi, un diagramma dei package è in realtà uno speciale diagramma delle classi

Diagrammi di implementazione Definizione: il diagramma dei componenti è un grafo che mostra la struttura delle dipendenze tra codice sorgente, codice binario o eseguibile Definizione: il diagramma di dislocazione (deployment) è un grafo che mostra la struttura run-time dei componenti, ovvero del sistema di processi e oggetti che vivono in essi; gli archi mostrano i flussi di comunicazione tra componenti a Windows PC a database server Front end Library Database User Interface Library Application

Object Constraint Language (OCL) OCL è stato sviluppato all interno di IBM per complementare nell espressione di vincoli formali sulle entità di una specifica OCL è stato adottato nel 1998 in 1.1 OCL è un linguaggio per esprimere vincoli su elementi di un modello a oggetti: le espressioni OCL specificano regole in forma di invarianti, condizioni e restrizioni Le espressioni OCL possono essere attaccate a tipi, a entità del modello, a istanze, a operazioni (precondizioni e postcondizioni) OCL non è un linguaggio formale

Rational rose Gli strumenti ARGO/Poseideon Elmuth Le macro LaTeX