SOMMARIO CHE COS È UML

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

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

SOMMARIO. DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Concetti base.

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

SOMMARIO DIAGRAMMI DEI PACKAGE

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

SOMMARIO DIAGRAMMI DI ATTIVITÀ

SOMMARIO DIAGRAMMI DI SEQUENZA

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

1. UML 2 ed il Processo Unificato

INGEGNERIA DEL SOFTWARE

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

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

SOMMARIO DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE. Introduzione. Proprietà e Operazioni. Proprietà e Operazioni

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

Progettazione orientata agli oggetti Introduzione a UML

SOMMARIO. DIAGRAMMI DELLE CLASSI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Proprietà e Operazioni

Ingegneria del Software L-A

Il PROCESSO UNIFICATO

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

Introduzione a UML. Obiettivi. Unified Modeling Language. Gli autori di UML. Cos è UML. Cos è UML (cont.) Unified Modeling Language

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

ARCHITECTING AND DESIGNING J2EE APPLICATIONS

Introduzione a UML. obiettivo di questa introduzione

CREAZIONE DI FRAMEWORK PER LO SCAMBIO DATI FRA IMPRESE: DIZIONARIO E GENERATORE DI XML SCHEMA IN MODA-ML

ALLEGATO 8.1 DESCRIZIONE PROFILI PROFESSIONALI

Le aree dell informatica

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Introduzione. Sommario. Il software. Definizione di Ingegneria del software

SOMMARIO DESIGN PATTERN

Modulo 16. Introduzione ai Design Patterns. Tutte le case assolvono alla medesima funzione: offrire uno spazio abitativo

Laboratorio di Progettazione di Sistemi Software Introduzione

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

IS Corso di Ingegneria del Software 1

Elementi di programmazione

Università degli studi dell Aquila. Sistemi di elaborazione dell informazione

UNIVERSITÀ DEGLI STUDI DI MILANO- BICOCCA CORSO EROGATO IN MODALITÀ BLENDED- LEARNING SYLLABUS

APPENDICE 4 AL CAPITOLATO TECNICO

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1

Le aree dell informatica

Elementi di programmazione

INSEGNAMENTO DI INGEGNERIA DEL SOFTWARE B (5 CFU) CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA a.a

Introduzione a UML. Iolanda Salinari

F ORMATO EUROPEO INFORMAZIONI PERSONALI DOTT. MAURO DORIA PER IL CURRICULUM VITAE. Nome Indirizzo. Telefono .

Università di Pisa Facoltà di Scienze Matematiche Fisiche e Naturali

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

Progettazione del Sofware

SOMMARIO DESIGN PATTERN INTRODUZIONE AI DESIGN PATTERN INGEGNERIA DEL SOFTWARE. Introduzione. Cos è un design pattern. Cos è un design pattern

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

Presentazione corso. Contenuti e diagramma di Pert. Definizione lista di spedizione. UML

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

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

Organizzazione strutturata

Ingegneria del Software 2010

SOMMARIO DIAGRAMMI DEI CASI D USO

FONDAMENTI DI INFORMATICA

Modelli e strumenti per la generazione automatica di codice

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

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION

Laboratorio di Progettazione di Sistemi Software Introduzione

Tecnologie Informatiche L-31. Corso di Ingegneria del software e Laboratorio di Ingegneria del software

Introduzione alla OOP Object Oriented Programming

Corso di Ingegneria del Software. Introduzione al corso

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

I livelli dei linguaggi. Introduzione alla OOP Object Oriented Programming. La programmazione procedurale separa il calcolo dalla memoria

UML I diagrammi implementativi

Il linguaggio di programmazione Python

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

Introduzione ad UML. Perché modelliamo

STUDIO DI RETRIBUZIONE 2017

Ingegneria del Software 2014

LINGUAGGI DI ALTO LIVELLO

UML e (R)UP (an overview)

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

Sistemi informativi secondo prospettive combinate

oggetti, classi e notazione UML

UML GML- Classi di Oggetti

Programmi e Oggetti Software

Formazione sulla piattaforma Java2EE

