Diagramma delle Classi

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

La progettazione concettuale
Informatica II – Basi di Dati (08/09) – Parte 1
Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 1 Progettazione e Sviluppo di Software ad Oggetti 4 OBJECT-ORIENTED ANALYSIS Processo.
Progettazione concettuale
Unified Modeling Language
Recupero debito quarto anno Primo incontro
Informatica Recupero debito quarto anno Terzo incontro.
Recupero debito quarto anno Primo incontro Esercizi
Progettazione concettuale
1 Sistemi per il recupero delle informazioni PARTE - III COME SI MODELLA.
UML: Class Diagram 1 Corso IS I /03
Principi di Programmazione Object-Oriented
Acquisti OnLine Progetto
Principi di Programmazione Object-Oriented
Programmazione orientata agli oggetti OOP Object Oriented Programming
4 – Progettazione – Introduzione e Modello E-R
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
L’uso dei database in azienda
Analisi dettagliata e design B. Pernici M.G. Fugini AA
ENTITÀ - RELAZIONE MODELLO ENTITÀ E ATTRIBUTI DOMINI RELAZIONI
Corso di Informatica (Basi di Dati)
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
UML: Class Diagram Corso IS I /03
Basi di dati 2002 EER Vogliamo aumentare lespressività degli Entity Model EER: Entity Model Esteso.
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Strategia bottom-up Nella strategia bottom-up le specifiche iniziali sono suddivise in componenti via via sempre più piccole, fino a descrivere frammenti.
Modello E-R Generalizzazioni
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Introduzione alla modellazione di sistemi interattivi
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
1 Programmazione = decomposizione basata su astrazioni (con riferimento a Java)
L’ingegneria del software
Il modello ER Proposto da Peter Chen nel 1976 rappresenta uno standard per la progettazione concettuale (in particolare per le basi di dati) Ha una rappresentazione.
Introduzione alla programmazione Object Oriented
Progettare un database
Commenti all’esempio del treno Nell’esempio del treno si è iniziato dalle attività generiche e/o attività operative che tipicamente costituiscono i passi.
Esercitazioni di Ingegneria del Software con UML
Analisi del servizio PaschiHome Ripasso lezione del 19 ottobre 2005.
UML.
Progettazione concettuale di SI basati su Web
La modellazione degli oggetti
Percorso didattico per l’apprendimento di Microsoft Access
Il Sistema Operativo Il Sistema Operativo è costituito dall’insieme dei programmi necessari per far funzionare tutto l’hardware del calcolatore e per nascondere.
Modellazione dei Dati Fabio Scanu a.s. 2012/2013.
Programmazione ad oggetti
Incapsulamento e information hiding
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Database Progettazione Concettuale
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
Analisi dettagliata e design
Analisi dei requisiti Il primo passo di “qualsiasi” processo di sviluppo è la definizione dei requisiti  Definizione del Business Model  Solitamente.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 -Progettazione del software Ernesto Damiani Università degli Studi.
UML: Introduzione Corso IS I /03 Gianna Reggio Versione 0.0.
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
Descrizione del modello EA con uno schema (parziale) EA Compito 1 di laboratorio: Progetto e realizzazione di una base dati per gestire la documentazione.
Metodologie e modelli per il progetto. 2 Introduzione alla progettazione Il problema: progettare una base di base di dati a partire dai suoi requisiti.
1 Esami Esame scritto: Tra 21 e 25 domande: 20 domande chiuse (20 punti),  5 domande aperte (10 punti) 1½ ore Esame orale/applicativo: Esercizi usando.
Eprogram informatica V anno.
Cloud informatica V anno.
Diagramma degli Stati. Diagramma degli Stati … Definizione è un grafico con nodi ed archi in cui i nodi rappresentano gli stati di una classe e gli archi,
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
Introduzione alle Classi e agli Oggetti in Java 1.
Cassetto Professionisti Cassetto Previdenziale per Liberi Professionisti iscritti alla Gestione Separata 1.
Transcript della presentazione:

Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le relazioni tra loro intercorrenti; Ha una corrispondenza naturale con lo schema concettuale del database che darà supporto all’automazione del processo;

Diagramma delle Classi Servono per definire/rappresentare le classi che compongono il sistema che si intende progettare Un diagramma delle classi specifica la struttura statica dell’applicazione le classi le associazioni tra classi, cioè le collaborazioni ed interazioni necessarie per realizzare i requisiti funzionali specificati nei diagrammi dei casi d’uso La specifica dell’aspetto dinamico della collaborazione (sequenza di invio di messaggi tra classi) viene espressa con i diagrammi di collaborazione e di sequenza

Diagramma delle Classi I diagrammi delle classi mostrano la struttura delle classi (attributi, operazioni, associazioni) del sistema o di sottosistemi e vengono utilizzati principalmente per: documentare il sistema descrivere le associazioni, generalizzazioni, aggregazioni tra le classi descrivere gli attributi e le operazioni delle classi specificare il modello implementativo delle classi e generare parte del codice del sistema rappresentare sotto-sistemi esterni (ad esempio, librerie) e le loro relazioni con il sistema che si intende progettare rappresentare istanze di oggetti descrivere le interfacce esposte delle classi

Classe E’ la descrizione di un insieme di oggetti che condividono gli stessi attributi, metodi e relazioni ed è definita da: nome lista degli attributi lista delle operazioni

Attributi e operazioni Attributo : proprietà che caratterizza una classe, con un nome e un tipo (opzionale); una classe ha zero o più attributi; Operazione : servizio che può essere richiesto ad un oggetto della classe;

Esempio

Attributi Nomi che non sono diventati classi durante la definizione delle classi stesse Conoscenza del dominio applicativo - Persona (ambito bancario)‏ nome, cognome, codiceFiscale, numeroConto - Persona (ambito medico)‏ nome, cognome, allergie, peso, altezza

