Principi di Progettazione del Software a.a
|
|
- Isidoro Marchi
- 6 anni fa
- Visualizzazioni
Transcript
1 Principi di Progettazione del Software a.a UML: approfondimenti sui diagrammi delle classi e di sequenza. Diagrammi di package e di deployment Prof. Università del Salento
2 Obiettivi della lezione Approfondire alcuni concetti relativi ai diagrammi delle classi e ai diagrammi di sequenza Introdurre i diagrammi dei package e di deployment Comprendere come utilizzare i diagrammi sopra elencati per progettare/documentare l architettura software delle applicazioni di interesse per il corso di Principi di Progettazione del Software 2
3 Diagramma delle classi E la tipologia di diagramma più ricorrente (e forse più utile) di UML Un diagramma delle classi può essere utilizzato per modellare concetti oppure per modellare software Nel secondo caso, descrive il tipo degli oggetti (classi) che fanno parte di un sistema software e le relazioni che li legano Per ogni classe, il diagramma descrive le corrispondenti caratteristiche (feature), cioè le proprietà e le operazioni che la compongono 3
4 Un esempio di diagramma delle classi Ordine -data: Data [0..1] -prepagato: Boolean [1] -numero: String [1] -prezzo: Denaro +spedisci() +chiudi() * 1 Cliente -nome [1] -indirizzo [0..1] +getilivellocredito() : String 1 {ordered} * LineaOrdine -quantita: integer -prezzo: Denaro {if Ordine.cliente.getLivelloCredito() == "basso" then Ordine.prepagato = true} -elementilinea AziendaCliente -nomecontatto -livellocredito -limitecredito +contomensile(in c : Integer) +sollecito() * ClientePrivato -numerocartacredito {getlivellocredito() == "basso"} * rappresentante Prodotto Impiegato 4
5 Proprietà Le proprietà di una classe ne definiscono la struttura In prima approssimazione corrispondono ai campi della classe Le proprietà possono essere rappresentate con due notazioni differenti Attributi Tipicamente utilizzati per rappresentare dati semplici Associazioni Tipicamente utilizzati per rappresentare dati complessi (altre classi) 5
6 Attributi Sintassi completa visibilità nome: tipo molteplicità = default {stringa-di-proprietà} Esempio - titolo: String [1] = UML distilled {readonly} Elementi visibilità: (-) private, (#) protected, (+) public nome: nome dell attributo tipo: tipo di dato di un campo di programmazione molteplicità: numero di valori ammessi per le istanze default: valore di default in un oggetto appena creato {stringa-di-proprietà}: alcune caratteristiche aggiuntive 6
7 Associazioni Un associazione è una linea continua che collega due classi E orientata dalla classe sorgente a quella destinazione La classe destinazione corrisponde al tipo della proprietà La rappresentazione con associazioni descrive in modo più intuitivo l architettura Dal punto di vista implementativo la rappresentazione con associazioni è equivalente alla rappresentazione con attributi -data: Data [0..1] -prepagato: Boolean [1] -elementilinea: LineaOrdine [*] {ordered} Data -data 0..1 * Ordine Ordine 1 * LineaOrdine -prepagato 1 -elementilinea {ordered} Boolean 7
8 Molteplicità La molteplicità indica quanti oggetti possono entrare a far parte di una proprietà (attributo o associazione) Sintassi [min..max] Esempi Opzionale: [0] Obbligatorio: [1..1], [1] Singolo: [0..1] Multiplo: [0..*], [1..*], [*] Se una proprietà ha più valori si possono specificare proprietà aggiuntive come {ordered}, {unordered} La molteplicità di default di un attributo è [1] 8
9 Proprietà e codice Java Non vi è una diretta corrispondenza tra UML e codice, ma una analogia Ad esempio, le proprietà possono essere implementate come campi privati (a) o come operazioni (b) public class LineaOrdine private int quantita; private Denaro prezzo; private Ordine ordine; private Prodotto prodotto; (a) public class LineaOrdine private int quantita; private Prodotto prodotto; public int getquantita(){ } return quantita; public int setquantita(int q){ } this.quantita = q; public Money getprezzo(){ } return prodotto. getprezzo(). multiply(quantita); (b) 9
10 Operazioni Sintassi completa visibilità nome (lista-parametri): tipo-di-ritorno {stringa-di-proprietà} Esempio + saldo (data: Data): Denaro Elementi visibilità: (-) private, (#) protected, (+) public nome: nome dell operazione lista-parametri: direzione nome: tipo = default nome, tipo, valore di default sono analoghi a quelli degli attributi direzione: in, out, inout tipo-di-ritorno: è il tipo del valore restituito {stringa-di-proprietà}: alcune caratteristiche aggiuntive 10
11 Generalizzazione La generalizzazione modella il concetto di supertipo/sottotipo Ad esempio: Cliente/AziendaCliente AziendaCliente è un sottotipo di Cliente se tutte le istanze della prima classe sono anche istanze della seconda Dal punto di vista software La generalizzazione modella l ereditarietà per molti linguaggi a oggetti Un concetto di base per l ereditarietà è il principio di sostituibilità di Liskov: dovrebbe essere sempre possibile sostituire AziendaCliente in tutti i punti in cui il codice richiede Cliente e tutto dovrebbe continuare a funzionare Per ottenere sottoclassi sostituibili è bene fare riferimento al concetto di ereditarietà di interfaccia oppure a design patterns piuttosto che all ereditarietà di classe (Gamma, Helm, Johnson, Vlissides Design patterns Addison-Wesley 2002) 11
12 Dipendenza La classe A (client) dipende dalla classe B (supplier) se ogni modifica a B può implicare una modifica ad A A chiama metodi di B A usa B come tipo di un suo attributo A usa B come tipo in una sua operazione E importante minimizzare le dipendenze E fondamentale evitare dipendenze cicliche Molte relazioni UML implicano una dipendenza Un associazione navigabile (es: Ordine dipende da Cliente) Una generalizzazione (es: AziendaCliente dipende da Cliente) Gateway dei dati Offerte UI Prodotto Prodotto Gateway dei dati Prodotto 12
13 Tipologie di dipendenze UML <<call>> <<create>> <<derive>> <<instantiate>> <<permit>> <<realize>> <<refine>> <<substitute>> <<trace>> <<use>> La sorgente invoca un operazione della destinazione La sorgente crea un istanza della destinazione La sorgente è derivata dalla destinazione La sorgente è un istanza della destinazione. Poiché la sorgente è una classe, la destinazione deve essere una meta-classe La destinazione permette alla sorgente di accedere ai suoi campi privati La sorgente è un implementazione di un interfaccia della destinazione Raffinamento tra livelli semantici, ad esempio tra analisi e progettazione La sorgente è sostituibile alla destinazione Usata per tenere traccia di cose come i requisiti La sorgente richiede la destinazione per la sua implementazione 13
14 Vincoli Quando si definiscono diagrammi delle classi, di fatto si definiscono dei vincoli Ad esempio, un Ordine può essere creato solamente da un singolo Cliente I costrutti UML come attributi, associazioni, generalizzazioni permettono di catturare i vincoli più importanti Altri vincoli possono essere espressi in vari modi (tra parentesi graffe e all interno di note) In linguaggio naturale In qualche pseudo linguaggio In OCL (Object Constraint Language), che è basato sul calcolo dei predicati 14
15 Come usare i diagrammi delle classi Stabilire il livello di modellazione Concettuale (modellazione di concetti) Logica (modellazione dei software) Stabilire l interpretazione da dare alle classi UML Classi di analisi (modello nello spazio dei requisiti) Classi del software (modello nello spazio della soluzione) Procedimento Non utilizzare subito tutti i costrutti disponibili, ma concentrarsi in prima istanza su classi, associazioni, attributi, generalizzazioni, dipendenze, vincoli Fare diagrammi delle classi solamente per le cose rilevanti Non concentrarsi solamente sulla struttura, ma sviluppare in parallelo diagrammi delle classi e diagrammi comportamentali (diagrammi di sequenza) 15
16 Profili Un profilo è una personalizzazione del meta-modello UML E conveniente definire dei profili quando è rilevante introdurre concetti specifici di alcuni domini Tecnicamente un profilo UML è Un insieme di stereotipi Un insieme di vincoli Un insieme di tagged value (coppia attributo valore) Tipicamente i profili vengono utilizzati per creare nuovi linguaggi a partire da UML La WAE (Web Application Extension) è una personalizzazione di UML per la progettazione di applicazioni web 16
17 Visualizzare le responsabilità delle classi Vista -- visualizza i dati del modello Modello -- gestisce la logica del dominio e lo stato Controllore -- gestisce l'interazione col sistema 17
18 Aggregazione e composizione E importante comprendere la differenza tra aggregazione e composizione Nella composizione vale la regola della non condivisione Benché una classe possa essere componente di molte altre classi, ogni sua istanza può essere componente di un solo oggetto Inoltre nella composizione, se il tutto viene eliminato, anche i componenti devono essere eliminati Ad esempio, se si cancella un poligono, anche tutti i suoi punti devono essere eliminati -membri Club Persona * * {ordered} 1 1 Poligono Punto Cerchio 1 3..* -centro 18
19 Proprietà derivate Sono calcolate a partire da altri valori La sintassi prevede di anteporre al nome delle proprietà derivate il simbolo / Con un vincolo possiamo descrivere la semantica di derivazione PeriodoDiTempo -inizio: Data -fine: Data -/durata: Integer {durata = fine inizio} 19
20 Interfacce e classi astratte Una classe astratta è una classe che non può essere istanziata. Solo le sue sottoclassi concrete lo possono essere «interfaccia» Collection +equals() +add() Una classe astratta ha operazioni pubbliche astratte, cioè operazioni con la sola dichiarazione e senza implementazione Una classe astratta è indicata con il nome in corsivo o con l etichetta {abstract} Ordine -items [*] «interfaccia» List +get() AstractList +equals() +get() +add() Un interfaccia è una classe priva di implementazione, cioè tutte le sue caratteristiche sono astratte Le dipendenze dovrebbero sempre sussistere tra classe e interfacce e non direttamente tra classi Dipendenza (richiede l interfaccia) Implementazione (fornisce l interfaccia) ArrayList +get() +add() 20
21 Interfacce e classi astratte (cont) Le classi possono richiedere oppure fornire interfacce Una classe richiede un interfaccia se ha bisogno di una sua istanza per funzionare Una classe implementa un interfaccia se è sostituibile ad essa Ordine -items [*] List Collection ArrayList In UML2 ci sono due notazioni alternative come mostra l esempio a fianco Ordine -items [*] List ArrayList Collection 21
22 Principi di Progettazione del Software a.a Diagrammi di sequenza, package, deployment Prof. Università del Salento
23 Diagramma di sequenza Un diagramma di sequenza rappresenta il comportamento di un insieme di oggetti coinvolti in un singolo caso d uso Sono da utilizzare principalmente per rappresentare decisioni già prese sull implementazione di singoli casi d uso Non spiegano i dettagli degli algoritmi (meglio per questo utilizzare i diagrammi di attività) Se invece si è in fase di scelta e si vogliono vagliare differenti possibilità d interazione, è meglio utilizzare le schede CRC Prendiamo ad esempio lo scenario di calcolo del prezzo totale di un ordine commerciale 23
24 Implementazione scenario calcolo prezzo ordine: controllo centralizzato unordine unalineaordine unprodotto uncliente Utente calcolaprezzo getquantita getprodotto unprodotto getdettagliprezzo calcolaprezzobase calcolasconti getinfosconto 24
25 Implementazione scenario calcolo prezzo ordine: controllo distribuito unordine unalineaordine unprodotto uncliente Utente calcolaprezzo calcolaprezzo getprezzo(quantita) getvaloresconto(unordine) getvalorebase valorescontato 25
26 Creare e distruggere partecipanti unhandler interrogadatabase new unaquery new uncomandodb esegui risultati chiudi risultati 26
27 Cicli e condizioni Utente calcolaprezzo unordine unalineaordine unprodotto loop alt opt loop getquantita getprodotto unprodotto getdettagliprezzo Frame d interazione calcolaprezzobase 27
28 Messaggi sincroni e asincroni unoggetto unaltrooggetto Messaggio sincrono Messaggio asincrono 28
29 Diagramma di comunicazione E un particolare tipo di diagramma d interazione che mette in enfasi lo scambio di dati tra gli oggetti partecipanti In UML 1 era chiamato diagramma di collaborazione E equivalente a un diagramma di sequenza L ordine temporale viene specificato dalla numerazione dei messaggi E più comodo del diagramma di sequenza durante le riunioni informali (da disegnare alla lavagna) Il diagramma di comunicazione a lato è equivalente al diagramma di sequenza presentato precedentemente per la specifica dello scenario di calcolo del prezzo di un ordine, con controllo centralizzato 1.4: calcolaprezzobase 1.5: calcolasconti 1.1: getquantita 1.2: getprodotto unordine unalineaordine 1: calcolaprezzo 1.5.1: getinfosconti 1.3: getdettagliprezzo uncliente unprodotto 29
30 Diagramma di package Un package è un contenitore di elementi UML Tipicamente usiamo i package per illustrare sottosistemi In tal senso un package contiene sotto-package e classi Un package definisce un namespace e rappresenta i package Java o i namespace C++ e C# Una classe ha un solo package di appartenenza e deve avere un nome univoco in tale package Un package è denotato con un box con linguetta util util Data java util Data java::util::data 30
31 Diagramma di package (cont.) Le classi di un package possono essere pubbliche o private Una classe pubblica fa parte dell interfaccia del package Può essere usata dalle classi al di fuori del package Come si fa a stabilire quali classi devono appartenere al medesimo package? Classi coese Classi che condividono le medesime cause di cambiamento Classi che dovrebbero essere riusate insieme 31
32 Package e dipendenze Soprattutto se il sistema è complesso, è molto utile un diagramma dei package che documenta i package del sistema e le dipendenze tra di essi Presentazione conti correnti Interfaccia utente Presentazione fondi Tali dipendenze sono desunte dalle dipendenze tra le corrispettive classi Dominio conti correnti Dominio fondi Un package con tante dipendenze entranti deve necessariamente avere un interfaccia stabile Mapper dati conti correnti Mapper dati fondi Le dipendenze non sono transitive (fortunatamente) Database 32
33 Implementare package Può essere utile definire interfaccia e implementazione di una classe in package separati Nell esempio accanto la realizzazione indica che Gateway del database definisce un interfaccia implementata dagli altri gateway Applicazione Gateway del database Gateway Oracle Gateway MySQL Gateway SQLServer 33
34 Diagramma di deployment I diagrammi di deployment specificano il rilascio del sistema a livello fisico Il sistema è fatto di nodi, cioè di elementi che possono eseguire software Un dispositivo hardware (ad esempio un PC) è un nodo Un ambiente software (ad esempio un sistema operativo) è un nodo I nodi contengono artefatti e componenti (file eseguibili, file di dati, configurazioni, documenti HTML, XML, ecc.) Client con browser http Web server {OS = Linux} {web server = Apache} Application.war Client dedicato {OS = Windows} Java RMI Application server {OS = Linux} {EJB container= JBoss} {DBMS = Oracle} DCOM 34
SOMMARIO DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE. Introduzione. Proprietà e Operazioni. Proprietà e Operazioni
SOMMARIO Introduzione Proprietà e Operazioni DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica,
DettagliSOMMARIO. DIAGRAMMI DELLE CLASSI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Proprietà e Operazioni
SOMMARIO Introduzione Proprietà e Operazioni Concetti base e avanzati DIAGRAMMI DELLE CLASSI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica,
DettagliAlcuni diagrammi. OCL (Object Constraint Language)
UML e Java UML Alcune discipline ingegneristiche dispongono di validi mezzi di rappresentazione (schemi, diagrammi di prestazioni e consumi,...) Il software non dispone ancora di tecniche efficaci per
DettagliUML I diagrammi implementativi
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - UML I diagrammi implementativi E. TINELLI I diagrammi implementativi In UML 2.x esistono 3 tipi di
DettagliMicrosoft Visio 2002 UML Sergio Colosio
Microsoft Visio 2002 UML Sergio Colosio Casi d uso Prima di definire un caso d uso è necessario definire cosa s intende per scenario. Uno scenario è una sequenza di passi che descrivono l interazione tra
DettagliLaboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring
TITLE Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Introduzione alla notazione UML I diagrammi
DettagliDescrivono la collaborazione di un gruppo di oggetti per implementare collettivamente un comportamento
Diagrammi di interazione Diagrammi di sequenza Diagrammi di comunicazione (ex collaborazione) Diagrammi di interazione generale Diagrammi di temporizzazione Descrivono la collaborazione di un gruppo di
DettagliSOMMARIO DIAGRAMMI DI SEQUENZA
SOMMARIO DIAGRAMMI DI SEQUENZA INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica, A.A. 2011 2012 2 rcardin@math.unipd.it SOMMARIO DIAGRAMMI
DettagliLaboratorio di Sistemi Software UML per Design Patterns e Refactoring
TITLE Laboratorio di Sistemi Software UML per Design Patterns e Refactoring Luca Padovani (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Introduzione alla notazione UML I diagrammi Class Diagram Object
DettagliCorso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Introduzione ad UML E. TINELLI UML È un linguaggio (e notazione) universale per rappresentare qualunque
DettagliUML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009
UML Il linguaggio UML e ArgoUML 30/09/2009 Ingegneria dei sistemi software 2009/2010 manuel.comparetti@iet.unipi.it UML Unified Modeling Language una famiglia di notazioni grafiche standardizzate* orientata
DettagliProgrammazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
DettagliIl PROCESSO UNIFICATO
Corsi di laurea triennale in Ingegneria Informatica Corso di Ingegneria del software Il PROCESSO UNIFICATO Modellazione ed Implementazione di un Sistema Software per la gestione informatizzata di un ristorante
DettagliSOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria
Sapienza - Università di Roma Facoltà di Ingegneria Requisiti Corso di PROGETTAZIONE DEL SOFTWARE I (Corso di Laurea in Ingegneria Informatica) Prof. Giuseppe De Giacomo Canali A-L & M-Z A.A. 2006-07 Compito
DettagliIngegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15
Ingegneria del Software 4. Introduzione a UML Dipartimento di Informatica Università di Pisa A.A. 2014/15 e per i modelli iterativi analisi peliminare analisi e progettazione realizzazione Necessità di
DettagliProgrammazione ad oggetti
Programmazione ad oggetti OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l obiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale.
DettagliProgramma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC
Programma didattico Sviluppare Applicazioni Distribuite in ambiente Spring MVC Programma del corso 1.Progettazione e Sviluppo Database Relazionali Questa competenza permette di Progettare e Sviluppare
DettagliJava: Definire Classi e Creare Oggetti
Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 21 marzo 2014 Introduzione Programmare con gli Oggetti Un programma Java è costituito
DettagliLezione 5 Namespace e JavaDoc
Lezione 5 Namespace e JavaDoc Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Il namespace di Java: i package
DettagliProgrammazione orientata agli oggetti Classi astratte e interfacce
Programmazione orientata agli oggetti Classi astratte e interfacce Fondamenti di Informatica L-B 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma
DettagliDiagrammi di classe e sistemi orientati agli oggetti
Appendice D Diagrammi di classe e sistemi orientati agli oggetti ANDREA GINI Un effetto della strategia di incapsulamento è quello di spingere il programmatore a esprimere il comportamento di un sistema
DettagliA. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas
Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliAvete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION
1 Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION 2 Rivediamo questo esempio di activity diagram Università
DettagliLa classe java.lang.object
La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita
DettagliPrima di iniziare. Diamo qualche definizione :
1 Prima di iniziare. Diamo qualche definizione : Modello E/R (Entity/Relationship in italiano Entità- Relazione) : è un modello concettuale di dati e, come tale, fornisce una serie di strutture, detti
DettagliProgettazione concettuale usando il modello Entità-Relazione (ER)
Progettazione concettuale usando il modello Entità-Relazione (ER) 1 Introduzione alla progettazione delle basi di dati Progettazione concettuale (in questa fase si usa il modello ER) Quali sono le entità
Dettagli18 - Classi parzialmente definite: Classi Astratte e Interfacce
18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliCorso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)
Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami
DettagliUnified Modeling Language (UML)
Unified Modeling Language (UML) Richiami dei diagrammi di base per l utilizzo nel corso di RPPI Rielaborazione delle slide proposte da M. Cossentino 1 Perchè usare la progettazione visuale? Mary Loomis,
DettagliBasi di dati. Docente Prof. Alberto Belussi. Anno accademico 2009/10
Basi di dati Docente Prof. Alberto Belussi Anno accademico 2009/10 Informazioni generali sull organizzazione Insegnamento annuale su due semestri Orario I Semestre Lunedì 11.30 13.30 (aula B) Martedì 11.30
DettagliProgrammazione orientata agli oggetti La classe Object, metodi e classi final, this. Object
Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza
DettagliSAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica
SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corso di Laurea in Ingegneria Informatica ed Automatica Corso
DettagliCorso di Ingegneria del Software. Activity Diagram
Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it Diagrammi di attività Diagrammi di attività 1. La notazione 2. Uso dei diagrammi di attività 3. TOOL di supporto 4.
DettagliSQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:
SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
DettagliSAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica
SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corso di Laurea in Ingegneria Informatica ed Automatica Corso
DettagliIngegneria del Software
Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende
DettagliEsercizio: Lista Circolare
Esercizio: Lista Circolare Si realizzi in Java un gestore di una lista circolare. La dimensione minima della lista è 2 elementi (ed è anche la dimensione iniziale). La dimensione massima è 20 elementi.
DettagliPrincipi di Progettazione del Software a.a
Principi di Progettazione del Software a.a. 2017-2018 Fondamenti di Java Ing. Obiettivi della lezione Introduzione alla programmazione Object Oriented Ereditarietà Polimorfismo Interfacce Eccezioni 2 1
DettagliCorso Programmazione Java Standard
Corso Programmazione Java Standard Codice: ITJS0113 Durata: 40 ore Descrizione corso Questo corso fornisce una panoramica sulle varie sfaccettature della sintassi del linguaggio Java, integrata con mirate
DettagliUML. Cos è UML. Diagrammi UML. Analisi di un problema. Definizione dei requisic. Un esempio
Cos è UML UML Unified Modeling Language E un linguaggio di proge&azione, da non confondere con i linguaggi di programmazione (C, C++, Java, ) Fornisce una serie di diagrammi per rappresentare ogni Cpo
DettagliProgrammazione = decomposizione basata su astrazioni
Programmazione = decomposizione basata su astrazioni 1 Decomposizione in moduli necessaria quando si devono sviluppare programmi abbastanza grandi decomporre il problema in sotto-problemi i moduli che
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Oggetti e Classi Metodi Parametri Variabili di istanza Costruttori Esercizi Paradigma Object-Oriented Il paradigma OO
DettagliProgrammazione orientata agli oggetti La classe Object, metodi e classi final, this. Object
Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza
DettagliEreditarietà (ultima)
Ereditarietà (ultima) Classi astratte Un ibrido tra classi e interfacce Hanno alcuni metodi implementati normalmente, altri astratti Un metodo astratto non ha implementazione abstract class AccountTransaction...
DettagliCONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI
CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di
DettagliProgettazione del Software
Progettazione del Software Simulazione di esame Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Anno Accademico 2015/2016
DettagliCapitolo 6. Uso della gerarchia. c 2005 Pearson Education Italia Capitolo 6-1 / 125
Capitolo 6 Uso della gerarchia c 2005 Pearson Education Italia Capitolo 6-1 / 125 Sommario: Uso della gerarchia 1 Notazione UML per le classi 2 Introduzione alla gerarchia 3 Gerarchia e tipi La gerarchia
DettagliFondamenti di Programmazione Prof.ssa Elisa Tiezzi. Programmazione orientata a oggetti
Fondamenti di Programmazione Prof.ssa Elisa Tiezzi Programmazione orientata a oggetti 1 Programmazione OO Concetti base: dati istruzioni Dati: variabili tipi Istruzioni: istruzioni base strutture di controllo
DettagliLa programmazione ad oggetti (OOP)
Oggetti e Classi (CAP 10) Alberto Garfagnini, Marco Mazzocco Università degli studi di Padova 30 Novembre 2011 La programmazione ad oggetti (OOP) È un approccio concettuale alla programmazione (indipendente
DettagliUML. Unified Modeling Language (linguaggio di modellazione unificato) prof. Antonio Gervasi IIS «A.Meucci» Casarano
UML Unified Modeling Language (linguaggio di modellazione unificato) 1 Cos è UML L UML nasce negli anni 90 come unificazione di diverse metodologie di analisi. Si propone come strumento per facilitare
DettagliDesign Patterns. Introduzione 2. Introduzione 3
Design Patterns Introduzione Design patterns: factory, singleton, adapter, composite, decorator, observer Introduzione I Design Patterns sono stati applicati per la prima volta nell architettura Per costruire
Dettagli24 - Possibili approfondimenti
24 - Possibili approfondimenti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
DettagliPRIMO MODULO. DURATA: 80 ore CONTENUTI
0 PRIMO MODULO DURATA: 80 ore CONTENUTI 1. Introduzione alla programmazione a. Cosa è la programmazione strutturata b. Strutture dati c. Come si affronta una problematica da risolvere d. Quali sono i passi
DettagliDOCENTE PROF. ALBERTO BELUSSI. Anno accademico 2010/11
Basi di dati DOCENTE PROF. ALBERTO BELUSSI Anno accademico 2010/11 Informazioni generali sull organizzazione Insegnamento annuale su due semestri Orario I Semestre Lunedì 11.30 13.30 (aula B) Martedì 11.30
DettagliEreditarietà. Ereditarietà. Ereditarietà. Ereditarietà
L ereditarietà è il meccanismo attraverso cui viene implementata la relazione di specializzazione (is-a). L ereditarietà è il meccanismo attraverso cui una classe (derivata) eredita da un altra classe
DettagliSOMMARIO. DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Concetti base.
SOMMARIO Introduzione Concetti base INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 rcardin@math.unipd.it 2 SOMMARIO Introduzione
DettagliIndice. Prefazione. 3 Oggetti e Java 53
Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware
DettagliUML: DIAGRAMMA DI SEQUENZA
UML: DIAGRAMMA DI SEQUENZA UC n. 4: Basi di dati andrea.reale@unibo.it 2 UML e diagrammi di interazione Abbiamo visto il diagramma delle classi in UML Utilizzato per rappresentare strutturalmente il dominio
DettagliTipi di Dati Astratti
Tipi di Dati Astratti April 19, 2017 Dati e Tipi di Dato Tipo di dato: concetto di alto livello Macchina fisica: unico tipo di dato sequenze di bit Macchine Astratte: tipi di dato più complessi Tipo di
DettagliSOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base
SOMMARIO Introduzione Concetti base INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 2 rcardin@math.unipd.it SOMMARIO Introduzione
DettagliSISTEMI INFORMATIVI E DATABASE
SISTEMI INFORMATIVI E DATABASE SISTEMA INFORMATIVO AZIENDALE (S.I.) In una realtà aziendale si distingue: DATO elemento di conoscenza privo di qualsiasi elaborazione; insieme di simboli e caratteri. (274,
DettagliIl modello Entità/Relazioni (ER)
Il modello Entità/Relazioni (ER) Basi di dati 1 Il modello Entità/Relazioni (ER) Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Il modello Entità/Relazioni (ER) Basi di dati
DettagliProgrammazione con Java
Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:
DettagliClassi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++
Informatica 3 Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Lezione 7 -
Dettagli18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di
DettagliIntroduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1
ECDL - Database Introduzione European Computer Driving Licence - Modulo 5 - Database LEZIONE 1 Informazioni sul corso orario: Giovedì - 14.30-16.30 materiale: http://www.fotoboni.com/carlo/ docente: webmaster@fotoboni.com
DettagliUniversità di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi
Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A4_3 V2.1 Progettazione Metodi e Linguaggi Il contenuto del documento è liberamente utilizzabile dagli studenti, per
DettagliIntroduzione alla programmazione. Walter Didimo
Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata
DettagliEreditarietà e Polimorfismo
Ereditarietà e Polimorfismo Riusare il software A volte si incontrano classi con funzionalità simili In quanto sottendono concetti semanticamente vicini È possibile creare classi disgiunte replicando le
DettagliSOMMARIO CATEGORIE LOGICHE UNIVERSALI
SOMMARIO Basi teoriche per la progettazione di un sistema informativo Struttura ed organizzazione della progettazione Ciclo di vita di un sistema informativo CATEGORIE LOGICHE UNIVERSALI Individuano i
Dettagli14 - Metodi e Costruttori
14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
DettagliTecniche di sviluppo di progetti. Lezione 4: Diagrammi UML
Tecniche di sviluppo di progetti Lezione 4: Diagrammi UML Struttura di un progetto UML Un progetto software è composto da parti, dette diagrammi UML. Ogni diagramma UML contiene un tipo ben definito di
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada
DettagliPrincipi di Progettazione del Software a.a Introduzione al corso Prof. Luca Mainetti Università del Salento
Principi di Progettazione del Software a.a. 2016-2017 Prof. Università del Salento Il GSA Lab (www.gsalab.unisalento.it) Laboratorio di ricerca in ingegneria del software e sistemi interattivi La mission
DettagliModulo 16. Introduzione ai Design Patterns. Tutte le case assolvono alla medesima funzione: offrire uno spazio abitativo
Modulo 16 Introduzione ai Design Patterns Partiamo da un analogia Obiettivo: costruire una casa. Tutte le case sono simili, ma non uguali, cioè: Tutte le case assolvono alla medesima funzione: offrire
DettagliUML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato
Introduzione all UML UML come abbozzo UML - Unified Modeling Language E una famiglia di notazioni grafiche per la modellazione visuale del software Modellazione: rappresentazione di elementi che corrispondono
DettagliProgrammazione a Oggetti Modulo B
Programmazione a Oggetti Modulo B Design Pattern Dott. Alessandro Roncato 18/10/2011 Design Patters I Design Patters sono soluzioni di progettazione standard e ben collaudate che possono essere usate in
DettagliISO- OSI e architetture Client-Server
LEZIONE 9 ISO- OSI e architetture Client-Server Proff. Giorgio Valle Raffaella Folgieri giorgio.valle@unimi.it folgieri@dico.unimi.it Lez 10 modello ISO-OSI e architettura client-server 1 Nelle scorse
DettagliCORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION
CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION 0 DURATA 200 ore CONTENUTI Oracle PL/SQL Introduzione al PL/SQL Cenni su SQL con utilizzo di SQL*PLUS Configurazione ambiente Developer DB Classi,
DettagliIntroduzione alla OOP Object Oriented Programming
Introduzione alla OOP Object Oriented Programming Programmazione Orientata agli Oggetti I livelli dei linguaggi livelli di tensione porte logiche codice binario linguaggio assembler linguaggi procedurali
DettagliLezione 13 Classi interne
Lezione 13 Classi interne Questa lezione chiude la parte del corso più squisitamente dedicata alla programmazione orientata agli oggetti con Java. Sarà esaminato un nuovo tipo di classi, finora taciuto,
DettagliWeb Application Engineering
Web Application Engineering analisi del dominio cristian lucchesi IIT-CNR Pescara, 15-16 Maggio 2007 Alei Ud A 1 Analisi del dominio l'obiettivo è di arrivare alla definizione sufficientemente rigorosa
DettagliINGEGNERIA DEL SOFTWARE
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea magistrale in Ingegneria informatica Anno accademico 2016/2017-1 anno INGEGNERIA DEL SOFTWARE 9 CFU - 1 semestre Docente titolare
DettagliOggetto software. stati o proprietà (variabili) comportamenti o metodi (funzioni)
Le classi Oggetto software stati o proprietà (variabili) comportamenti o metodi (funzioni) Bicicletta cambia rapporto 24 kmh rallenta accelera 90 ped/min quinto rapporto istanze e membri di classe Nel
DettagliPrincipi di Progettazione del Software a.a Introduzione al corso Prof. Luca Mainetti Università del Salento
Principi di Progettazione del Software a.a. 2017-2018 Prof. Università del Salento Il GSA Lab (www.gsalab.unisalento.it) Laboratorio di ricerca in ingegneria del software e sistemi interattivi La mission
DettagliI livelli dei linguaggi. Introduzione alla OOP Object Oriented Programming. La programmazione procedurale separa il calcolo dalla memoria
Introduzione alla OOP Object Oriented Programming Programmazione Orientata agli Oggetti I livelli dei linguaggi livelli di tensione porte logiche codice binario linguaggio assembler linguaggi procedurali
DettagliSTRUTTURE DATI: OLTRE GLI ARRAY LISTE
STRUTTURE DATI: OLTRE GLI ARRAY le strutture dati progettate per ospitare una collezione di elementi, sono variazioni di array Ma l'array ha dimensione fissa anche in Java determinata a priori, in linguaggi
DettagliElementi di UML (3) Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005
Elementi di UML (3) Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio di Sistemi e Processi Organizzativi UML
DettagliDefinizione di metodi in Java
Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un
DettagliFONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Prof. Zambonelli, Ing. Cabri, Ing. Denti, Ing. Andrea Aime Zambonelli,
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 08 Ereditarietà A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Ereditarietà 1 Contenuti!Livelli di astrazione
DettagliProgrammazione orientata agli oggetti Classi, package e file system. Package
Programmazione orientata agli oggetti Classi, package e file system 1 Classi e file Java impone delle regole molto precise di corrispondenza tra classi e file In generale, le regole sono: Ogni classe deve
DettagliArchitettura Client-Server. In a nutshell
Architettura Client-Server In a nutshell Architettura Client-Server Modello di interazione tra processi software processo CLIENT richiede servizi può interagire con più processi server tipicamente dedicato
DettagliAnalisi e diagrammi di struttura: esercizi
Analisi e diagrammi di struttura: esercizi Angelo Di Iorio A.A. 2013-2014 Ingegneria del Software () Analisi e diagrammi di struttura: esercizi A.A. 2013-2014 1 / 18 Modello di dominio e classi di analisi
DettagliEsercitazione di Basi di Dati
Esercitazione di Basi di Dati Corso di Fondamenti di Informatica 29 Aprile 2004 Da Access a Protégé Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza 1035
DettagliProgettazione del Sofware
Corso Serale Progettazione del Sofware Perché Modellare un Sistema Necessità di realizzare un artefatto, indipendentemente dalla sua dimensione e settore di interesse (una casa, un particolare macchinario,
Dettagli