Università degli Studi di Udine

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Università degli Studi di Udine"

Transcript

1 Università degli Studi di Udine Facoltà di Scienze Matematiche Fisiche e Naturali a.a. 2004/2005 Laboratorio di Progettazione ed Analisi di Software Orientato agli Oggetti Gianluca Demartini 70152

2 Indice 1 Introduzione Il sistema Electronic Journal Casi d uso Patterns generate architectures Il progetto di EJ Diagramma delle classi Diagrammi di sequenza Diagrammi degli oggetti Conclusioni Bibliografia

3 1 Introduzione In questa relazione verrà descritta l idea di un nuovo sistema di pubblicazione di articoli scientifici [1] ed in seguito verrà presentato, utilizzando le tecniche descritte in [2], un progetto orientato agli oggetti di una possibile implementazione del sistema descritto, utilizzando i Design patterns descritti in [3] e le indicazioni presenti in [4]. 2 Il sistema Electronic Journal Questo nuovo sistema si propone di sostituire il metodo attualmente utilizzato per la pubblicazione degli articoli scientifici noto con il nome di Peer review. In questo nuovo sistema, denominato Electronic Journal, ogni articolo è immediatamente pubblicato dopo il suo invio, senza un processo di revisione. Ogni articolo ha un certo punteggio (dato dalla sua accuratezza, comprensibilità, grado di innovazione, ecc.) che inizialmente vale zero e che viene dinamicamente aggiornato in base ai giudizi dei suoi lettori. Una persona che si iscrive al giornale è un lettore, uno scrittore o entrambe le cose, e possiede anch esso un proprio punteggio (se il sottoscrittore è sia un lettore che uno scrittore avrà due diversi punteggi). Ogni entità con un punteggio (autori, lettori, articoli) ha anche un valore che indica quanto è saldo ed affidabile il suo punteggio (ovvero quanto il suo punteggio è soggetto a cambiamenti repentini nel tempo). Per ulteriori informazioni, e per meglio comprendere quanto segue, si veda [1]. 2.1 Casi d uso Per meglio comprendere il funzionamento del sistema EJ, presentiamo un diagramma di caso d uso. 3

4 E possibile notare l attore generico User, che rappresenta un utente del sistema, che può effettuare le normali operazioni di log in e log off dal sistema. Un utente può essere di tipo Reader, il quale può giudicare un Paper attraverso l espressione di un voto, o di tipo Author che può pubblicare un Paper in modo che venga letto. 3 Patterns generate architectures In [2] viene descritto una metodologia per presentare un progetto orientato agli oggetti in modo tale da far capire a chi lo legge non soltanto il come deve funzionare il sistema progettato, ma anche il perché sono state intraprese certe scelte dai progettisti. A questo scopo viene richiesto ai progettisti di utilizzare una struttura per descrivere le motivazioni che hanno portato alla scelta di utilizzare un certo design pattern [3]. La struttura da utilizzare per descrivere la scelta di un pattern è la seguente: Pattern usato Precondizioni: Operazioni che è necessario svolgere prima di applicare il pattern, ad esempio l elenco dei pattern che bisogna utilizzare prima di questo. Serve per dare una sequenza corretta all applicazione dei pattern al progetto. Problema: Breve descrizione del problema a cui si vuole applicare il pattern. Serve per far capire al lettore se il pattern è applicabile in questa situazione. Vincoli: Descrizione dei conflitti presenti per decidere che azioni intraprendere per risolvere il problema. Soluzione: Spesso accompagnata da un diagramma che mostra la trasformazione di un sistema che non soddisfa il pattern in uno che lo soddisfa. Al termine della descrizione si otterrà così l intero progetto finale, ed il lettore avrà avuto modo di capire come il sistema deve funzionare ed il perché il sistema è stato progettato in quel modo. 4 Il progetto di EJ Mostriamo ora, riguardo al sistema Electronic Journal precedentemente descritto, come ottenere il diagramma delle classi utilizzando le indicazioni fornite in [2]. Mostriamo inoltre i diagrammi di sequenza ed i diagrammi degli oggetti. 4.1 Diagramma delle classi Le principali entità del sistema sono i lettori, gli autori (che possono essere anche lettori), gli articoli, ed i giudizi che i lettori danno agli articoli letti. Avremo quindi un diagramma iniziale di questo tipo. 4

5 In questo diagramma possiamo notare la classe System che rappresenta il sistema che si sta modellando. Contiene un attributo name che rappresenta il nome del singolo sistema. Contiene poi dei metodi utili alla creazione ed autenticazione degli utenti (di vari tipi) del sistema. La classe Person modella l entità utente del sistema e quindi contiene i suoi dati anagrafici ed i relativi metodi per modificare ed accedere a questi dati. Le sottoclassi di Person ereditano i suoi attributi ed i suoi metodi. Nelle varie classi, per leggibilità, non sono stati indicati tutti i metodi getters e setters, che possono essere facilmente ricavati in base ai nomi degli attributi delle classi. Le classi Reader ed Author modellano i due diversi tipi di utenti che il sistema può avere, quindi, oltre agli attributi di anagrafica comuni per tutti i tipi di utenti, queste classi avranno gli attributi relativi ai punteggi dell utente all interno del sistema e i metodi che corrispondono alle azioni che un lettore od un autore possono effettuare all interno del sistema (e quindi votare o pubblicare un articolo rispettivamente). L eredità è di tipo overlapped in quanto un sottoscrittore della rivista può essere sia un lettore che un autore, e quindi dovrà avere dei punteggi diversi per i due casi. E altresì presente la classe Paper che rappresenta gli articoli pubblicati e letti dagli utenti. Questa classe contiene solamente le informazioni relative all articolo (quindi titolo, testo, ) e quelle relative ai punteggi dati dai lettori ad un dato articolo. 5

