Unified Modeling Language - PowerPoint PPT Presentation

unified modeling language n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Unified Modeling Language PowerPoint Presentation
Download Presentation
Unified Modeling Language

play fullscreen
1 / 292
Unified Modeling Language
178 Views
Download Presentation
napua
Download Presentation

Unified Modeling Language

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Unified Modeling Language Rosario Culmone

  2. 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

  3. 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

  4. Prerequisiti • Aver sostenuto esame di Programmazione e Laboratorio di Programmazione • Buono conoscenza del paradigma ad oggetti UNICAM

  5. Strumenti • ArgoUML (http://argouml.tigris.org/) • Compilatore OCL (http://dresden-ocl.sourceforge.net/) • Compilatore Java (http://java.sun.com/) • Editore di testi UNICAM

  6. 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

  7. 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

  8. 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

  9. 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

  10. Metodologia • Descrizione • Analisi • Esempi di uso • Confronto UNICAM

  11. Ingegneria del Software

  12. 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

  13. Introduzione Esempio di produzione del software: • Il programmatore ascolta le esigenze del cliente • Il programmatore scrive il codice che soddisferà le varie esigenze UNICAM

  14. 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

  15. 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

  16. 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

  17. Ingegneria del Software • È una tecnologia stratificata per il rispetto della qualità Strumenti Metodi Processo Qualità UNICAM

  18. 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

  19. Ingegneria del Software Metodi • Comprendono una vasta gamma di attività • Analisi dei requisiti • Progettazione • Scrittura del Codice • Collaudo • Manutenzione UNICAM

  20. Ingegneria del Software Analisi dei requisiti • Si definiscono i domini delle informazioni • le varie funzionalità • i comportamenti • le prestazioni • le interfacce richieste UNICAM

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. UML - Architettura • Si basa su una struttura composta da quattro livelli di metamodelli UNICAM

  31. 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

  32. 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

  33. UML - Architettura • Model: • Qui si definiscono i domini, i problemi e le soluzioni di sistemi UNICAM

  34. UML - Architettura • User object: • E’ composto da elementi che semplificano i modelli UML • Qui si descrivono le specifiche informazioni del dominio UNICAM

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. 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

  42. 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

  43. 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

  44. Elementi comuni a tutti i diagrammi • Associazione con la Nota • Una nota può essere agganciata ad ogni elemento o relazione del diagramma UNICAM

  45. 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

  46. 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

  47. 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

  48. 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

  49. Use Case Diagrams - Elementi • Esempi Casi d’Uso: UNICAM

  50. 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