Modellare il software. Prof. Paolo Ciancarini Corso di Ingegneria del Software CdL Informatica Università di Bologna

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

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

Unified Modeling Language (UML)

1. UML 2 ed il Processo Unificato

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

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

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

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

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

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

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

Modellazione discreta con UML

INGEGNERIA DEL SOFTWARE

Corso di Ingegneria del Software. Il modello UP

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

Sistemi Informativi I Strumenti - UML

Ingegneria del Software

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

SOMMARIO CHE COS È UML

SOMMARIO CHE COS È UML

UML e i diagrammi di attività

Fondamenti di Informatica II 21. Standard UML

Fondamenti di Informatica

Programmazione ad Oggetti

Ingegneria del Software

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

UML Unified Modeling Language

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

Corso di Ingegneria del Software. Activity Diagram

Linguaggi di Modellazione & UML

PROGETTAZIONE DEL SOFTWARE

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

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi B1_2 V2.3 UML

Unified Modeling Language (UML)

Unified Modeling Language - UML

Giovanni A. Cignoni 1

LEZIONE 2 I LINGUAGGI DI MODELLAZIONE && UML

Analisi e progettazione orientata agli oggetti

Corso di Ingegneria del Software. Casi d uso

software Progettazione software IS Corso di Ingegneria del Software 1 Contenuti Progettare prima di produrre Dall analisi alla progettazione

INTRODUZIONE. Perché abbiamo bisogno di un modello? Modellazione visuale Che cos è UML? Elementi base. per fornire una struttura al problem solving

INTRODUZIONE. Perché abbiamo bisogno di un modello? Modellazione visuale Che cos è UML? Elementi base. per fornire una struttura al problem solving

INTRODUZIONE. Ottobre 2014 v1.0. Renato Conte - UML: INTRODUZIONE - 1 / 25 -

UML I diagrammi implementativi

Progettazione del Sofware

Laboratorio di Sistemi Software UML per Design Patterns e Refactoring

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

Il PROCESSO UNIFICATO

Ingegneria del Software L-A

UML e i diagrammi di stato

Ingegneria del Software e Programmazione Web, ISPW Laboratorio di Applicazioni Web, LAS

! " # $ % & ' '! (! ) * + % + $ + +, -. /! < 6 : ;

Introduzione ai casi d uso

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

Alcuni diagrammi. OCL (Object Constraint Language)

Sistemi Informativi. Marino Segnan introduzione 1

Unified Process - introduzione

DEFINIZIONE DELLA TRASFORMAZIONE UML TO LQN IN LINGUAGGIO ATL

Ingegneria del Software UML - Unified Modeling Language

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

SOMMARIO DIAGRAMMI DI SEQUENZA

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

LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM

Progettazione orientata agli oggetti Introduzione a UML

Processi iterativi. Marina Zanella - Ingegneria del Software RUP 1

Un linguaggio per la rappresentazione formale di vincoli su scenari d'uso

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

SOMMARIO DIAGRAMMI DI ATTIVITÀ

A. Ferrari sistemi informativi e sistemi informatici

Introduzione ad UML. Perché modelliamo

Progettazione software

Informatica e Comunicazione Digitale. Docente responsabile Nome Cognome Indirizzo Mail. Stanza Docenti Dip. Inf. (TARANTO) disciplinare

DIAGRAMMI DEI PACKAGE

Informatica e Tecnologie per la Produzione del Software. VI Piano Stanza 619

UniRoma2 - Ingegneria del Software 1 1

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

UNIVERSITA DEGLI STUDI DI PADOVA Corso di Ingegneria del Software 2016/2017. Appalto per la costruzione di un software per diagrammi UML.

Mercoledì 4 Aprile 2012, Aula AD01. Mario G.C.A. Cimino, Gigliola Vaglini Dipartimento di Ingegneria dell Informazione

Progettazione del Software

UML e (R)UP (an overview)

Principi di Progettazione del Software a.a Introduzione a UML. Requisiti e casi d uso Prof. Luca Mainetti Università del Salento

Capitolo 7. Ingegneria del Software. Mauro Giacomini Pearson Addison-Wesley. All rights reserved

& ' ( ) * +, - (. ' ) ) - / *, - ( 0 - ) - / ' / : 9 5 ; < = >? A < =? ; 7 B ; C 6 D > E : A < F 9 : A 5 G

Allegato 1 Descrizione profili professionali