6 Infine è presente la classe Judgment che rappresenta tutte le votazioni che vengono espresse durante la vita del sistema da parte dei lettori nei confronti degli articoli presenti. La classe Judgment non è essenziale per il funzionamento del sistema, ma è preferibile mantenere traccia di tutti i giudizi espressi nel tempo dai lettori. E comunque richiesto un certo grado di elasticità nel sistema in modo da permettere un eventuale facile modifica delle formule utilizzate per il calcolo dei punteggi delle varie entità. A questo scopo introduciamo il pattern Bridge. Pattern Bridge Precondizioni: Avere una rappresentazione astratta dei componenti del sistema. Si vuole separare l astrazione dalla sua implementazione concreta per far si che le due parti possano variare indipendentemente. Problema: Si desidera che le formule per il calcolo dei punteggi (score, steadiness, ) possano essere facilmente modificabili nel tempo. E necessario quindi che la parte del sistema che le implementa sia separata dalla parte che descrive le entità (lettori, autori, giudizi, ) astratte del sistema. Vincoli: - Soluzione: Costruiamo una classe astratta Implementation con più sottoclassi concrete che rappresentano le varie possibili implementazioni concrete delle formule utilizzate dal sistema per il calcolo dei punteggi delle entità. Leghiamo la classe Implementation con la classe System e aggiungiamo a System un attributo impl che farà da riferimento all implementazione utilizzata. Otteniamo quindi il seguente diagramma: 6

7 Abbiamo indicato con il colore blu le modifiche rispetto al precedente diagramma delle classi (nuove classi e nuovi metodi ed attributi in classi già presenti precedentemente). 7

8 A questo punto si presenta la necessità che la classe System abbia un unica istanza durante la vita del sistema. Pattern Singleton Precondizioni: La classe System deve essere collegata all implementazione delle formule per il calcolo dei punteggi. Problema: Non è desiderabile che la classe System abbia più istanze in quanto il progetto descrive un singolo sistema di giornale elettronico con i propri lettori, autori ed articoli e non una serie di sistemi diversi tra loro. Vincoli: Se si vogliono realizzare sistemi diversi con lettori, autori ed articoli in comune, è possibile aver bisogno di una classe System con diverse istanze concrete. Se invece si vuole descrivere un unico sistema di giornale elettronico con i propri lettori, autori ed articoli è necessario che la classe System abbia un unica istanza. Soluzione: La classe System avrà un attributo in più di nome instance e di tipo System, ed un metodo getinstance() che restituirà un oggetto di tipo System. 8

9 9

10 Infine si vuole che, ogni volta che un lettore legge e valuta un articolo, vengano aggiornati i punteggi dell articolo, dei suoi autori, del lettore e dei precedenti lettori di quell articolo. Pattern Observer Precondizioni: - Problema: Il sistema deve provvedere ad aggiornare i punteggi delle varie entità ogni qualvolta un lettore legge e valuta un articolo. Sarà quindi necessario modificare i valori degli attributi score, steadiness, ecc. nelle varie istanze degli oggetti Reader, Author e Paper. Vincoli: Se si inserisce il pattern Observer sarà necessario tenere traccia di tutti i lettori che nel tempo hanno letto un certo articolo (vista la presenza della classe Judgment è possibile sfruttare quella). Come vantaggio però, con il pattern Observer gli oggetti sono responsabili solamente del loro proprio stato interno, ed i cambiamenti di stato di un oggetto vengono riflessi su di un altro oggetto senza che questo sia fortemente legato al primo. Se non si utilizza il pattern Observer sarà necessario avere una procedura che esegue tutte le chiamate necessarie alla modifica dei punteggi delle varie entità. Soluzione: Vengono aggiunti alla classe Paper i metodi registerreader(), registerauthor(), removereader(), removeauthor(), notifyreader(), notifyauthor(), ed alle classi Reader ed Author un metodo update(). 10

11 11