Basi di Dati. Progettazione di una Base di Dati. Progettazione di una Base di Dati

11. Riuso del software e CBSE

Unified Modeling Language (UML)

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

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

Introduzione al corso

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Davide Cervi Classe : 3E I.T.E Agostino Bassi - Lodi

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

FONDAMENTI DI INFORMATICA

Alcuni diagrammi. OCL (Object Constraint Language)

PRIMO MODULO. DURATA: 80 ore CONTENUTI

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

Lezione 3. Modellazione dei Dati mediante il Modello Entità Associazione (ER)

LINGUAGGI DI ALTO LIVELLO

Materiale didattico. Sommario

Sistemi Informativi Aziendali

Principi di Progettazione del Software a.a Introduzione al corso Prof. Luca Mainetti Università del Salento

UML e i linguaggi di programmazione non OO

INTERAZIONE UOMO-MACCHINA

Transcript:

INTRODUZIONE A UML INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2016 2017 rcardin@math.unipd.it 2 Famiglia di notazioni grafiche che si basano su un singolo metamodello e servono a supportare la descrizione e il progetto dei sistemi software Martin Fowler Pensato su un paradigma ad oggetti (object oriented) Meta modello Insieme di regole, vincoli e teorie utilizzate per la modellazione di una classe di problemi Modello: astrazione del mondo reale 3 4

COS È UML Linguaggio visuale Facile da imparare, ma semanticamente molto ricco Sintassi UML Notation Guide Regole attraverso le quali gli elementi di un linguaggio sono assemblati in espressioni Elementi di modellazione (classi, interfacce, casi d uso, ) Relazioni (associazioni, generalizzazioni, ) Diagrammi (delle classi, dei casi d uso, di interazione, ) Semantica UML Semantics Regole attraverso le quali alle espressioni sintattiche viene attribuito un significato Caratteristiche principali Incorpora la miglior esperienza sviluppata a livello industriale È uno strumento flessibile, che si adatta alla maggior parte dei sistemi produttivi Si adatta ai bisogni di sviluppo dei moderni software Scalabilità Distribuzione dell architettura Concorrenza È indipendente dai linguaggi di sviluppo e programmazione 5 6 Caratteristiche principali Supporta concetti di sviluppo ad alto livello Frameworks Patterns Componenti Supporta l intero ciclo di vita del software Dal documento di Analisi dei Requisiti al documento di Piano di Qualifica E supportato da numerosi tools di progettazione Rational Application Developer (IBM RAD) http://www 01.ibm.com/software/awdtools/developer/application Eclipse Papyrus UML (http://www.eclipse.org/modeling/mdt/papyrus) Astah Community Edition (http://astah.net/editions/community) BoUML (http://bouml.free.fr) UML è uno standard Object Management Group (OMG) CORBA (Common Object Request Broker Architecture) BPMN (Business Process Managament Notation) Relativamente giovane: 1997 Prima esistevano una miriade di linguaggi grafici di modellazione, ognuno con le proprie regole Anni 80 e 90 Perché? Il linguaggio naturale è troppo astratto e dispersivo È ambiguo e non formale I linguaggi di programmazione sono troppo concreti 7 8

OBJECT MANAGEMENT GROUP OMG s mission is to develop, with our worldwide membership, enterprise integration standards that provide real-world value. OMG is also dedicated to promoting business technology and optimization for innovation through its Business Ecology Initiative (BEI) program and associated Communities of Practice Aziende che partecipano alla definizione di UML Aonix Colorado State University Computer Associates Concept Five Data Access EDS Enea Data Hewlett-Packard IBM I-Logix InLine Software Intellicorp Kabira Technologies Sterling Software Klasse Objecten Sun Lockheed Martin Taskon Microsoft Telelogic ObjecTime Unisys Oracle Ptech OAO Technology Solutions Rational Software Reich SAP Softeam 9 10 UML come abbozzo (skecth) Approccio più utilizzato in assoluto Confermo ; ) Documentare e descrizione porzioni di sistema Forward engineering Il sistema (o una parte) è descritto con diagrammi UML prima delle stesura del codice Aiuta la progettazione dell architettura del prodotto Aziende medio/grandi Documento di Specifica Tecnica (ST) Reverse engineering Il diagramma UML è costruito a partire dal codice Documentazione a posteriori Aziende medio/piccole (aziende italiane in genere ) UML come abbozzo (skecth) 11 12