Redazione e Presentazione di Progetti Informatici

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Casi d uso. Marina Zanella - Ingegneria del Software UML: Casi d uso 1

Sommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio (1) Linguaggio (2)

PIANO DI LAVORO DEL DOCENTE. Docente: Giuliana Pederzoli Classe: 3 A Indirizzo: SIA Disciplina: INFORMATICA Ore di lezione settimanali : 4

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

Sistemi Informativi. Marino Segnan

PIANO DI LAVORO DEL DOCENTE. Docente: Giuliana Pederzoli Classe: 3 A Indirizzo: SIA Disciplina: INFORMATICA Ore di lezione settimanali : 4

Programmazione ad Oggetti

COMUNE DI VOLVERA. Provincia di Torino DETERMINAZIONE DEL RESPONSABILE DEI SERVIZI FINANZIARI UFFICIO RAGIONERIA

Introduzione a UML. Iolanda Salinari

Università degli Studi di Bologna. Facoltà di Ingegneria CORSO DI INGEGNERIA DEL SOFTWARE. Prof. Evelina Lamma

Transcript:

Modellare il software Prof. Paolo Ciancarini Corso di Ingegneria del Software CdL Informatica Università di Bologna

Agenda La modellazione dei sistemi software UML

Un processo di modellazione Raccogli i requisiti del prodotto Descrivi le funzioni del prodotto Modella gli oggetti principali Modella le interazioni tra gli oggetti Modella un diagramma di classi

Discussione I modelli sono descrizioni di qualcosa Cos è un modello di un applicazione sw?

Documentazione visuale I modelli del software sono simili a Disegni Meccanici Schemi Elettrici Progetti Edilizi

Descrizioni visuali del sw Le descrizioni grafiche del sw sono più facili da capire (rispetto al codice sorgente), ma solo se se ne conosce uso e significato Diagramma di flusso (flowchart) Diagramma data flow (Data Flow Diagram)

Il linguaggio di modellazione Un linguaggio di modellazione del sw permette di specificare, visualizzare e documentare un prodotto sw ed il suo processo di sviluppo I modelli sono documenti che facilitano la comunicazione tra cliente e sviluppatori

Modello di un programma A seconda di come è fatto, un modello di un programma può essere: a) una descrizione del programma, utile per facilitare la comunicazione tra le parti interessate al programma b) una specifica del programma, utile per gli sviluppatori c) esso stesso un programma, direttamente eseguibile, utile come prototipo da testare

Modelli Modello informale Modello UML Modello XML

Tutti i programmi sono modelli Un programma è un modello di una computazione: astrae i dettagli dell implementazione sul computer Un linguaggio di programmazione è dunque un linguaggio di modellazione di computazioni

Business modeling in UML

Relazioni tra i modelli realized by refined into defined in Use Case Model realized by Design Model refined into refined into refined into Implementation Model Deployment Model User-Experience Model Data Model

Modelli e diagrammi Un modello UML viene rappresentato da un insieme di diagrammi correlati, ciascuno dei quali descrive un particolare aspetto del sistema modellato Sebbene il modello venga creato attraverso la stesura di diagrammi, esso non coincide con i diagrammi Formalmente, diremo che il modello costituisce il significato dei diagrammi, interpretabile mediante il metamodello di UML

Unified Modeling Language Una notazione - standard industriale OMG - per: Modellare un ambito aziendale Esprimere i requisiti del software Esprimere l architettura software Esprimere la struttura ed il comportamento del software Documentare l operatività del software Riferimento industriale internazionale Tecnologia di riferimento per IBM Molti strumenti di terze parti o open source

Unified Modelling Language UML è un sistema di notazioni grafiche (con sintassi, semantica e pragmatica predefinite) per la modellazione OO di sistemi software UML non è un processo, né è una notazione proprietaria E' uno standard OMG (Object Management Group), definito mediante un metamodello detto infrastruttura UML UML include: Viste (mostrano diversi aspetti del sistema: utente, strutturale, operazionale, ecc., anche in relazione al processo di sviluppo) Diagrammi (grafi che descrivono i contenuti di una vista) Elementi di modellazione (costrutti usati nei diagrammi)

Storia di UML All inizio degli anni 90 tre metodi di progettazione: Metodo Booch OMT Fusion/OOSE (Grady Booch) (Jim Rumbaugh) (Ivar Jacobson) 94 creano Rational Software Corporation 95 arriva a Rational 1995: Unified Modeling Language (vers. 0.8)