12 Le classi Observer, ReaderSubject e AuthorSubject sono classi astratte che contengono i metodi del pattern Observer e quindid ne indicano l utilizzo all interno del progetto. I metodi registraauthor() e registrareader() provvederanno a mantenere traccia delle associazioni tra articoli e lettori e tra articoli ed autori mediante l utilizzo del database. In questo modo è anche facilmente gestibile il caso di un articolo con più di un autore, in quanto sarà possibile notificare un numero maggiore di uno di autori in caso di lettura di un loro articolo nello stesso modo in cui è possibile notificare un numero maggiore di uno di precedenti lettori di quell articolo. A questo punto aggiungiamo i colori alle classi del diagramma secondo le indicazioni di [4]: Le classi principali sono Reader, Author e Paper in quanto rappresentano gli attori del sistema, le entità più importanti. Per questo motivo il loro colore è il giallo. La classe System è di colore verde in quanto è una classe di infrastruttura che serve a contenere i metodi di autenticazione utenti e non ha un ruolo primario nel funzionamento del sistema. La classe Person è verde in quanto contiene solamente le informazioni comuni per tutti i tipi di utenti ed è quindi soltanto un anagrafica utenti e quindi una classe secondaria. Le classi Observer, ReaderSubject e AuthorSubject sono classi astratte, relative al pattern Observer, i cui metodi verranno implementati nelle relative sottoclassi, e, non avendo un ruolo attivo nel funzionamento del sistema, anche il loro colore è verde. La classe Judgment è di colore blu in quanto la sua presenza, non essenziale per il funzionamento del sistema, serve solamente a contenere tutti i giudizi espressi dai lettori e quindi è una classe di descrizione che contiene aggregati di dati semplici. La classe Implementation, invece, è di colore arancio in quanto è un punto di estensione del sistema. Da questa classe astratta è possibile definire delle sottoclassi che definiscono diversi funzionamenti del sistema attraverso la determinazione delle formule utilizzate da esso. Le sottoclassi di Implementation sono di colore verde in quanto contengono solamente la definizione dei metodi utilizzati dagli attori principali del sistema (gialli) e può quindi essere vista come una classe di infrastruttura. 12

13 13

14 4.2 Diagrammi di sequenza Descriviamo le situazioni di Pubblicazione di un articolo da parte di un autore e di Lettura e giudizio di un articolo da parte di un lettore. Pubblicazione di un articolo da parte di un autore In sequenza, un utente, attraverso l interfaccia grafica del sistema, farà si che venga chiamato il metodo submit() della classe Author, il quale provvederà a creare una nuova istanza della classe Paper. Dopo queste operazioni, l autore provvederà a registrarsi presso l istanza di Paper in modo da ricevere la notifica di quando i punteggi dell articolo cambieranno (Observer). 14

15 Lettura e giudizio di un articolo da parte di un lettore Dopo che il lettore r1 ha votato attraverso il metodo vota(), chiamato dall interfaccia grafica attraverso un comando dell utente, verrà generata una nuova istanza della classe Judgment in modo da poter tener traccia di tutti i voti espressi dai lettori nel tempo. A questo punto r1 provvederà a chiamare i metodi della classe Implementation (che polimorficamente chiamerà i metodi concreti di una delle sottoclassi) che servono a modificare i punteggi dell articolo p1 che il lettore r1 ha letto. Questi metodi modificheranno i valori dei punteggi di p1 ed in seguito chiameranno i metodi di notifica di p1, i quali provvederanno ad informare l autore ed i precedenti lettori di p1 che i loro punteggi sono cambiati. (Observer) Ora sia a1 (che è l autore di p1) che r2 (che è un precedente lettore di p1) provvederanno a chiamare i metodi dell implementazione che servono ad aggiornare i propri punteggi. Infine il lettore r1 chiamerà anch esso i metodi dell implementazione che servono ad aggiornare i propri punteggi e provvederà a registrarsi presso p1 in modo tale da essere notificato successivamente tutte le volte che un altro lettore leggerà l articolo. Può sembrare che gli attori del sistema (lettori, autori, articoli) chiamino direttamente i metodi della classe Implementation pur non avendo associazioni dirette con essa nel diagramma delle classi. La Legge di Demeter dice che, per un metodo m di un oggetto x, il destinatario dei messaggi deve essere x, un argomento di m, un oggetto riferito da un attributo di x, un oggetto creato da m oppure un oggetto riferito da una variabile globale. In questo caso, la legge è rispettata in quanto le informazioni riguardo l implementazione usata, e quindi i metodi concreti che vengono chiamati, sono presenti nella classe System che ha un unica istanza nel corso della vita del sistema. Questa istanza può essere vista come una variabile globale visibile in ogni momento in tutte le classi. Per questo motivo tutti gli attori del sistema (lettori, 15

16 autori, articoli) potranno chiamare facilmente i metodi dell implementazione attraverso l istanza di System. Ad esempio in questo modo: System.getIstance().impl.paper_score(0.2); Reader ed Author dovrebbero quindi essere associati alla classe System, ma questa associazione è stata lasciata alla classe Person che è padre di entrambe. 4.3 Diagrammi degli oggetti Mostriamo ora un esempio, con i vari passi successivi nel tempo, di un possibile funzionamento del sistema progettato, con dei diagrammi degli oggetti, che presentano delle concrete istanze degli oggetti utilizzati nel progetto, con i relativi valori degli attributi. Come prima cosa un autore a1 provvederà a pubblicare un certo articolo p1 attraverso il metodo submit() della classe Author. Indichiamo in rosso l azione svolta in questo istante di tempo. A questo punto supponiamo che un lettore r1 legga e giudichi p1 con un voto pari a 0.8 (in una scala da 0 a 1) utilizzando il metodo vote() della classe Reader. In verde indichiamo le istanze che subiscono una variazione dei valori degli attributi. In questo caso vengono modificati i valori di score e di steadiness di p1 e di a1 in base al giudizio espresso da r1. Successivamente verranno modificati, di conseguenza, i punteggi di r1. Essendo il 16