UML come progetto Approccio più ingegneristico Documento di Definizione di prodotto (DP) Descrive formalmente il sistema per modelli Elevato grado di dettaglio Nessuna decisione o interpretazione da parte del programmatore Definizione delle interfacce tra sottosistemi Approccio più comune rispetto alla descrizione di tutto il sistema I programmatori progettano e sviluppano le componenti dei sistemi in autonomamente Software per la progettazione di dettaglio CASE (Computer Aided Software Engineeging) UML come progetto 13 14 PROSPETTIVA DI UTILIZZO UML come linguaggio di programmazione Generazione automatica del codice a partire dai diagrammi Approccio ottimale (ma utopistico ) Prevede l utilizzo di pattern ricorrenti Programmazione meccanica Strumenti di compilazione dei diagrammi UML Complessi e costosi Correttezza formale del codice Il codice prodotto può soddisfare intrinsecamente delle proprietà di correttezza formale È realmente un approccio conveniente? È più costosa la modellazione o la scrittura del codice? Concetti VS. Software Prospettiva software Elementi UML corrispondono ad elementi software Classi, oggetti, ecc La più utilizzata Prospettiva concettuale Utilizzato per descrive concetti in un dominio Definizione di un vocabolario comune Approccio meno comune UML inizia ora a diffondersi nei domini informatici, figuriamoci in quelli non informatici UML, a volte non basta Modellazione di processi di business (BPM) 15 16

UML: UN PO DI STORIA UML DI TUTTI I GIORNI Anni 80 Programmazione a oggetti Smalltalk, albori del C++, Linguaggi grafici orientati agli oggetti per la progettazione Moltitudine di autori: Grady Booch, Peter Coad, ecc Teorie molto simili, ma con fastidiosi particolari che non permettevano la standardizzazione Anni 90 Rational (ora parte di IBM) Sviluppa un suo standard (UML 0.8) Pericoloso vantaggio competitivo OMG Pressioni da numerosi produttori di strumenti software Mantenere l interoperabilità degli strumenti CASE Concetto tutt ora non raggiunto : ( UML 1.0: gennaio 1997 2003: UML 2.0 Major release: Versione da utilizzare! Esiste UML legale? Non possiede regole prescrittive Definiscono cosa è legale e cosa non lo è Necessita di un ente ufficiale di controllo Precise regole descrittive per imparare conviene partire dal suo utilizzo concreto Il grado di dettaglio può variare Ogni elemento UML può essere soppresso, ottenendo ancora un diagramma legale E la sensibilità dell autore a determinare le informazioni da esporre nel diagramma Voi sarete OBBLIGATI a tenere sempre un buon grado di dettaglio durante il corso 17 18 DIAGRAMMI UML 19 20

DIAGRAMMI UML Esempi di diagrammi Diagramma delle classi Diagramma di sequenza Diagramma dei casi d uso 21 22 UML E LO SVILUPPO SOFTWARE GLOSSARIO Ogni fase, i suoi diagrammi Diagrammi Use case Diagrammi di flusso Revisione dei Requisiti Diagrammi dei package Diagrammi delle classi Diagrammi degli oggetti Diagrammi di attività Diagrammi di sequenza R. Progetto Architetturale Design Pattern Soluzione progettuale generale a un problema ricorrente. Una descrizione o un modello da applicare per risolvere un problema che può presentarsi in diverse situazioni durante la progettazione e lo sviluppo del software. Framework Struttura di supporto su cui un software può essere organizzato e progettato R. di Accettazione Revisione di Qualifica Diagrammi delle classi Diagrammi di attività Diagrammi di sequenza Diagrammi di flusso 23 24

RIFERIMENTI OMG Homepage www.omg.org UML Homepage www.uml.org UML Distilled, Martin Fowler, 2004, Pearson (Addison Wesley) 25