2.95k likes | 3.26k Views
Unified Modeling Language. Rosario Culmone. Obiettivi del corso. Acquisire competenze sulla modellazione di sistemi informatici Acquisire competenze sull’uso di strumenti per la progettazione (UML) Acquisire competenze sulla modellazione mediante l’uso di strumenti automatici CASE (ArgoUML).
E N D
Unified Modeling Language Rosario Culmone
Obiettivi del corso • Acquisire competenze sulla modellazione di sistemi informatici • Acquisire competenze sull’uso di strumenti per la progettazione (UML) • Acquisire competenze sulla modellazione mediante l’uso di strumenti automatici CASE (ArgoUML) UNICAM
Ingegneria del software Introduzione L’Ingegneria del Software Uml Introduzione Storia Architettura I 9 diagrammi Sintesi UML Bibliografia Ocl Introduzione Storia Constraint Invarianti Precondizioni Postconditioni Vantaggi Bibliografia Meccanismi di Estensione di UML Design Pattern Introduzione Concetti Cataloghi Esempi Bibliografia Programma del corso UNICAM
Prerequisiti • Aver sostenuto esame di Programmazione e Laboratorio di Programmazione • Buono conoscenza del paradigma ad oggetti UNICAM
Strumenti • ArgoUML (http://argouml.tigris.org/) • Compilatore OCL (http://dresden-ocl.sourceforge.net/) • Compilatore Java (http://java.sun.com/) • Editore di testi UNICAM
Metodologia • Ogni argomento trattato viene seguito da esercizi • Vengono proposti esercizi che lo studente dovrà svolgere in gruppo o singolarmente • Le esercitazioni sono svolte in laboratorio • La frequenza non è obbligatorio ma consigliata UNICAM
Esame • Progetto proposto dal docente o studenti assegnato a metà corso • Sviluppo del progetto anche in gruppo (max 3 componenti) • Esame orale sostenuto da tutti i componenti del gruppo che consiste nella discussione del progetto UNICAM
Progetto • Ha validità annuale (da inizio corso a inizio corso successivo) • Consiste nella realizzazione di un documento con determinate caratteristiche • Mette in evidenza le capacità di utilizzare le conoscenze e le competenze acquisiste durante il corso • Ha una struttura predefinita • Ha un complessità predefinita • La produzione del codice è facoltativa UNICAM
Testi • “Introduzione a UML”, Simon Bennett, John Skelton, Ken Lunn, McGraw-Hill, pagine 355, Euro 24,50 • “Fondamenti di UML”, Roff Jason T, McGraw-Hill, pagine 295, Euro 23,50 • “UML Distilled Guida rapida al linguaggio di modellazione standard”, Fowler Martin, Pearson Education Italia, pagine 162, Euro 25,00 UNICAM
Metodologia • Descrizione • Analisi • Esempi di uso • Confronto UNICAM
Introduzione • La progettazione dei sistemi software è una disciplina giovane ed immatura • Una indagine della Standish Group, basata su un campione di 28.000 progetti e pubblicata da Computer Weekly il 9 luglio 1998, fornisce questi risultati: • progetti riusciti: 26% • progetti chiusi con notevole ritardo sui tempi, e/o costi imprevisti, e/o funzionalità inadeguate: 46% • progetti falliti: 28% UNICAM
Introduzione Esempio di produzione del software: • Il programmatore ascolta le esigenze del cliente • Il programmatore scrive il codice che soddisferà le varie esigenze UNICAM
Introduzione Questo metodo di produzione del software è valido se: • Il problema è molto semplice • Il cliente formuli il problema in modo chiaro • Il programmatore capisca esattamente cosa il cliente si aspetta • Il programmatore lavora senza la collaborazione di altri colleghi UNICAM
Introduzione Questo metodo è diventato inadatto quando: • Le esigenze dei clienti sono aumentate • La complessità del problema è aumentata • Un unico programmatore non era sufficiente per la completa produzione del software UNICAM
Introduzione La produzione del software quindi deve: • Supportare un processo industriale • Rispettare i requisiti e le aspettative richieste dal committente • Evitare ambiguità ed inconsistenze • Offrire un valido metodo per la corretta comunicazione delle intuizioni • Fornite validi metodi per la riusabilità del codice • Dare un supporto veloce e sicuro per le attività di manutenzione del codice Ingegneria del Software UNICAM
Ingegneria del Software • È una tecnologia stratificata per il rispetto della qualità Strumenti Metodi Processo Qualità UNICAM
Ingegneria del Software Processo • Lo strato fondamentale dell’ingegneria del software • Forma la base del controllo gestionale dei progetti software • Stabilisce il contesto in cui si applicano i livelli tecnologici (metodi e strumenti) • Si creano prodotti intermedi • Si stabiliscono punti di controllo • Si controlla la qualità • Si gestiscono le modifiche UNICAM
Ingegneria del Software Metodi • Comprendono una vasta gamma di attività • Analisi dei requisiti • Progettazione • Scrittura del Codice • Collaudo • Manutenzione UNICAM
Ingegneria del Software Analisi dei requisiti • Si definiscono i domini delle informazioni • le varie funzionalità • i comportamenti • le prestazioni • le interfacce richieste UNICAM
Ingegneria del Software Progettazione • Si definiscono le strutture dati • Le funzioni ed i comportamenti in modo da rispettare i requisiti ed i vincolo richiesti • Si definiscono i protocolli di comunicazione tra le parti che compongono il software UNICAM
Ingegneria del Software Scrittura del Codice • Si costruisce il codice pensando ad un suo successivo riuso • Si adeguano parti riutilizzabili per il nuovo uso • Si integrano tutti gli elementi UNICAM
Ingegneria del Software Collaudo • Si esegue il test del comportamento del software • Si verifica il rispetto di tutto i requisiti richiesti • Si verifica il raggiungimento di tutti i vincoli • Si controlla l’integrazioni dei vari componenti nuovi e riutilizzati UNICAM
Ingegneria del Software Manutenzione • Si modifica il software allo scopo di eliminare i difetti • Si adatta il software per un nuovo ambiente (diverso sistema operativo, cambiamenti esterni al prodotto, adattamento a nuove regole) • Si introducono nuove funzionalità oltre i requisiti originari • Si modifica il software per rendere più semplici le correzioni, gli adattamenti e le migliorie UNICAM
Ingegneria del Software Strumenti • Forniscono al processo e ai metodi un supporto semi-automatico o automatico • Vari strumenti possono essere combinati per integrare i risultati (sistema di supporto allo sviluppo di software CASE) • CASE è costituito da: • Software • Hardware • Database (archivio di informazioni relative ad analisi, progettazione, costruzione e collaudo dei programmi) UNICAM
UML – Unified Modeling Language • E’ un linguaggio (standard OGM tra poco ISO) formale per specificare, visualizzare, costruire e documentare astrazioni • E’ applicabile a differenti tipi di sistema, di domini e di modelli di processo • E’ uno strumento basato sulla descrizione di architetture per sistemi component-oriented e object-oriented • Definisce una notazione prevalentemente grafica contenente simboli e concetti (sintassi e semantica) UNICAM
UML • E’ indipendente da qualsiasi linguaggio di programmazione • E’ applicabile a qualsiasi livello di astrazione • Può coprire l’intero processo di produzione del software • E’ altamente estendibile per modellare meglio le diverse realtà UNICAM
Grady Booch Jim Rumbaugh Ivar Jacobson UML - Storia Booch OOD 91 OOAD94 Rumbaugh OMT 91 Jacobson (Objectory /OOSE) 92 94 RATIONAL Ott. 95 Unified Method Notation (v 0.8) Ott. 95 RATIONAL Lug. 95 Unified Modeling Language (v 0.9) Microsoft, HP, Oracle e altri (consorzio) Gen. 97 UML 1.0 IBM, Platinum e altri (consorzio) Nov. 97 UML 1.1 Dic. 98 UML 1.2 Giu. 99 UML 1.3 Mag. 01 UML 1.4 UNICAM
UML - Utilizzo • Per visualizzare un sistema • Per specificare la struttura ed il comportamento di un sistema • Per definire le linee guida per la costruzione di un sistema • Per documentare le decisioni prese UNICAM
UML - Architettura • Si basa su una struttura composta da quattro livelli di metamodelli UNICAM
UML - Architettura • Meta-Metamodel: • E’ il padre di tutti gli elementi • Viene usato per formalizzare la notazione e definire le specifiche di linguaggio per il metamodel UNICAM
UML - Architettura • Metamodel: • Ogni oggetto del metamodel è una istanza dei concetti del meta-metamodel • Qui si descrivono astrazioni di modelli object-oriented e component-oriented • Si definiscono linguaggi per definire domini e modelli UNICAM
UML - Architettura • Model: • Qui si definiscono i domini, i problemi e le soluzioni di sistemi UNICAM
UML - Architettura • User object: • E’ composto da elementi che semplificano i modelli UML • Qui si descrivono le specifiche informazioni del dominio UNICAM
UML - Notazione • La notazione grafica rappresenta i diversi aspetti del proprio sistemi attraverso le cosiddette “viste” • Esistono nove tipi di diagrammi, alcuni rivolti all’aspetto statico del sistema (che non evolve nel tempi), altri a quello dinamico. UNICAM
UML - Notazione Vista Strutturale Vista di Implementazione Class diagrams Object diagrams Vista Utente Component diagrams Use case diagrams Vista Comportamentale Vista di Ambiente Sequence diagrams Collaboration diagrams Statechart diagrams Activity diagrams Deployment diagrams UNICAM
UML - Notazione Vista di Implementazione Vista Strutturale Class diagrams Object diagrams Vista Utente Component diagrams Use case diagrams Vista Comportamentale Vista di Ambiente Sequence diagrams Collaboration diagrams Statechart diagrams Activity diagrams Deployment diagrams Vista Utente: Descrizione del comportamento del sistema dal punto di vista degli utenti UNICAM
UML - Notazione Vista di Implementazione Vista Strutturale Class diagrams Object diagrams Vista Utente Component diagrams Use case diagrams Vista Comportamentale Vista di Ambiente Sequence diagrams Collaboration diagrams Statechart diagrams Activity diagrams Deployment diagrams Vista Strutturale: Requisiti funzionali e servizi che il sistema deve supportare UNICAM
UML - Notazione Vista di Implementazione Vista Strutturale Class diagrams Object diagrams Vista Utente Component diagrams Use case diagrams Vista Comportamentale Vista di Ambiente Sequence diagrams Collaboration diagrams Statechart diagrams Activity diagrams Deployment diagrams Vista di Implementazione: Configurazione dei componenti che costituiscono il sistema fisico UNICAM
UML - Notazione Vista di Implementazione Vista Strutturale Class diagrams Object diagrams Vista Utente Component diagrams Use case diagrams Vista Comportamentale Vista di Ambiente Sequence diagrams Collaboration diagrams Statechart diagrams Activity diagrams Deployment diagrams Vista Comportamentale: Descrizione del comportamento interno del sistema da un punto di vista strutturale UNICAM
UML - Notazione Vista di Implementazione Vista Strutturale Class diagrams Object diagrams Vista Utente Component diagrams Use case diagrams Vista Comportamentale Vista di Ambiente Sequence diagrams Collaboration diagrams Statechart diagrams Activity diagrams Deployment diagrams Vista di Ambiente: Topologia degli host del sistema, la loro interazione su rete e la distribuzione dei processi UNICAM
Viste Statiche Use Case Diagrams Class Diagrams Object Diagrams Component Diagrams Deployment Diagrams Viste Dinamiche Sequence Diagrams Collaboration Diagrams Statechart Diagrams Activity Diagrams UML - Notazione UNICAM
Elementi comuni a tutti i diagrammi • Nota • E’ un commento espresso attraverso il linguaggio naturale • E’ molto utile per integrare e aumentare la comprensione della notazione UNICAM
Elementi comuni a tutti i diagrammi • Associazione con la Nota • Una nota può essere agganciata ad ogni elemento o relazione del diagramma UNICAM
Rappresentano le modalità di utilizzo del sistema da parte di uno o più utilizzatori (attori) Descrivono l’interazione tra attori e sistema, senza rivelare l’organizzazione interna del sistema Sono espressi in forma testuale, comprensibile anche per i non “addetti ai lavori” Possono essere definiti a livelli diversi (sistema o parti del sistema) Use Case Diagrams UNICAM
Servono, nelle fasi iniziali di progettazione, per chiarire cosa dovrà fare il sistema Servono per colloquiare con il cliente e per scoprire ed analizzare i requisiti del sistema Una volta definiti guidano l’intero sviluppo del progetto Sono il riferimento primario per la definizione, la progettazione, l’esecuzione dei test per la verifica dei requisiti Use Case Diagrams UNICAM
Esempio: Un videoregistratore Vista del progettista: All’interno vi sono dei componenti Ogni componente svolge funzioni particolari Ogni componente deve essere utilizzato correttamente e rispettare dei requisiti Vista dell’utente Nel manuale c’e’ la descrizione di come può essere utilizzato Come si inserisce una cassetta Come si effettua il fermo immagine Ecc…ecc.. Use Case Diagrams UNICAM
Use Case Diagrams - Elementi • Casi d’uso • Sono le funzionalità che il sistema mette a disposizione dei suoi utilizzatori • Descrivono il sistema da un punto di vista esterno (black box) • E’ rappresentato con un’icona a forma di ellisse UNICAM
Use Case Diagrams - Elementi • Esempi Casi d’Uso: UNICAM
Use Case Diagrams - Elementi • Attori • Sono i soggetti (esterni) che interagiscono con il sistema • Possono rappresentare: esseri umani, sistemi HW o SW • Ogni attore corrisponde ad un insieme coerente di ruoli che i soggetti possono assumere interagendo con il sistema UNICAM