17 primo voto espresso riguardo a p1, lo score di r1 diverrà 1 in quanto si considera il suo giudizio senza errori. I voti del lettore r1 sono stati aggiornati in seguito al voto da lui espresso che, essendo il primo, si rivela corretto. Ora supponiamo che un altro lettore r2 legga e giudichi p1 con un voto pari a 0.2 (in una scala da 0 a 1) utilizzando il metodo vote() della classe Reader. Ora vengono modificati, analogamente a prima, i valori di score e di steadiness di p1 e di a1 in base al giudizio espresso da r2. Infine sarà necessario aggiornare i punteggi di r1 in qualità di lettore precedente dell articolo p1 e di r2 in qualità di lettore attuale dell articolo p1. 17

18 I punteggi di r1 e di r2 sono stati modificati secondo le formule. A questo punto ci fermiamo con l esempio elencando alcune possibili situazioni che si potrebbero verificare a questo punto. Potrebbe succedere che un terzo lettore r3 giudichi p1, oppure che a1 pubblichi un altro articolo che poi i vari lettori potrebbero giudicare. Oppure un nuovo autore potrebbe comparire e pubblicare dei nuovi articoli che r1 ed r2 potrebbero leggere e giudicare. 18

19 5 Conclusioni In questa relazione è stata dapprima descritta l idea di un nuovo sistema di pubblicazione di articoli scientifici, presentato in [1], in seguito è stato presentato, utilizzando le tecniche descritte in [2], un progetto orientato agli oggetti per una possibile implementazione del sistema utilizzando i Design patterns descritti in [3] e le indicazioni descritte in [4]. Il progetto è stato sviluppato ragionando in termini di software orientato agli oggetti generico, senza riferirsi ad un particolare linguaggio di programmazione. Ad esempio certi linguaggi potrebbero non permettere l eredità di tipo sovrapposto che è stata utilizzata tra la classe Person e le classi Reader e Author. Un successivo sviluppo di questo progetto dovrebbe essere l integrazione del sistema con un datatabase e le relazioni che intercorrono tra i due. Il database servirà a contenere le informazioni rilevanti per il sistema (riguardo a lettori, autori ed articoli), le informazioni riguardo a tutti i giudizi espressi nel corso della vita del sistema e tutti i legami articoli/autori e articoli/lettori al fine del corretto funzionamento del pattern Observer utilizzato nel progetto. Un ulteriore sviluppo di questo progetto potrebbe essere l utilizzo di agenti al fine di meglio comprendere il funzionamento del sistema e di scoprire che comportamenti vengono premiati e quali vengono penalizzati. 19

20 Bibliografia [1] S. Mizzaro. Quality Control in Scholarly Publishing: A New Proposal, Journal of the American Society for Information Science and Technology, 54(11): , [2] K. Beck e R. Johnson, Patterns generate architectures. ECOOP 94, LNCS 821, Conference Proceedings (pp ), Berlin, Heidelberg: Springer-Verlag. [3] E. Gamma, R. Helm, R. Johnson e J. Vlissides, Design Patterns Elements of reusable Objectoriented software Addison Wesley, [4] C. Pescio, UML: Manuale di stile, Eptacom,

DIAGRAMMI DEI PACKAGE

DIAGRAMMI DEI PACKAGE ESERCITAZIONE ERRORI COMUNI REV. DI PROGETTAZIONE INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 UML Versione di UML?

Dettagli

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

Modulo 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

Dettagli

Introduzione alla programmazione orientata agli oggetti (prima parte) Rel 1.0

Introduzione alla programmazione orientata agli oggetti (prima parte) Rel 1.0 Introduzione alla programmazione orientata agli oggetti (prima parte) Rel 10 a cura del prof Francesco Tappi Il paradigma orientato agli oggetti implica lo sviluppo di unità di programmazione attive, chiamate

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 C1 Incapsulamento e tecniche OOP 1 Prerequisiti Tecnica elementare della programmazione Principi di programmazione OOP Metodologie di progettazione software 2 1 Introduzione

Dettagli

Progettazione Object-Oriented

Progettazione Object-Oriented Progettazione Object-Oriented Generalità, Relazione fra OOA e OOD Concetti di base: Classi e Oggetti, Relazioni fra oggetti, Ereditarietà e Polimorfismo La specifica del Progetto: notazione UML Una metodologia

Dettagli

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura: Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata

Dettagli

Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Catia Trubiani. Laboratorio di Ingegneria del Software a.a Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM) - Università degli Studi

Dettagli

OO design pattern. Design pattern: motivazioni

OO design pattern. Design pattern: motivazioni Design pattern: motivazioni OO design pattern La progettazione OO è complessa Progettare sw OO riusabile ed evitare (o, almeno, limitare) la riprogettazione è ancor più complesso I progettisti esperti

Dettagli

Microsoft Visio 2002 UML Sergio Colosio

Microsoft 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

Dettagli

Diagramma delle classi

Diagramma delle classi Diagramma delle classi Questo diagramma (mostrato nella pagina successiva) costruito utilizzando lo standard UML mostra le relazioni che ci sono fra le varie classi della nostra applicazione, mostrando

Dettagli

Use Case Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Use Case Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM)- Università degli Studi

Dettagli

Design Patterns. Introduzione 2. Introduzione 3

Design 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

Dettagli

Oggetti. La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto.

Oggetti. La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto. Classi e oggetti Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto. OOP Vantaggi facilità di lettura e di comprensione

Dettagli

Corso di Ingegneria del Software. Casi d uso

Corso di Ingegneria del Software. Casi d uso Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it 1. 2. 2.1 Il linguaggio dei casi d uso 2.2 Esempi 3. Bibliografia Sommario 1. 2. 2.1 Il linguaggio dei casi d uso

Dettagli

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. 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),

Dettagli

Si consideri il caso di studio 2, Grande distribuzione, e in particolare la modifica dei prezzi.

Si consideri il caso di studio 2, Grande distribuzione, e in particolare la modifica dei prezzi. Corso di Ingegneria del software - Quinto Appello, 20 luglio 2009 C, Montangero, L. Semini Dipartimento di Informatica, Università di Pisa a.a. 2008/09 La prova si svolge a libri chiusi (non è permessa

Dettagli

INFORMATICA OOP Relazioni tra classi Roberta Gerboni

INFORMATICA OOP Relazioni tra classi Roberta Gerboni 2015 - Roberta Gerboni Relazione di associazione E possibile legare varie classi presenti in un progetto con una relazione di associazione. Una associazione individua una connessione logica tra classi

Dettagli

Poiché è necessario che le selezioni si aggiornino automaticamente, occorre che queste siano notificate di ogni cambiamento pattern observer! Altro?

Poiché è necessario che le selezioni si aggiornino automaticamente, occorre che queste siano notificate di ogni cambiamento pattern observer! Altro? Processo di Sviluppo Design Requisiti del cliente Analisi del Dominio Analisi dei Rischi (Parziale) Analisi dei Requisiti Casi d uso Scenari Diagramma statico delle classi Design Ingegneria del Software

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 A1 Gli oggetti reali 1 Prerequisiti Corso programmazione base Compito di una funzione Strutture di controllo 2 1 Introduzione Il mondo reale è popolato di oggetti, ciascuno

Dettagli

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

UML 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

Dettagli

Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola Sicurezza e Permission in Android

Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola Sicurezza e Permission in Android Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola 633688 Sicurezza e Permission in Android La sicurezza al giorno d oggi è uno degli aspetti più importanti dell informatica!

Dettagli

Iterator pattern - Step 0

Iterator pattern - Step 0 Design Pattern Riferimenti Gamma, Helm, Johnson & Vlissides (1994). Design Patterns (the Gang of Four book). Addison-Wesley. ISBN 0-201-63361-2 Steven J. Metsker. Design pattern in Java. Manuale pratico.

Dettagli

Il PROCESSO UNIFICATO

Il 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

Dettagli

Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa

Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa È un classificatore di cui si vede la struttura interna, data in termini di parti, porti e connettori

Dettagli

Model-View- Controller

Model-View- Controller Model-View- Controller A. FERRARI MVC Il Model-View-Controller è un pattern architetturale molto diffuso nello sviluppo di sistemi software, in particolare nell'ambito della programmazione orientata agli

Dettagli

Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami.

Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami. Consideriamo l esercizio assegnato la scorsa lezione per rappresentare il libretto di uno studente. Per memorizzare i dati si sono utilizzati tre array: char* nomiesami[max ESAMI] Array dei nomi degli

Dettagli

Ingegneria del Software

Ingegneria 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

Dettagli

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Analisi e Progettazione OO Origini Le metodologie ad oggetti nascono negli anni 70 ma si affermano solo negli anni 80 grazie alla nascita dei linguaggi di programmazione ad oggetti

Dettagli

Laboratorio di Sistemi Software Progetto Pattern Generator Specifica iniziale

Laboratorio di Sistemi Software Progetto Pattern Generator Specifica iniziale TITLE Laboratorio di Sistemi Software Progetto Pattern Generator Specifica iniziale Luca Padovani (A-L) Riccardo Solmi (M-Z) 1 Definizione del problema Pattern Generator Libreria Java per definire dei

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione 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

Dettagli

La progettazione concettuale

La progettazione concettuale PROGETTAZIONE La progettazione concettuale Sintesi tra la visione degli utenti e la visione dei progettisti. I progettisti devono essere certi di aver compreso esattamente e completamente le esigenze degli

Dettagli

Compito di Fondamenti della Programmazione: Metodi Evoluti - A.A Prova di esame del 24 settembre 2015

Compito di Fondamenti della Programmazione: Metodi Evoluti - A.A Prova di esame del 24 settembre 2015 Compito di Fondamenti della Programmazione: Metodi Evoluti - A.A. 2014-15 Prova di esame del 24 settembre 2015 Esercizio 1) [10 punti] Marcare le affermazioni che si ritengono vere. Ogni manda può avere

Dettagli

A. Ferrari sistemi informativi e sistemi informatici

A. Ferrari sistemi informativi e sistemi informatici sistemi informativi e sistemi informatici informatica sistema informativo e sistema informatico o sistema informativo o patrimonio di informazioni o generate o elaborate o e memorizzate dai processi o

Dettagli

SOMMARIO DESIGN PATTERN

SOMMARIO DESIGN PATTERN INTRODUZIONE AI DESIGN PATTERN 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 DESIGN PATTERN

Dettagli

Per capire cos è un oggetto prendiamo spunto dalla vita reale: un oggetto è un automobile, un computer, una casa, e così via