Unified Modeling Language La prima versione pubblicata di UML (0.8) fu numerata, perché la specifica sarebbe cambiata in base alle reazioni degli utenti Versione 0.9 pubblicata in giugno 1996 Versione 0.91 pubblicata in ottobre 1996 La notazione ebbe successo immediato

I tre amigos Booch: Definizione e classificazione di nozioni base Rumbaugh: Modelli e notazioni diagrammatiche Jacobson: Modello di processo Objectory Verso il 1994-95 definiscono in Rational UML e RUP Nel 2001 Rational viene acquisita da IBM The three amigos: Grady Booch, Jim Rumbaugh, Ivar Jacobson

Evoluzione di UML UML pubblicato da Rational nel 1995 UML 1.1: standard OMG dal 1997 UML 1.3: OMG, Giugno 1999 UML 1.4: OMG, Settembre 2001 UML 1.5: OMG, Marzo 2003 Standard ISO/IEC 19501, 2004 UML 2.0: 2005 Superstruttura: sintassi di UML Infrastruttura: metamodello di UML scritto in UML Object Constraint Language (OCL): formalismo logico per esprimere vincoli sugli elementi dei diagrammi Versione corrente 2.5.1, dic 2017

Evoluzione di UML Voto OMG 2005 UML 2.0 Commenti pubblici OMG, 2001 WWW - June 96 Standard ISO/IEC 19501 IBM compra Rational, 2002 OMG, gennaio 97 Beta version OOPSLA 96 UML 1.1 UML 0.9 UML 1.4 UML 1.5 Tre libri dei 3 Amigos: -- User Guide -- Reference Manual -- Process Book Solo su Web OOPSLA 95 Unified Method 0.8 Documento base Altri metodi Booch OMT OOSE/Objectory

UML a chi serve? UML è utile per: L architetto del software Il cliente Lo sviluppatore L utente Il responsabile della qualità del prodotto Il project manager

UML a che serve? Può descrivere L uso del software Come funziona Come va costruito L accordo (contratto) tra cliente e sviluppatore

Model based software engineering Requisiti Descrivi Analizza Modelli (UML) Verificare Codifica Rev. eng. Codice sorgente Generare Configura Configurazioni

Modello: vista dei casi d uso impara gioca utente osserva giocare Sistema di gioco

Modello: vista logica

Modello: vista fisica (deployment)

I diagrammi canonici (UML versione 1.5) Casi d uso Classe Comportamento Statecharts Attività Interazione Sequenza Collaborazione Implementazione Componenti Deployment

I diagrammi canonici (UML versione 2.5) Sette strutturali Classe Struttura composita Componente Deployment Object Package Profile Tre comportamentali Attività Macchine a stati Casi d'uso Quattro d'interazione Comunicazione Vista d'interazione Sequenza Temporizzazione http://www.agilemodeling.com/essays/umldiagrams.htm

Gerarchia dei diagrammi (UML 2.5) In blu i diagrammi derivati

Strumenti UML Uno strumento UML permette di disegnare diagrammi che costituiscono il modello di un applicazione Esistono moltissimi strumenti, sia proprietari che open source Il più famoso strumento proprietario è IBM Rational Rose Uno strumento open source è ArgoUML http://www.dmoz.org/computers/programming/methodologies/modeling_languages/unified_modeling_language/tools/

Esempio: ARGOuml

Tipi di diagrammi UML I principali tipi di diagrammi di un modello UML, in tutte le versioni, sono: Diagrammi dei Casi d Uso Diagrammi delle Classi Diagrammi di Sequenza Diagrammi di Collaborazione Ce ne sono altri: Package, Deployment, ecc.

Æ Á ¹ ¼- ëçñ º ±â»ç ëàú äã»çñ Ù. È-ÀÏ ü ÀÚ Â Àоî  ¹ ¼-ÀÇ Á º ÇØ ç ¹ ¼- ü ¼³Á À» äã»çñ Ù. È- é ü  ÀоîµéÀΠüµé ëçø ÀÌ º Î Á ÄÀ» ½ÃÄÑ È- é º ÁØ Ù. 1: Doc view request ( ) 1: Doc view request ( ) 9: sortbyname ( ) 2: fetchdoc( ) L 3: create ( ) 6: filldocument ( ) 9: sortbyname ( ) 7: readfile ( ) 5: readdoc ( ) 2: fetchdoc( ) 4: create ( ) 8: fillfile ( ) 5: readdoc ( ) 7: readfile ( ) 4: create ( ) 8: fillfile ( ) 3: create ( ) 6: filldocument ( ) UI DocumentApp Persistence global MFC RogueWave Openning Reading add file [ numberoffile==max ] / flag OFF close file Closing close file add file Writing ºÐ»ê È æàç Çϵå þ¾î¹ ³ Æ À ÎÀÇ Á º ½Ã½ºÅÛ á ðµ - À µµ ì 95 : Å óàì¾ðæ - À µµ ì NT: ÀÀ ë¼-¹ö - À нº Ó½Å: ÀÀ ë ¼-¹ö ¹ µ ÀÌÅ ¼-¹ö, Åë½Å ¼-¹ö - IBM ÞÀÎÇÁ ¹ÀÓ: µ ÀÌÅ ¼-¹ö, Åë½Å ¼-¹ö Window95 ¹ ¼- ü Å óàì¾ðæ.exe Windows NT Windows NT ¹ ¼- ü Áø.EXE Windows95 IBM Mainframe µ ÀÌÅ º À̽º¼-¹ö Solaris ÀÀ ë¼-¹ö.exe Windows95 ¹ ¼- ü ¾ÖÇà Alpha UNIX Relazioni tra i diagrammi Use-Case Diagram Class Diagram State Diagram Use-Case 1 Actor A Actor B Esperto di dominio Use-Case 2 Use-Case 3 <<entity>> Customer name addr receive() withdraw() fetch() send() Class Deployment Diagram Repository DocumentList Definizione interfaccia mainwnd : MainWnd user :»ç ëàú filemgr : FileMgr repository : Repository mainwnd filemgr : document : gfile repository user FileMgr Document gfile : GrpFile document : Document Collaboration Diagram Package Diagram FileManager GraphicFile File Component Diagram Document FileList Forward Engineering (generazione codice ) e Reverse Engineering Sequence Diagram edita, compila, debug, configura codice Sistema eseguibile

Discussione In che sequenza creiamo i diagrammi?

Diagrammi UML e ciclo di vita... Requisiti... Design... Implementazione Casi d Uso Diagrammi delle classi Diagrammi di sequenza Diagrammi delle attività e State Chart

UML e il processo di sviluppo UML è un insieme di notazioni Non definisce affatto il processo, cioè il modo in cui vanno usate le notazioni UML è più efficace se viene esplicitamente combinato con un processo di sviluppo Gli inventori di UML raccomandano la sua combinazione con RUP Nota Bene: RUP può essere usato senza UML, e viceversa

La certificazione OCUP (OMG) https://www.omg.org/ocup-2/coveragemap-found.htm

Domande di autotest Come mai esistono tante versioni di UML? Quali sono i diagrammi canonici di UML 2.0? Quali sono gli elementi principali del diagramma di attività? Quali diagrammi rappresentano gli eventi?

Riferimenti OMG, UML Specification v. 1.5, 2003 OMG, UML 2.5, 2017 Rumbaugh, Jacobson, Booch, The UML Reference Manual, AW, 1999

Libri per imparare UML Fowler, UML Distilled, Addison Wesley, 3 rd Edition, 2003 Larman, Applying UML and Patterns, PrenticeHall, 2002 Booch, Rumbaugh, Jacobson, The UML User Guide, AW, 1998 Arlow e Neustadt, UML e Unified Process, McGrawHill, 2007 Rumpe, Agile modeling with UML, Springer 2017

Siti utili Su UML www.uml.org (sito degli standard UML) www-306.ibm.com/software/rational/uml/ pic.dhe.ibm.com/infocenter/rsysarch/v11/nav/16 www.agilemodeling.com edn.embarcadero.com/article/31863 (tutorial UML) www.omg.org/ocup-2/coveragemap-found.htm

Strumenti UML (download) www.eclipsedownload.com argouml.tigris.org www.gentleware.com www.visual-paradigm.com/product/vpuml/communityedition.jsp www.borland.com/us/products/together/index.html yuml.me www.genmymodel.com cruise.eecs.uottawa.ca/umple

Strumenti UML (online) www.planttext.com www.lucidchart.com cacoo.com www.gliffy.com creately.com

Domande?