Attributi e Metodi: Visibilità La visibilità determina disponibilità verso le altre classi: private (simbolo “-” o altri): visibile solamente all'interno della stessa classe protected (simbolo “#” o altri): visibile nella classe e nelle sue sottoclassi public (simbolo “+” o altri): visibile a tutte le classi associate Package (simbolo “~” o altri): visibile a tutte le classi presenti nello stesso package per convenzione gli attributi sono private e le operazioni public l’insieme delle operazioni visibili (esposte) di una classe è detto interfaccia delle classe

Modificabilità di un'associazione la modificabilità di un’associazione è un vincolo che indica se l’istanza di una classe può aggiungere o cancellare istanze di una classe in relazione dal lato dell’associazione su cui il vincolo è indicato, dopo la creazione o l’inizializzazione dell’associazione stessa. può assumere tre valori: changeable (è il valore di default) Frozen addOnly

Ordinamento Associazione è un vincolo che specifica se le istanze destinazione di un’associazione con molteplicità maggiore di 1 debbano avere un determinato ordinamento il criterio di ordinamento può essere definito con una nota

Percorrenza Associazione indica il verso di percorrenza di un’associazione, cioè il verso di percorrenza dei messaggi che realizzano la collaborazione tra le classi che partecipano all’associazione la percorrenza viene indicata con la freccia un’associazione senza frecce indica una percorrenza bidirezionale: devono essere realizzati i messaggi in entrambi i versi

Package di una classe Il nome del package può comparire prima del nome della classe (separato da “::”) nel caso di una gerarchia di package (più package) ogni singolo nome di package deve essere separato da “::” il package è lo spazio dei nomi di una classe il nome di una classe deve essere univoco all’interno del suo spazio del nomi (cioè all’interno del package che la contiene) i nomi di package innestati diventano quindi dei path il path è utile quando si specificano classi di librerie esterne

Informazioni aggiuntive classe danno ulteriore informazione descrittiva della classe informazioni sull’autore, sulla data di creazione ed ultima modifica informazioni sullo stato della specifica (draft, finale, obsoleta, ecc.) informazioni booleane che vincolano l’uso della classe (per default tali proprietà sono tutte false): isAbstract (classe che non può essere istanziata) isLeaf (classe che non può essere specializzata, cioè sottotipizzata) isRoot (classe che non può essere una specializzazione di un’altra) vengono visualizzate tra parentesi graffe sotto il nome della classe {autore=“Paolino Paperino”, dataCreazione=“21/10/2007”, isLeaf}

Relazioni tra Classi Tre sono i tipi principali di relazioni tra classi Associazione Generalizzazione Aggregazione/Composizione

Associazioni tra Classi Ogni associazione ha due estremità collegate alle classi dell’associazione Le estremità sono etichettate con molteplicità (indicano la cardinalità ma in modo opposto alla notazione di Entity-Relationship!)‏ Una estremità può essere etichettata con il ruolo (opzionale) che la classe assume nella associazione

Molteplicità (1)‏ La molteplicità dice: Se l’associazione è obbligatoria oppure no? Il numero minimo e massimo di oggetti che possono essere relazionati ad un altro oggetto

Molteplicità (2) Esattamente uno: 1 Zero o uno:0..1 Molti: 0..* Uno o più: 1..* Un numero specifico: 7 Un intervallo: 4..15 Lista: 0..1, 3..4, 6..* Tutti i numeri eccetto 2 e 5

Ruolo Definisce il ruolo svolto nell’associazione

Associazioni tra Classi Le associazioni rappresentano collegamenti concettuali tra classi

Classi associazione Alcune proprietà potrebbero appartenere all’associazione e non alle parti coinvolte

Associazioni n-arie Nella maggior parte dei casi vengono definite associazioni binarie In UML è comunque possibile specificare associazioni n-arie La notazione fa uso del simbolo del rombo come centro di associazione

Generalizzazioni di Classi

Aggregazioni Le aggregazioni sono una forma particolare di associazione. Una parte è in relazione con un oggetto (part-of)‏

Composizioni Una relazione di composizione è un’aggregazione forte - Le parti componenti non esistono senza il contenitore

Un’interfaccia è una classe che non ha attributi né istanze dirette (è astratta) ha solamente operazioni non implementate (non ha metodi) Un’interfaccia deve essere realizzata (implementata) da una classe La notazione dell’interfaccia è il cerchio con etichetta

Linee guida per l’individuazione di Classi Candidate Per determinare se un concetto descritto nei requisiti è una classe candidata lo si può verificare rispetto a queste domande: il concetto è un “contenitore” di dati? possiede attributi che possono assumere valori distinti? potrebbe comprendere molti oggetti sue istanze? appartiene al contesto del processo in esame?

Esempi Identificazione delle classi candidate per il processo di acquisto on-line di un computer

Esempio Diagramma delle Classi per il processo di acquisto on-line di un computer

Esercizio 1 (Società indagini statistiche)

Class Diagram Azienda

Class Diagram Libreria

Riepilogo Rappresentazione Esterna Diagrammi dei casi d’uso: come il sistema si “mostra” all’utente (interno o esterno)‏ Rappresentazione Interna Diagrammi delle classi: specifica della caratteristiche e delle corrispondenti relazioni tra gli insiemi informativi gestiti dal sistema. Diagrammi di sequenza e di collaborazione: mostra esplicitamente la sequenza di messaggi che vengono scambiati tra gli attori del sistema e gli oggetti. Diagrammi delle attività: specifica dei flussi di lavoro. Diagrammi di stato: specifica degli stati in cui un oggetto (istanza di una classe) può venirsi a trovare durante il suo ciclo di vita