Per capire cos è un oggetto prendiamo spunto dalla vita reale: un oggetto è un automobile, un computer, una casa, e così via Introduzione alle Classi / Oggetti Per capire cos è un oggetto prendiamo spunto dalla vita reale: un oggetto è un automobile, un computer, una casa, e così via Un oggetto può essere definito elencando

Dettagli

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 11 Array A. Miola Dicembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Array 1 Contenuti Il problema degli studenti da promuovere

Dettagli

Design Principle. immagini da SOLID Motivational Posters, by Derick Bailey

Design Principle. immagini da SOLID Motivational Posters, by Derick Bailey Design Pattern Design Principle immagini da SOLID Motivational Posters, by Derick Bailey Single Responsibility Principle Single Responsibility Principle A class should have only one reason to change. Open

Dettagli

DATABASE - MODELLO E-R ENTITÀ E RELAZIONI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL 2, HOEPLI. Informatica

DATABASE - MODELLO E-R ENTITÀ E RELAZIONI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL 2, HOEPLI. Informatica DATABASE - MODELLO E-R ENTITÀ E RELAZIONI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL 2, HOEPLI Informatica Introduzione L astrazione permette di creare dei modelli su cui vengono costruite

Dettagli

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti Microsoft Access Nozioni di base Contatti: Dott.ssa Silvia Bonfanti silvia.bonfanti@unibg.it Introduzione In questa lezione vedremo lo strumento Microsoft Access ed impareremo come realizzare con esso

Dettagli

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13 UML Introduzione a UML Linguaggio di Modellazione Unificato Corso di Ingegneria del Software Anno Accademico 2012/13 1 Che cosa è UML? UML (Unified Modeling Language) è un linguaggio grafico per: specificare

Dettagli

Ingegneria del Software L-A

Ingegneria del Software L-A Ingegneria del Software L-A Corso di Laurea Triennale in Ingegneria Informatica III anno A.A. 2009/2010 Docente: Giuseppe Bellavia Collaboratore: Gabriele Zannoni Premessa Una domanda fondamentale Che

Dettagli

oggetti, permettono di ridurre i costi di sviluppo, poiché cercano di riusare insiemi di classi e di produrre sistemi più facili da evolvere.

oggetti, permettono di ridurre i costi di sviluppo, poiché cercano di riusare insiemi di classi e di produrre sistemi più facili da evolvere. Lo sviluppo di sistemi orientati agli oggetti mira a descrivere un software nelle sue diverse fasi (analisi, progettazione, codifica) in termini di classi. Tali sistemi sono documentati focalizzando sulle

Dettagli

Introduzione alla programmazione Object Oriented. Luca Lista

Introduzione alla programmazione Object Oriented. Luca Lista Introduzione alla programmazione Object Oriented Luca Lista Concetti base del software OO Classi e oggetti Incapsulamento Relazione di ereditarietà Polimorfismo Cos è un Oggetto? Definizione da vocabolario:

Dettagli

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

Laboratorio 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

Dettagli

Design Patterns. fonti: [Gamma95] e [Pianciamore03] Autori: Giacomo Gabrielli, Manuel Comparetti

Design Patterns. fonti: [Gamma95] e [Pianciamore03] Autori: Giacomo Gabrielli, Manuel Comparetti Design Patterns fonti: [Gamma95] e [Pianciamore03] Autori: Giacomo Gabrielli, Manuel Comparetti 1 Definizione Ogni pattern descrive un problema che si presenta frequentemente nel nostro ambiente, e quindi

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 9 Alberto Ceselli ceselli@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 01 Aprile 2008 ADT param. in C ADT param.

Dettagli

Esami. Ingegneria del Software. Obiettivi del corso. Sir Tony Hoare s suggestion. There are two ways of constructing a software design.

Esami. Ingegneria del Software. Obiettivi del corso. Sir Tony Hoare s suggestion. There are two ways of constructing a software design. Ingegneria del Software Materiale, link utili, avvisi http://www.dmi.unict.it/~tramonta/se Libri consigliati Sommerville. Software Engineering, 6th ed. Addison-Wesley Pressman. Principi di Ingegneria del

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione Obiettivi Unità A2 Progettazione concettuale Imparare ad astrarre i dati per definire entità. Saper distinguere tra astrazione per classificazione, per aggregazione e per generalizzazione. Saper distinguere

Dettagli

[POSA] Pattern-Oriented Software Architecture A System of Patterns

[POSA] Pattern-Oriented Software Architecture A System of Patterns Luca Cabibbo Architetture Software Dispensa AS 11 ottobre 2008 1 -Fonti [SSA] Chapter 11, Using Styles and Patterns [GoF] Design Patterns Elementi per il riuso di software a oggetti [POSA] Pattern-Oriented

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo Sviluppo di programmi Per la costruzione di un programma

Dettagli

Java: Definire Classi e Creare Oggetti

Java: 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

Dettagli

Programmazione = decomposizione basata su astrazioni

Programmazione = 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

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Incapsulamento Polimorfismo e overloading Esercizi svolti Esercizi proposti Paradigma OO Nella programmazione tradizionale,

Dettagli

18 - Classi parzialmente definite: Classi Astratte e Interfacce

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

Dettagli

17 - Classi parzialmente definite: Classi Astratte e Interfacce

17 - Classi parzialmente definite: Classi Astratte e Interfacce 17 - 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/

Dettagli

Piano dei Test e Collaudo del software Titolo Documento

Piano dei Test e Collaudo del software Titolo Documento Controllo delle copie Il presente documento, se non preceduto dalla pagina di controllo identificata con il numero della copia, il destinatario, la data e la firma autografa del Responsabile della Documentazione,

Dettagli

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

SOMMARIO DESIGN PATTERN INTRODUZIONE AI DESIGN PATTERN INGEGNERIA DEL SOFTWARE. Introduzione. Cos è un design pattern. Cos è un design pattern INTRODUZIONE AI DESIGN PATTERN 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 DESIGN PATTERN

Dettagli

Classi Astratte vs Classi vs Interfacce

Classi Astratte vs Classi vs Interfacce Classi Astratte vs Classi vs Interfacce A cura del docente Giuliano Pellegrini Parisi - 2009 Una abstract class o classe astratta rappresenta la piattaforma di base, le fondamenta da cui iniziare a costruire

Dettagli

Programmazione ad oggetti

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

Dettagli

5. Modalità operative per creare maschere personalizzate

5. Modalità operative per creare maschere personalizzate 5. Modalità operative per creare maschere personalizzate Costruendo le maschere con la procedura guidata, non sempre il risultato soddisfa le esigenze dell utente e spesso si deve modificare la struttura

Dettagli

Ingegneria del Software 2014

Ingegneria del Software 2014 Ingegneria del Software 2014 Materiale, link utili, avvisi http://www.dmi.unict.it/~tramonta/se Forum http://forum.informatica.unict.it leggere gli avvisi partecipare alle discussioni fare domande E. Tramontana

Dettagli

«fornire un'interfaccia per la creazione di famiglie di oggetti correlati o dipendenti senza specificare quali siano le loro classi concrete» (GoF)

«fornire un'interfaccia per la creazione di famiglie di oggetti correlati o dipendenti senza specificare quali siano le loro classi concrete» (GoF) Introduzione Abstract Factory è creazionale e basato su oggetti ovvero, la creazione degli oggetti è delegata alle istanze di apposite classi Scopo: «fornire un'interfaccia per la creazione di famiglie

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti 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

Dettagli

Programmazione è gestione di eventi

Programmazione è gestione di eventi FUNZIONI Ed Eventi Programmazione è gestione di eventi Evento 1 (tasto premuto) Evento 2 (mouse) Evento 3 (cambio frame) Oggetto Evento 4 (fine di un brano audio) Azioni per evento 1 1. Azione 1 2. Azione

Dettagli

OO - Introduzione. Oggetti. OO - Panoramica. Progettazione orientata agli oggetti

OO - Introduzione. Oggetti. OO - Panoramica. Progettazione orientata agli oggetti OO - Introduzione Progettazione orientata agli oggetti Introduzione alle tecniche orientate agli oggetti Modelli ad oggetti Oggetti, classi, associazioni, aggregazione Il compito del programmatore: collegare

Dettagli

Dichiarazione di una classe. Dichiarazione ereditarietà

Dichiarazione di una classe. Dichiarazione ereditarietà Introduzione Il Java è un linguaggio di programmazione orientato agli oggetti (OOL), perché permette di realizzare in un programma tutti i concetti alla base dell OOP quali: l astrazione dei dati, mediante

Dettagli

I database. Introduzione alla teoria delle basi di dati

I database. Introduzione alla teoria delle basi di dati I database Introduzione alla teoria delle basi di dati 1 Cosa sono e a cosa servono i Database Un database (o base di dati) e' una raccolta organizzata di dati correlati. Il principale scopo di un database

Dettagli

Scelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if

Scelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if Scelte Costrutto condizionale Scelte, blocchi Fino ad ora il corpo dei metodi che abbiamo scritto aveva solo un modo di essere eseguito: in sequenza dalla prima istruzione all ultima In applicazioni non

Dettagli

Ingegneria del Software 16. Progettazione dettaglio. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 16. Progettazione dettaglio. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 16. Progettazione dettaglio Dipartimento di Informatica Università di Pisa A.A. 2014/15 classificatore strutturato È un classificatore di cui si vede la struttura interna, data

Dettagli

SISTEMI INFORMATIVI E DATABASE

SISTEMI 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,

Dettagli

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

Dettagli

NON ABBIAMO ANCORA CORRETTO LE PROVETTE!!!

NON ABBIAMO ANCORA CORRETTO LE PROVETTE!!! NON ABBIAMO ANCORA CORRETTO LE PROVETTE!!! OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/

Dettagli

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd Fondamenti d Informatica: linguaggi formali Barbara Re, Phd Agenda } Introdurremo } La nozione di linguaggio } Strumenti per definire un linguaggio } Espressioni Regolari 2 Linguaggio } Da un punto di

Dettagli

La classe java.lang.object

La 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

Dettagli

Progettazione ad Oggetti (OOD) e Pattern di progetto. Corso di Ingegneria del Software Anno Accademico 2012/2013

Progettazione ad Oggetti (OOD) e Pattern di progetto. Corso di Ingegneria del Software Anno Accademico 2012/2013 Progettazione ad Oggetti (OOD) e Pattern di progetto Corso di Ingegneria del Software Anno Accademico 2012/2013 1 Progettazione ad oggetti (OOD) L OOA identifica e definisce le classi e gli oggetti che

Dettagli

Progettazione orientata agli oggetti e UML

Progettazione orientata agli oggetti e UML Operatore Giuridico d Impresa Informatica Giuridica A.A 2003/2004 II Semestre Progettazione orientata agli oggetti e UML prof. Monica Palmirani Origini storiche Il paradigma orientato agli oggetti è una

Dettagli

Una metodologia per la specifica di software a componenti

Una metodologia per la specifica di software a componenti Luca Cabibbo Architettura dei Sistemi Software Una metodologia per la specifica di software a componenti dispensa asw475 marzo 2019 How best to read this book. Start at page 1 and keep going. When you

Dettagli

UML I diagrammi implementativi

UML 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

Dettagli

Introduzione ai casi d uso

Introduzione ai casi d uso Introduzione ai casi d uso versione 16 marzo 2009 http://www.analisi-disegno.com Introduzione ai casi d uso Pag. 1 Obiettivo di questa introduzione fornire elementi di base sui casi d uso fornire indicazioni

Dettagli

Esercizi design patterns. Angelo Di Iorio,

Esercizi design patterns. Angelo Di Iorio, Esercizi design patterns Angelo Di Iorio, diiorio@cs.unibo.it Esercizio 1 Una parete, che contiene porte e finestre, deve essere dipinta con una vernice. Ogni barattolo contiene una data quantità di vernice,

Dettagli

Corso di Ingegneria del Software. Modelli di produzione del software

Corso di Ingegneria del Software. Modelli di produzione del software Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it 1. Concetti di base Sommario 2. 2.1 Modello a cascata 2.2 Modelli incrementali 2.3 Modelli evolutivi 2.4 Modelli agili

Dettagli

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Informazioni generali Docente Giacomo Cabri Come contattarmi Via email (consigliato) giacomo.cabri@unimore.it Telefono 059/2058320 Ricevimento Lunedì dalle 15 alle 17 presso Matematica,

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica. Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Excel Michele Tomaiuolo Excel Excel è sicuramente il programma più

Dettagli

Prova di esame del 19 giugno 2017

Prova di esame del 19 giugno 2017 Prova di esame del 19 giugno 2017 Esercizio 1) [10 punti] Marcare le affermazioni che si ritengono vere. Ogni manda può avere un qualunque numero naturale di affermazioni vere. Vengono assegnati 0.5 punti

Dettagli

SOMMARIO. DIAGRAMMI DEI CASI D USO INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Cosa sono gli Use Case. Specifica Use Case

SOMMARIO. DIAGRAMMI DEI CASI D USO INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Cosa sono gli Use Case. Specifica Use Case SOMMARIO INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2017 2018 Use Case: Inclusione Use Case: Estensione Use Case: Generalizzazione

Dettagli

Compito di Fondamenti della Programmazione: Metodi Evoluti - A.A Prova di esame del 19 luglio 2014

Compito di Fondamenti della Programmazione: Metodi Evoluti - A.A Prova di esame del 19 luglio 2014 Compito di Fondamenti della Programmazione: Metodi Evoluti - A.A. 2013-14 Prova di esame del 19 luglio 2014 Esercizio 1) [10 punti] Marcare le affermazioni che si ritengono vere. Ogni manda può avere un

Dettagli

Cardinalità degli attributi

Cardinalità degli attributi Cardinalità degli attributi Descrive il numero minimo e massimo di valori dell attributo associati ad ogni occorrenza di entità o relazione. Di solito la cardinalità è (1,1) e viene omessa. A volte il

Dettagli

perror: individuare l errore quando una system call restituisce -1

perror: individuare l errore quando una system call restituisce -1 perror: individuare l errore quando una system call restituisce -1 Quando una system call (o una funzione di libreria) non va a buon fine, restituisce come valore -1 Come si fa a sapere più precisamente

Dettagli

Unità 3. Modello Relazionale

Unità 3. Modello Relazionale Unità 3 Modello Relazionale Modello Logico Modelli logico che deriva da concetti Matematici Permette di descrivere in modo corretto ed efficiente tutte le informazioni contenute nel modello E/R Meno astrato

Dettagli

Riuso di classi. Ereditarietà. Ereditarietà. Spesso si ha bisogno di classi simili

Riuso di classi. Ereditarietà. Ereditarietà. Spesso si ha bisogno di classi simili Riuso di classi Spesso si ha bisogno di classi simili Si vuole cioè riusare classi esistenti per implementare attributi e metodi leggermente diversi Non è pratico copiare la classe originaria e modificarne

Dettagli

Il paradigma Object Oriented. Iolanda Salinari

Il paradigma Object Oriented. Iolanda Salinari Il paradigma Object Oriented Iolanda Salinari gli oggetti un oggetto è un elemento o concetto del mondo reale che può essere identificato in modo univoco: un cliente, un articolo, un impiegato ogni oggetto

Dettagli

Progettazione Concettuale. Raccolta e analisi dei requisiti

Progettazione Concettuale. Raccolta e analisi dei requisiti Progettazione Concettuale Raccolta e analisi dei requisiti Il prodotto è uno schema E-R in grado di descrivere le specifiche sui dati relative ad una applicazione. Il reperimento dei requisiti è un'attività

Dettagli

Strutture di controllo iterative

Strutture di controllo iterative Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione Problema Scrivere un programma che acquisisca da standard input un intero

Dettagli