Progetto ingegneria del software: la torre di Hanoi
|
|
|
- Samuele Brescia
- 10 anni fa
- Visualizzazioni
Transcript
1 Progetto ingegneria del software: la torre di Hanoi Docente: Rosario Culmone Studente: Edmondo Barocci Matr
2 Indice 1. Analisi Analisi del testo Vocabolario dei termini Use case diagram Activity diagram Codifica in Alloy Codifica di reti di Petri 9 2. Progettazione Class Diagram Sequence Diagram State Diagram Collaboration Diagram Object Diagram Design Pattern Ocl Codifica Codifica in Java con specifiche codice in JML Test JUNIT con modalità di test di unità Documentazione Deployment Diagram Note Annotazioni non formali Strumenti utilizzati 26 2
3 1.Analisi 1.1 Analisi del testo Si vuole realizzare un programma applicativo che implementi il gioco della torre di Hanoi: un rompicapo di logica inventato da Edouard Lucas in cui inizialmente un certo numero di dischi di diametro diverso vengono impilati su un asta in ordine decrescente ed altre due aste vengono lasciate vuote, lo scopo del gioco è quello di spostare tutti i dischi sulla terza asta,uno alla volta, utilizzando la seconda come appoggio, col minor numero di spostamenti. L'unica regola è che un disco non può essere spostato sopra un altro disco piu piccolo. Il programma, a seconda della scelta di livello dell'utente,e quindi del numero di dischi, deve posizionare inizialmente tutti i dischi sull'asta di sinistra e lasciare poi all'utente la gestione dello spostamento di posizione dei dischi, sollevando e posando un disco, e cambiando asta di riferimento; il programma deve inoltre vincolare l'utente in cambiamenti di posizione verso uno stato consentito: un disco non puo essere spostato su un altro disco di diametro minore. Il programma deve sempre permettere all'utente di resettare il gioco e quindi di aggiungere o togliere un disco. 3
4 1.2 Vocabolario dei termini Termine Relazione Termine Torre di Hanoi has as aspect Asta Torre di Hanoi Is used by Utente Torre di Hanoi is quantified as Disco Asta contains Disco Disco has as aspect Diametro Disco has as aspect Posizione Disco has as aspect Stato Livello is quantified as Disco Posizione has as aspect Disco Posizione has as aspect Asta Spostamento is quantified as Disco Stato Is used by Spostamento Numero di dischi is quantified as Disco Diametro Is used by Stato 4
5 1.3 Use case diagram 5
6 1.4 Activity diagram 6
7 1.5 Codifica in Alloy one sig Hanoi { Aste : set Asta }{#Aste=3} sig Asta { ndischi : set Disco } sig Disco { diametro : one Int, inferiore : lone Disco } {diametro >0 } fact unicaasta { all d : Disco one a:asta d in a.ndischi } //ogni disco è in un unica asta fact mindischi {all h:hanoi #h.aste.ndischi >= 3 } //numero minimo di dischi = 3 fact nodoppio { all x, y :Disco x!= y implies x.diametro!= y.diametro } //due dischi non possono avere lo stesso diametro fact noasfuse { all a : Asta some h : Hanoi a in h.aste } //non ci sono aste sfuse fact samepole {all d : Disco one a: Asta d in a.ndischi and d.inferiore in a.ndischi } //un disco e il suo inferiore sono nello stessa asta fact nostinf { all x, y :Disco x!= y implies x.inferiore!= y.inferiore} //due dischi non possono avere lo stesso inferiore fact noinfrec { all x, y :Disco x.inferiore = y implies y.inferiore!= x } //due dischi non possono essere l'uno inferiore dell'altro e viceversa fact noanelli { no x: Disco x in x.^inferiore } //un disco non è nella sua chiusura transitiva, quindi non ci sono anelli fact therule { all x, y :Disco x.inferiore = y implies y.diametro > x.diametro } //un disco non puo stare sopra un disco di diametro minore fact therule2 { all x, y :Disco x.inferiore = y implies y.diametro < (x.diametro +2)} //un disco è sopra un disco di diametro maggiore di 1 pred Mostra() { #Disco >0} //predicato show con un numero di istanza Disco maggiore di zero run Mostra for 15 //esegue Mostra //assert hanoi { all x :Disco some y, z:asta x in y.ndischi or x in z.ndischi } //controlla //check hanoi for 10 //verifica l'assert hanoi per 10 unità 7
8 8
9 1.6 Codifica di reti di Petri 9
10 2.Progettazione 2.1 Class Diagram 10
11 2.2 Sequence Diagram 11
12 2.3 State Diagram 12
13 2.4 Collaboration Diagram 13
14 2.5 Object Diagram 14
15 2.6 Design Pattern Singleton: Prototype: 15
16 Hanoi.use 2.7 Ocl model Hanoi - - classes class Hanoi attributes unico : Hanoi livello : Integer operations Hanoi(livello : Integer) gethanoi() : Hanoi getlivello() :Integer tostring() : String aggiungidisco() rimuovidisco() Sposta(vecchiaAsta:Asta, nuovaasta:asta) : Boolean ReStart() end class Asta attributes ndischi : Integer operations Asta(nDischi:Integer) getndischi():integer setndischi(dischi:integer) getfirst():disco solleva():disco posa(d:disco):boolean end class Disco attributes diametro : Integer inferiore : Disco operations Disco(diametro:Integer) getinferiore():disco getdiametro():integer setinferiore(disco:disco) setdiametro(diametro:integer) clone():disco end - - associations association aste between Hanoi[1] role contenute Asta[3] role contiene end association dischi between Asta[1] role contenuti Disco[0..*] role contiene end 16
17 - - constraints constraints context Hanoi inv: livello >= 3 context Hanoi::Hanoi( livello : Integer) pre: livello >= 3 context Hanoi::rimuoviDisco() post : self.livello = self.livello@pre - 1 context Hanoi::aggiungiDisco() post : self.livello = self.livello@pre + 1 context Asta::Asta(nDischi : Integer) pre: ndischi >= 0 context Asta inv: ndischi >= 0 context Asta::solleva() : Disco pre : self.ndischi >= 1 post : self.ndischi = self.ndischi@pre - 1 context Asta::posa(d:Disco) : Boolean post : self.ndischi = self.ndischi@pre + 1 context Disco::Disco( diametro : Integer) pre: diametro >= 0 context Disco inv : (self.inferiore <> null) implies (self.diametro < self.inferiore.diametro) context Disco::setInferiore( disco: Disco) pre : disco.diametro > self.diametro context Disco::setDiametro( diametro : Integer) pre : (self.inferiore <> null) implies (diametro < self.inferiore.diametro) 17
18 18
19 HanoiClone.cmd!create solo : Hanoi!create sx : Asta!create dx : Asta!create cx : Asta!set solo.livello := 3!set sx.ndischi := 3!set cx.ndischi := 0!set dx.ndischi := 0!create uno : Disco!create due : Disco!create tre : Disco!set uno.diametro := 1!set uno.inferiore := due!set due.diametro := 2!set due.inferiore := tre!set tre.diametro := 3!insert (solo,sx) into aste!insert (solo,cx) into aste!insert (solo,dx) into aste!insert (sx,uno) into dischi!insert (sx,due) into dischi!insert (sx,tre) into dischi!openter solo sposta(sx,cx)!openter sx getndischi()!opexit 3!openter sx getfirst()!opexit uno!openter uno getdiametro()!opexit 1!openter cx getndischi()!opexit 0!openter sx solleva()!delete (sx,uno) from dischi!openter uno clone()!create unoclone : Disco!set unoclone.diametro := 1!opexit unoclone!destroy uno!openter sx setndischi(2)!set self.ndischi := 2!opexit!opexit unoclone!openter cx posa(unoclone)!insert (cx,unoclone) into dischi!set unoclone.inferiore := null!openter cx setndischi(1)!set self.ndischi := 1!opexit!opexit true!opexit true 19
20 20
21 3.Codifica 3.1 Codifica in Java con specifiche codice in JML public final class Hanoi{ private Asta[] aste; private int livello; invariant aste!= null; invariant aste.length == da!= a!= da!= da.ndischi > da.getfirst().diametro < a.getfirst().diametro ==> \result @ signals(invalidmoveexception (da == null) (a == (da == a) (da.ndischi <= (da.getfirst().diametro > public boolean sposta(asta da, Asta a) throws InvalidMoveException{ //@ assert livello == \old(livello);... }... } 21
22 public class Asta{ private int ndischi ; private /*@ Disco[] dischi; //@ invariant ndischi >=0;... assignables requires ndischi ensures ndischi == \old(ndischi) @ signals(nodiscsexception e )ndischi < public Disco solleva() throws NoDiscsException{... } /*@ assignables requires disco!= ensures ndischi == \old(ndischi) @ signals(nulldiscexception e )disco == public boolean posa(disco disco) throws NullDiscException{... } } 22
23 public class Disco implements Cloneable { private /*@ int diametro ; private /*@ Disco inferiore ; //@ invariant inferiore!=null => diametro < inferiore.diametro; //@ invariant diametro > 0;... /*@ assignables inferiore!= diametro @ signals(hanoiruleexception e )diametro >= void setinferiore ( Disco inferiore ) throws HanoiRuleException{... } } 23
24 4.Test 4.1 JUNIT con modalità di test di unità import org.junit.*; import static org.junit.assert.*; public class TestHanoi { private Hanoi public void setup(){ solo = new Hanoi(3); } public void testsposta(){ asserttrue (solo.sposta(aste[0],aste[1])); asserttrue (solo.sposta(aste[0],aste[2])); assertfalse(solo.sposta(aste[0],aste[1])); } public class TestAsta { private Asta public void setup(){ centrale = new Asta(3); public void testsolleva(){ assertequals(centrale.ndischi,2); public void testposa(disco disco){ 24
25 5.Documentazione 5.1 Deployment Diagram 25
26 6.Note 6.1 Annotazioni non formali La torre di Hanoi è un rompicapo di logica inventato nel 1883 da Edouard Lucas: matematico francese. Il numero minimo di mosse per la risoluzione del problema è 2 n -1, con n : numero di dischi; la soluzione, date le 3 aste, può essere calcolata con il seguente algoritmo ricorsivo: spostare n-1 dischi dalla prima alla terza asta, spostare l'n-esimo disco dalla prima alla seconda asta, spostare n-1 dischi dalla terza alla seconda asta. Quindi con un gioco a 3 dischi le mosse sono 7 : asta A asta B, asta A asta C, asta B asta C, asta A asta B, asta C asta A, asta C asta B, asta A asta B. 6.2 Strumenti utilizzati - Alloy - UML Reti di Petri - OCL 26
Test di unità con JUnit4
Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso
Realizzazione di una classe con un associazione
Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe
SAPIENZA Università di Roma, Facoltà di Ingegneria
SAPIENZA Università di Roma, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE Laurea in Ingegneria Informatica Prof. E.Casalicchio A.A. 2008/09 QUARTA PARTE: Soluzioni Esercizi 13-23 Soluzione
Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
Politecnico di Milano. Ingegneria del Software a.a. 2006/07. Appello del 14 settembre 2007 Cognome Nome Matricola
Politecnico di Milano Ingegneria del Software a.a. 2006/07 Appello del 14 settembre 2007 Cognome Nome Matricola Sezione (segnarne una) Baresi, Ghezzi, Morzenti, SanPietro Istruzioni 1. La mancata indicazione
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Esercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 6 Corso di Tecniche di programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti
Corso Linguaggi di programmazione II - Unina Esercitazione (prova intercorso)
1) Si considerino le classi Java: Corso Linguaggi di programmazione II - Unina Esercitazione (prova intercorso) class Card Card (String seed, int value) this.seed=seed; this.value=value; String seed; int
Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)
Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Sede di Latina Laurea in Ingegneria dell Informazione Fasi del ciclo di vita del software (riassunto) Corso di PROGETTAZIONE DEL SOFTWARE
I file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni
Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni Esercizio 1 Nella classe definita di seguito indicare quali sono le variabili di istanza, quali sono le variabili
Siti web centrati sui dati Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
Algoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
Programmazione a Oggetti Lezione 10. Ereditarieta
Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare
Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:
Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente
Main System Monitor Keyboard
Composite 57 8. Composite (Gof pag. 163) 8.1. Descrizione Consente la costruzione di gerarchie di oggetti composti. Gli oggetti composti possono essere conformati da oggetti singoli, oppure da altri oggetti
Java Virtual Machine
Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina
Work World WORK WORLD PROGETTO INGEGNERIA DEL SOFTWARE. Alessandro Spinelli
WORK WORLD PROGETTO INGEGNERIA DEL SOFTWARE di Alessandro Spinelli Indice 1 - Introduzione 2 - Descrizione del problema 2.1 Requisiti funzionali 2.2 Requisiti non funzionali 3 - Analisi 3.1 Dizionario
Prova di Laboratorio di Programmazione
Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare
Programmazione in Java Parte I: Fondamenti
Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice
Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)
Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio
SAPIENZA 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 (Corsi di Laurea in Ingegneria Informatica ed Automatica ed Ingegneria
Sequence Diagram e Collaboration Diagram
Sequence Diagram e Collaboration Diagram Ing. Orazio Tomarchio [email protected] Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Sommario Interaction
Progettazione orientata agli oggetti Introduzione a UML
Progettazione orientata agli oggetti Introduzione a UML Claudia Raibulet [email protected] Il processo di sviluppo software Rappresenta un insieme di attività per la specifica, progettazione, implementazione,
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 12 ADT: Lista, Pila, Coda A. Miola Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ ADT: Lista, Pila, Coda 1 Contenuti!Tipo
13. Chain of Responsibility
Chain of Responsibility 92 13. Chain of Responsibility (GoF pag. 223) 13.1. Descrizione Consente di separare il mittente di una richiesta dal destinario, in modo di consentire a più di un oggetto di gestire
UnicastRemoteObject. Massimo Merro Programmazione di Rete 103 / 124
UnicastRemoteObject Java RMI fornisce diverse classi base per definire server remoti: UnicastRemoteObject < RemoteServer < RemoteObject dove A < B significa che A è una sottoclasse di B. UnicastRemotObject
DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE INTRODUZIONE SINGLETON. Scopo dei design pattern creazionali
DESIGN PATTERN CREAZIONALI DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 [email protected]
Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E08 Soluzione Esercizi F. Gasparetti, C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf1/ Soluzione Esercizi
Sistemi Informativi I Caso di studio con applicazione di UML
9 CASO DI STUDIO CON APPLICAZIONE DI UML...2 9.1 IL CASO DI STUDIO...2 9.1.1 Il sistema attuale...2 9.2 IL PROBLEM STATEMENT...3 9.2.1 Formulazione del Problem statement per il caso proposto...3 9.3 USE
RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova
RIFERIMENTI ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 I riferimenti devono essere precisi
Oggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002
Tricks & Tips [Access] - Michele de Nittis - Tutorial - ActiveX - Controllo Tree View Versione: 1 Data Versione: venerdì 30 agosto 2002 1 SOMMARIO PREMESSA...3 INSERIMENTO DEL CONTROLLO...3 AGGIUNTA DELLE
Gruppi di Thread. Java threads (3) Gruppi di thread e Timer. Operating Systems. Operating Systems. Java threads 3. Java threads 3
Java threads (3) Gruppi di thread e Timer emanuele lattanzi isti information science and technology institute 1/12 Gruppi di Thread emanuele lattanzi isti information science and technology institute 2/12
Esercitazione n 4. Obiettivi
Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:
Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.
Prototype 28 4. Prototype (GoF pag. 117) 4.1. Descrizione 4.2. Esempio Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 10 Strutture collegate - 2 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Strutture collegate - 2 1 Contenuti!Strutture
Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
Object Oriented Software Design
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Object Oriented Software Design Corso di Tecniche di Programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria
Sviluppo software guidato dal testing. metodologie e strumenti
Sviluppo software guidato dal testing metodologie e strumenti Sommario Testing, software a oggetti Metodologie di sviluppo Test-Driven Development Customer Test-Driven Development Strumenti Open-Source:
Ottava Esercitazione. introduzione ai thread java mutua esclusione
Ottava Esercitazione introduzione ai thread java mutua esclusione Agenda Esempio 1 Concorrenza in Java: creazione ed attivazione di thread concorrenti. Esercizio 2 da svolgere Concorrenza in Java: sincronizzazione
La specifica del problema
2.9 (Caso di studio facoltativo) Pensare a oggetti: esame del problema Iniziamo ora a esaminare il nostro caso di studio di progettazione e implementazione orientate agli oggetti. Le sezioni Pensare a
Corso di Ingegneria del software Como. Prof. Marco Brambilla. Cruscotto auto. Aramini Antonio Umberto
Corso di Ingegneria del software Como Prof. Marco Brambilla Cruscotto auto Aramini Antonio Umberto Tema d esame: Si vuole realizzare un sistema embedded per autoveicoli che gestisce tutto il pannello di
Le Macchine di Turing
Le Macchine di Turing Come è fatta una MdT? Una MdT è definita da: un nastro una testina uno stato interno un programma uno stato iniziale Il nastro Il nastro è infinito suddiviso in celle In una cella
Alcuni Design Pattern in Java
Marco Faella Alcuni Design Pattern in Java basato su Progettazione del Software e Design Pattern in Java, di Cay Horstmann Pattern ITERATOR Contesto: 1) Un oggetto (aggregato) contiene altri oggetti (elementi)
Università di Roma La Sapienza, Facoltà di Ingegneria
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE I (Ing. Informatica, Nuovo Ordinamento) Prof. Marco Cadoli, Canale A-L, A.A. 2005-06 Esercitazione numero 6 LA
Introduzione... 2. Un software per l automazione di procedure statistiche su dati Pet... 2. Il Pre-Processing... 7. La fase di statistica...
Indice Introduzione... 2 Un software per l automazione di procedure statistiche su dati Pet... 2 Il Pre-Processing... 7 La fase di statistica... 12 Algoritmo di classificazione... 13 L interfaccia... 15
Intelligenza Artificiale
Intelligenza Artificiale Esercizi e Domande di Esame Tecniche di Ricerca e Pianificazione Esercizi Griglia Si consideri un ambiente costituito da una griglia n n in cui si muove un agente che può spostarsi
L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo
Design Pattern L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo sviluppo dei programmi, il loro mantenimento,
Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.
(Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System
Il principio di induzione e i numeri naturali.
Il principio di induzione e i numeri naturali. Il principio di induzione è un potente strumento di dimostrazione, al quale si ricorre ogni volta che si debba dimostrare una proprietà in un numero infinito
Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008
Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Avvertenze: e severamente vietato consultare libri e appunti; chiunque verrà trovato in possesso di
Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione
Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Appello dell 8 Febbraio 2005 Esercizio 1 (ASD) 1. Dire quale delle seguenti affermazioni è vera giustificando la risposta. (a) lg
10 - Programmare con gli Array
10 - Programmare con gli Array 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
FONDAMENTI DI INTELLIGENZA ARTIFICIALE-M
FONDAMENTI DI INTELLIGENZA ARTIFICIALE-M A.A. 2014/2015 Gioco del "Mulino" Prof. Paola Mello, Ing. Federico Chesani 1 Il gioco del Mulino Stimolare la comprensione e la discussione sugli algoritmi di base
Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013 Testo Il database di una banca è costituito da due vettori paralleli. Il
Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore
Relazioni tra oggetti e classi : Generalizzazione Fondamenti di Informatica II 20. Laboratorio 6 Collegamenti e associazioni Le relazioni di tipo generalizzazione (specializzazione), servono per poter
Controllo degli accessi
Il linguaggio Java Il controllo degli accessi alle classi ed ai membri di una classe Controllo degli accessi Accesso alle classi Accesso alle classi package package miopackage; public public class class
Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf
Il linguaggio SQL: trigger Sistemi Informativi T Versione elettronica: 04.7.SQL.trigger.pdf DBMS attivi Un DBMS si dice attivoquando dispone di un sottosistema integrato per definire e gestire regole I
Programmazione ad Oggetti Modulo A (Esame del 11/9/2015)
Programmazione ad Oggetti Modulo A (Esame del 11/9/2015) Esercizio 1 Considerate la seguente gerarchia di classi: class A { public void print(string s) { System.out.println(s); public void m1() { print("a.m1");
Supermarket Progetto di Programmazione Febbraio 2010
Supermarket Progetto di Programmazione Febbraio 2010 1 Supermercato Dovete realizzare un insieme di classi e interfacce che riguardano la gestione di un supermercato. nella Sezione 2 verranno descritte
Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html. Outline
Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html Ing. Francesco De Mola [email protected] DII, Modena Via Vignolese (lab. Dottorandi
LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)
Ministero dell Istruzione, dell Università e della Ricerca Istituto Tecnico Industriale Statale Enrico Mattei Via Martiri di Cefalonia 46-20097 San Donato Milanese Tel. 0255691411 - Fax 025276676 [email protected]
Volumi di riferimento
Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di
Corso di Amministrazione di Reti A.A. 2002/2003
Struttura di Active Directory Corso di Amministrazione di Reti A.A. 2002/2003 Materiale preparato utilizzando dove possibile materiale AIPA http://www.aipa.it/attivita[2/formazione[6/corsi[2/materiali/reti%20di%20calcolatori/welcome.htm
In legenda sono riportate le fasi R, P, C/T e I/SA come specificato nella norma ISO/IEC 12207.
Durante le attività di sviluppo del software applicativo è spesso utilizzato un ciclo di vita incrementale il cui schema di processo è sintetizzato nella figura seguente. In legenda sono riportate le fasi
La ricorsione. Politecnico di Milano Sede di Cremona
La ricorsione Politecnico di Milano Sede di Cremona Gianpaolo Cugola Dipartimento di Elettronica e Informazione [email protected] http://www.elet.polimi.it/~cugola Definizioni ricorsive Sono comuni
SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"
SQL SQL: concetti base originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali,
Progettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli [email protected] 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
Servers Activatable. Massimo Merro Programmazione di Rete 166 / 193
Servers Activatable Nelle lezioni precedenti abbiamo detto che una referenza remota ad un server di tipo UnicastRemoteObject rimane valida finchè il server è in esecuzione. Quando il server termina, o
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
Laboratorio di Basi di Dati
Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 9 Architettura Model-View-Controller (MVC) Adottando l'architettura MVC e la tecnologia Servlet-JSP, un'applicazione web può essere realizzata
GERARCHIE RICORSIVE - SQL SERVER 2008
GERARCHIE RICORSIVE - SQL SERVER 2008 DISPENSE http://dbgroup.unimo.it/sia/gerarchiericorsive/ L obiettivo è quello di realizzare la tabella di navigazione tramite una query ricorsiva utilizzando SQL SERVER
ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza
ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza vers.3 in lavorazione Docente SAFFI FABIO Contenuti 01.Esercizi generici sul diagramma di flusso - flow chart... 2
GESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
Programmazione Java: Variabili membro, Metodi La parola chiave final
Programmazione Java: Variabili membro, Metodi La parola chiave final [email protected] http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave
Invio SMS. DM Board ICS Invio SMS
Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove
Fase di Analisi Diagramma delle classi e Specifica delle classi, Diagramma degli Use Case e Specifica degli Use Case
Fase di Analisi Diagramma delle classi e Specifica delle classi, Diagramma degli Use Case e Specifica degli Use Case Esercizio 9: Officine Esercizio 9 Officine (cont.) (continua l esercizio 6) Le officine
Esercitazione 7. Procedure e Funzioni
Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,
DENUNCE EDILCONNECT GUIDA COMPILAZIONE
Cassa Edile Como e Lecco DENUNCE EDILCONNECT GUIDA COMPILAZIONE COMPILAZIONE DA FILE PAGHE Guida per i consulenti e le imprese che compilano la denuncia utilizzando il file di esportazione dei software
Diagrammi dei package
Diagrammi dei package Package Meccanismo di raggruppamento di più classi (riferito al momento della compilazione) in unità di livello più alto, al fine di dominare la complessità strutturale di un sistema
Archivio CD. Fondamenti di Programmazione
Archivio CD Una persona possiede un certo numero di CD musicali e desidera organizzare il proprio archivio tramite uno strumento software. Il programma deve permettere: - l inserimento di un nuovo CD nella
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 11 Tipi astratti di dato e loro rappresentazione A. Miola Marzo 28 http://www.dia.uniroma3.it/~java/fondinf2/ ADT e Rappresentazione
Object Oriented Programming
OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in
Una metodologia di progettazione di applicazioni web centrate sui dati
Una metodologia di progettazione di applicazioni web centrate sui dati A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 1 / 2 0 1 2 Progettazione logica di un sito web centrato sui dati Si
Programmare in Java. Olga Scotti
Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale
Esempio: il conto bancario
Ereditarietà Prof. Francesco Scarcello D.E.I.S., Università della Calabria Corso di Informatica 2 Esempio: il conto bancario public class BankAccount { public BankAccount() { balance = 0; public BankAccount(double
Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008 Si noti che le soluzioni ai quesiti saranno considerate valide
The Hitchhiker's Guide to testable code
The Hitchhiker's Guide to testable code semplici regole per scrivere codice semplice da testare Davide Cerbo - [email protected] - JUG Roma Nicola Raglia - [email protected] - JUG Roma Non parleremo
UML Component and Deployment diagram
UML Component and Deployment diagram Ing. Orazio Tomarchio [email protected] Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione
