PROGETTAZIONE DEL SOFTWARE

Documenti analoghi
UniRoma2 - Ingegneria del Software 1 1

UML - Unified Modeling Language

Modellazione dei dati in UML

Ingegneria del Software UML - Unified Modeling Language

Strumenti di modellazione. Gabriella Trucco

Progettazione orientata agli oggetti Introduzione a UML

Introduzione ad UML. Perché modelliamo

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

Introduzione a UML. Iolanda Salinari

Modellazione di sistema

UML e (R)UP (an overview)

Rational Unified Process Introduzione

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

Activity Diagrams. Ing. Orazio Tomarchio

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

UML. Una introduzione incompleta. UML: Unified Modeling Language

Object Oriented Software Design

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

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

Artifact Centric Business Processes (I)

Object Oriented Programming

Paradigma object-oriented

Progetto. Struttura del documento di specifica dei requisiti, Casi d uso. manuel.comparetti@iet.unipi.it

Sequence Diagram e Collaboration Diagram

Programmi e Oggetti Software

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

Progettazione del Software A.A.2008/09

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

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

ANALISI E PROGETTAZIONE OBJECT ORIENTED UNIFIED MODELLING LANGUAGE (UML)

Gestione Automatizzata di una Lista Nozze

Università di Pisa Polo Sistemi Logistici Economia e Legislazione dei Sistemi Logistici. Informatica per la Logistica. Lezioni

Progettazione di Applicazioni Web

Progettazione del Software

Business Process Modeling and Notation e WebML

Informatica Industriale Modello funzionale Casi d uso

Piano di gestione della qualità

La specifica del problema

Ingegneria del Software T

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A Marina Mongiello

Indice. Prefazione all edizione italiana

Progettaz. e sviluppo Data Base

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

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

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

object oriented analysis

Il linguaggio di modellazione UML. Rational Unified Process. Model Driven Architecture. Sistemi Informativi Aziendali

Introduzione al Semantic Web

DESIGN PATTERN ESERCITAZIONE PREPARAZIONE ALL ESAME, PARTE II INGEGNERIA DEL SOFTWARE. La soluzione corretta è la c)

7. Architetture Software

ANALISI E PROGETTAZIONE OBJECT ORIENTED. Lorenzo Saladini

UML Unified Modeling Language

Linguaggi di Programmazione I Lezione 5

Informatica per le discipline umanistiche 2 lezione 10

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

Il marketing dei servizi

Ingegneria del Software I. UML - Use Case Diagram

Ciclo di vita dimensionale

Ciclo di Vita Evolutivo

Soluzione dell esercizio del 12 Febbraio 2004

Sistemi Informativi I Caso di studio con applicazione di UML

Progetto di Applicazioni Software

UML 2.0: Introduzione Versione 1.3

Ingegneria del Software. Introduzione ai pattern

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

Guida al colloquio d esame

Esercizi UML. Angelo Di Iorio

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

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

IDENTIFICAZIONE DEI BISOGNI DEL CLIENTE

UML Component and Deployment diagram

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

Attività destinata a raccogliere e a catalogare documenti con l'obiettivo di farli conoscere e diffonderli.

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

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

PLC Sistemi a Logica Programmabile Il linguaggi di programmazione

Il modello Entity-Relationship per il progetto delle basi di dati

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

Corso di Ingegneria del Software. Architetture in UML

Introduzione alla Programmazione ad. Oggetti (OOP)

CHE COS È L INFORMATICA

Use Case Driven Object Modeling: ICONIX

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

LEZIONE 9 - Linguaggi di Modellazione & UML

Progetto BPR: Business Process Reengineering

Cos è il CRM. Andrea De Marco

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

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

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

Transcript:

PROGETTAZIONE DEL SOFTWARE EMILIANO CASALICCHIO DIPARTIMENTO DI INFORMATICA E SISTEMISTICA SAPIENZA UNIVERSITÀ DI ROMA SEDE DI RIETI HTTP://WWW.CE.UNIROMA2.IT/COURSES/PSW! Cos è UML UNIFIED MODELING LANGUAGE! Linguaggi di modellazione formali e informali! Livelli d uso di UML! Viste del modello! Panoramica sui diagrammi! Note e Stereotipi! Use Case! Activity Diagram! State Machine Diagram! Class/Object Diagram! Sequence Diagram E.Casalicchio -- Progettazione del Software a.a. 2009/2010 2

LA STORIA DI UML!!! UML sta per Unified Modeling Language, perché il progetto UML nasce nel 1994 come unificazione di:! Booch! Rumbaugh: OMT (Object Medeling Technique)! Jacobson: OOSE (Object-Oriented Software Engineering) Storia! 1995: Versione 0.8 (Booch, Rumbaugh)! 1996: Versione 0.9 (Booch, Rumbaugh, Jacbson)! Versione 1.0 (BRJ + Digital, IBM, HP,...)! 1999, 2004: Versione 1,3, 1.4, 1.5, UML si diffonde universalmente! 2005: Versione 2.0, nuova versione (estende la versione 1.5) Riferimento:! G. Booch, J. Rumbaugh, I. Jacobson, The unified modeling language user guide, Addison Wesley, 1999. (2 ed. 2005)! http://www.uml.org/ E.Casalicchio (basato su materiale di G.De Giacomo) Progettazione del SW II Parte 3 COS È UML! Il linuaggio di modellazione standard per lo sviluppo di software e sistemi! UML permette di! Tenere traccia dei componenti di cui si ha bisogno e la loro funzione! Quali requisiti del cliente soddisfano! Condividere il lavoro (ossia i vari artefatti progettuali)! UML permette di modellare un sistema! Astrarre i dettagli inutili! Dare una visione semplificata del sistema/problema! Un linguaggio di modellazione formale permette di essere precisi come con un linguaggio di programmazine! precisione =machine-readability, intrepretability, executability, and transformation E.Casalicchio -- Progettazione del Software a.a. 2009/2010 4

LINGUAGGIO DI MODELLAZIONE! Notazione + Semantica! Notazione = elementi descrittivi quali! Pseudo-codice! Codice! Figure! Diagrammi! Descrizione testuale!! Semantica = descrizione del significato degli elementi descrittivi! Perche UML? Ha 6 vantagi E.Casalicchio -- Progettazione del Software a.a. 2009/2010 5 VANTAGGI DI UML! E un linguaggio formale! E conciso! E completo! E Scalabile! Costruito sull esperienza (on lesson learned)! E standard E.Casalicchio -- Progettazione del Software a.a. 2009/2010 6

ESEMPIO: MODELLAZIONE MEDIANTE CODICE E.Casalicchio -- Progettazione del Software a.a. 2009/2010 7 ESEMPIO: MODELLAZIONE MEDIANTE CODICE! Nessun dettaglio viene astratto! Modella solo l implementazione del SW! Completo e non-ambiguo! Non mi da informazioni su! Come verrà usato il sw! Chi utilizzarà il software! Come verrà sviluppato, distribuito e supportato! Non da una visione globale the big picture is missing entirely! Non mi da strumenti per comunicare, ossia SPIEGARE il software! Come, le varie componenti interaggiscono e come soddisfano i requisiti?! Il codice non sempre può essere riutilizzato, un modello può spesso essere riutilizzato E.Casalicchio -- Progettazione del Software a.a. 2009/2010 8

MODELLARE CON LINGUAGGI INFORMALI! Verbosità, ambiguità e confusione! Non ci sono regole esatte per la notazione! Il modelo non può essere trasformato, e.g. non si può generare codice a partire dal modelo E.Casalicchio -- Progettazione del Software a.a. 2009/2010 9 MODELLARE CON LINGUAGGI INFORMALI E.Casalicchio -- Progettazione del Software a.a. 2009/2010 10

MODELLARE CON LINGUAGGI FORMALI! No-ambiguità, giusto livello di verbosità, no confisione! Preciso significato attribuito alla notazione! Un diagramma (composizione di elementi della notazione) descrive una parte del modello ma non tutto! Possibilità di trasformare il modello, e.g. generare codice E.Casalicchio -- Progettazione del Software a.a. 2009/2010 11 ESEMPIO DI DIAGRAMMA FORMALE: IL CLASS DIAGRAM E.Casalicchio -- Progettazione del Software a.a. 2009/2010 12

FORMALISMO = DISAMBIGUAZIONE E.Casalicchio -- Progettazione del Software a.a. 2009/2010 13 LIVELLI DI UTILIZZO DI UML! Come una bozza (as a sketch)! Come una mappa/disegno tecnico (as a blueprint)! Come un linguaggio di programmazione E.Casalicchio -- Progettazione del Software a.a. 2009/2010 14

! Vista Logica! Parti del sistema KRUCTHEN 4+1 VIEW MODEL! Class, object, state machine, interaction diagram! Vista di Processo! Processo nel sistema! Activity diagram! Vista Fisica! Come il processo è portato alla vita! Deployment diagram! Vista Use Case! Funzionalità del sistema viste dal mondo esterno! Use Case, description, overview diagram Logical View Physical View Use Case View Process View Development View E.Casalicchio -- Progettazione del Software a.a. 2009/2010 15 UN ALTRA CLASSIFICAZIONE DEI DIAGRAMMI UML! Diagrammi strutturali:! Diagramma delle classi e degli oggetti (class and object diagram)! Diagrammi comportamentali:! Diagramma degli use case (use case diagram),! Diagramma degli stati e delle transizioni (state/transition diagram),! Interaction (Sequence e Collaboration diagram),! Activity diagram! Diagrammi architetturali:! Component diagram! Deployment diagram E.Casalicchio (basato su materiale di G.De Giacomo) Progettazione del SW II Parte 16

! Cos è UML UNIFIED MODELING LANGUAGE! Linguaggi di modellazione formali e informali! Livelli d uso di UML! Viste del modello! Panoramica sui diagrammi! Note e Stereotipi! Use Case! Activity Diagram! State Machine Diagram! Class/Object Diagram! Sequence Diagram E.Casalicchio -- Progettazione del Software a.a. 2009/2010 17 NOTE! Note: commenti addizionali = commenti nel codice E.Casalicchio -- Progettazione del Software a.a. 2009/2010 18

STEREOTIPI! Sterotype: uso speciale o intento d uso di un elemento! applicabile ad ogni elemento E.Casalicchio -- Progettazione del Software a.a. 2009/2010 19 USE CASE DIAGRAM! Composto da Actors e Use Case! Funzionalità del sistema viste dal mondo esterno E.Casalicchio -- Progettazione del Software a.a. 2009/2010 20

USE CASE: BOUNDARIES E REFINEMENT (INCLUDE) E.Casalicchio -- Progettazione del Software a.a. 2009/2010 21 Logical View Process View ACTIVITY DIAGRAM Use Case View Physical View Development View! come il sistema svolgerà i suoi compiti! simile ai flow-chart! modellazione dei business process E.Casalicchio -- Progettazione del Software a.a. 2009/2010 22

ACTIVITY DIAGRAM: ACTIVITY AND ACTIONS E.Casalicchio -- Progettazione del Software a.a. 2009/2010 23 ACTIVITY DIAGRAM: DECISION E.Casalicchio -- Progettazione del Software a.a. 2009/2010 24

ACTIVITY DIAGRAM: DECISION E.Casalicchio -- Progettazione del Software a.a. 2009/2010 25 ACTIVITY DIAGRAM: UML 1.X VS UML 2.0 E.Casalicchio -- Progettazione del Software a.a. 2009/2010 26

ACTIVITY DIAGRAM: FORK AND JOIN E.Casalicchio -- Progettazione del Software a.a. 2009/2010 27 ACTIVITY DIAGRAM: CHIAMATA DI ATTIVITÀ E.Casalicchio -- Progettazione del Software a.a. 2009/2010 28

ACTIVITY DIAGRAM: PASSAGGIO DI OGGETTI, INPUT/ OUTPUT, TRASFORMAZIONI E.Casalicchio -- Progettazione del Software a.a. 2009/2010 29 ACTIVITY DIAGRAM: CAMBIAMENTO DI STATO E.Casalicchio -- Progettazione del Software a.a. 2009/2010 30

ACTIVITY DIAGRAM: SWIMLANE! Partecipanti differenti (gruppi, ruoli) E.Casalicchio -- Progettazione del Software a.a. 2009/2010 31 CLASS DIAGRAM Logical View Process View! Il diagramm UML più conosciuto! descrive i differenti tipi di oggetti presenti nel sistema e le relazioni che intercorrono tra le classi di oggetti. Physical View Use Case View Development View E.Casalicchio -- Progettazione del Software a.a. 2009/2010 32

CLASS DIAGRAM E.Casalicchio -- Progettazione del Software a.a. 2009/2010 33 CLASS DIAGRAM: ATTRIBUTI E OPERAZIONI E.Casalicchio -- Progettazione del Software a.a. 2009/2010 34

SEQUENCE DIAGRAM! Come le parti di un sistema interagiscono! Catturano l ordine delle interazioni tra le parti E.Casalicchio -- Progettazione del Software a.a. 2009/2010 35 SEQUENCE DIAGRAM E.Casalicchio -- Progettazione del Software a.a. 2009/2010 36

SEQUENCE DIAGRAM E.Casalicchio -- Progettazione del Software a.a. 2009/2010 37 STATE MACHINE DIAGRAM! Quando lo stato di un oggetto/sistema è un elemento importante! real-time, mission critical systems! Dedicated devices il cui comportamento è definito dallo stato (ATM)! First-person shooter games (Doom, Half-life) Logical View Physical View Use Case View Process View Development View E.Casalicchio -- Progettazione del Software a.a. 2009/2010 38

STATE MACHINE DIAGRAM: TRIGGER, GUARDIE E TRANSIZIONI E.Casalicchio -- Progettazione del Software a.a. 2009/2010 39 STATE MACHINE DIAGRAM: TRIGGER, GUARDIE E TRANSIZIONI E.Casalicchio -- Progettazione del Software a.a. 2009/2010 40