Progetto di Informatica III. Introduzione al corso



Documenti analoghi
Docenti: Patrizia Scandurra (referente princiaple) Angelo Gargantini.

INFORMATICA III Parte B - Progettazione e Algoritmi. Contatti

INFORMATICA III Parte B -Progettazione e Algoritmi

INFORMATICA III Parte B -Progettazione e Algoritmi

Fondamenti di Informatica T-1

Progetto di Applicazioni Software

Linguaggi dinamici. Giacomo Cabri Riccardo Martoglia

Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria

Corso di Laurea Magistrale in Ingegneria Informatica. Ingegneria del Software II (IS2)

Linguaggi dinamici. Giacomo Cabri Mauro Andreolini

Analisi e progettazione del software

Syllabus C310 - Insegnamenti disciplinari

Analisi e progettazione del software

01KTF CV. Architetture distribuite per i sistemi infomativi aziendali. Presentazione del corso

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

Istituto Universitario Navale Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni

Progetto di Applicazioni Software

Corso di Ingegneria del Software. Informazioni sul corso

02CIXPG Sistemi informativi aziendali

INGEGNERIA DEL SOFTWARE

Tecniche della comunicazione web - 8 CFU

Politecnico di Bari Corso di Laurea Specialistica in Ingegneria Informatica A.A Casi di Studio. Traccia n 1

introduzione al corso di ingegneria del software

INFORMATICA III Parte B -Progettazione e Algoritmi

PIANO DI LAVORO ANNUALE DELLA DISCIPLINA Tecnologie e Progettazione di Sistemi Classi QUINTE A.S

Linguaggi. Corso di Laurea in Ingegneria delle Telecomunicazioni A.A

Tecnologie dei Linguaggi di Programmazione

Classi Oggetti public private this static static

ISIS C.Facchinetti Sede: via Azimonti, Castellanza Modulo Gestione Qualità. DISCIPLINA Informatica A.S X di dipartimento

Istituto di Istruzione Superiore Statale Carlo Emilio Gadda PIANO DI LAVORO ANNO SCOLASTICO 2015/2016. I.I.S.S '' C. E. GADDA Sede di FONOVO

Progettaz. e sviluppo Data Base

Università di Bologna Corso di Laurea Specialistica in Ingegneria dell'automazione e Ingegneria Elettronica A.A Sistemi Operativi L-A

Business Analysis II. Course Presentation Prof. Thimoty Barbieri Università degli Studi di Pavia

Università di Parma Facoltà di Ingegneria. Polo Tecnologico Nettuno

1. Destinatari e requisiti di ingresso. 2. Durata sede e organizzazione del corso. 3. Oggetto della formazione

Programmazione Fondi Strutturali 2007/2013 P.O.N. FSE A.S. 2013/2014 SCHEDA PROGETTUALE MODULO. Obiettivo: C Azione: 1 Riferimento interno:

Fondamenti di Informatica II Corso (HA-ZZ) Introduzione al corso

PIANO DI LAVORO EFFETTIVAMENTE SVOLTO IN RELAZIONE ALLA PROGRAMMAZIONE DISCIPLINARE

PROGRAMMAZIONE DISCIPLINARE D ISTITUTO a.s. 2015/2016 SECONDO BIENNIO LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE

Fondamenti di Informatica T1

Informatica Generale

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Corso di INFORMATICA AZIENDALE (4 CFU)

DESIGN PATTERN ESERCITAZIONE PREPARAZIONE ALL ESAME, PARTE II INGEGNERIA DEL SOFTWARE. La soluzione corretta è la c)

CORSO DI PROGRAMMAZIONE JAVA

Corso di Business Planning e Start Up Imprese Multimediali

Eclipse e Subversion

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo

Linee guida progetto IS. Linee guida progetto IS

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

Presentazione del Corso

Corso di Fondamenti di Informatica L-A

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

01KPS BF Progettazione di applicazioni web

Guida alla fruizione del percorso di validazione Trad Lab:Struttura la tua idea di BIC Lazio

Informatica di Base A - DAMS

È possibile organizzare corsi e cicli presso la propria sede (Classi on-site)?

Liceo Scientifico " C. CATTANEO " PIANO DI LAVORO DI INFORMATICA. CLASSE 4 LSA SEZ. C e E

Sistemi Distribuiti e Cloud Computing A.A. 2014/15

Informatica 2011/

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

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

REALIZZAZIONE DI UN LABORATORIO REMOTO PER ESPERIENZE DI ROBOTICA EDUCATIVA: LATO CLIENT

Strumenti di gestione del ciclo di vita del software

PROGRAMMAZIONE DISCIPLINARE D ISTITUTO a.s. 2014/2015 SECONDO BIENNIO LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE

Data Mining a.a

Presentazione del corso di Matematica I

Fondamenti di Informatica - 9Cfu Corso di Laurea in Ingegneria Informatica (ord. 270)

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A

Metodologie Informatiche Applicate al Turismo

I.T.I. E. MAJORANA SOMMA VESUVIANA PIANO DI LAVORO ANNUALE DEL DOCENTE ANNO SCOLASTICO 2015/2016

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

Concetti di base di ingegneria del software

UML - Unified Modeling Language

Programmi e Oggetti Software

Sistemi di Telecomunicazione

(6 CFU) Facoltà di Economia Laurea specialistica in Economia Aziendale. Prof. Crescenzio Gallo. a.a. 2005/2006

Sistemi Distribuiti e Cloud Computing A.A. 2013/14

INFORMAZIONI PERSONALI

SISTEMI E RETI 4(2) 4(2) 4(2) caratteristiche funzionali

INGEGNERIA DEL SOFTWARE. Il Corso. Obiettivi. A.A Prof. Giuseppe Visaggio Presentazione

Università Politecnica delle Marche. Progetto Didattico

Corso sul linguaggio Java

Applicazione: Servizio periferico per l'invio telematico delle domande di nulla osta al lavoro

BiblioTech - Personal Digital Library

Formazione sulla piattaforma Java2EE

Alessandra Raffaetà. Basi di Dati

Università di Milano Bicocca

Corso di Laurea in Ingegneria Informatica e Biomedica. Sistemi Operativi A.A. ( )

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

DISCIPLINA: TECNOLOGIE E PROGETTAZIONE DI SISTEMI ELETTRICI ED ELETTRONICI CLASSE DI CONCORSO: A035 - C270

I lucidi messi a disposizione sul sito del corso di Analisi e progettazione del software NON sostituiscono il libro di testo

Guida rapida all uso di Moodle per gli studenti

Docente. Sistemi Informativi. Programma. Programma. Ing. Fabrizio Riguzzi

La struttura del desktop di Windows. Gli applicativi: cosa sono e a cosa servono

Ministero dell istruzione, dell università e della ricerca. Liceo Tecnologico. Indirizzo Informatico, Grafico e Comunicazione

Gestione Operativa e Supporto

LABORATORIO DI INFORMATICA

Istituto Tecnico Commerciale Statale e per Geometri E. Fermi Pontedera (Pi)

Transcript:

Progetto di Informatica III Introduzione al corso Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Contatti Obiettivo Natura Argomenti Organizzazione Materiale didattico Modalità d esame Caratteristiche obbligatorie dei progetti Modalità di valutazione dei progetti 1

Contatti Docenti: Patrizia Scandurra (titolare) Angelo Gargantini email: patrizia.scandurra@unibg.it Tel: 035-2052358 Sito web: http://cs.unibg.it/scandurra/ Ricevimento: Edificio B, terzo piano, ufficio 2 Lunedì 16:00 ~ 18:00 (previo appuntamento via email) Obiettivo Fornire agli studenti conoscenze teoriche metodi e strumenti di sviluppo utili per progettare e implementare una applicazione software attraverso un processo di sviluppo agile e il linguaggio di programmazione ad oggetti Java 2

Natura E un corso di progetto le lezioni/esercitazioni si svolgeranno interamente in laboratorio si dovranno svolgere alcuni esercizi si dovrà costruire una applicazione complessa in Java entreremo nei dettagli del codice Non informativo sulle tecnologie recenti Le tecnologie cambiano rapidamente, ma i principi rimangono evolvendo Prerequisiti: ingegneria del software, programmazione Java Argomenti Processi agili (modeling/development) Aspetti avanzati di Java: aspetti del linguaggio (enumerations, generics, collection framework), Eclipse come IDE di sviluppo per Java, documentazione (Java conventions, javadoc) Metriche: definizione/calcolo di metriche per applicazioni OO, Jdepend Design pattern: architetturali, strutturali, creazionali e comportamentali Testing di una applicazione: Test Driven Development (TDD) e Extreme Programming (XP), unit testing con Junit Refactoring di un'applicazione Sviluppo di Java GUIs: JFC/Swing e Java2D, gestione eventi, MVC e componenti Swing di base, Jigloo GUI builder, cenni SWT Java XML: XML SAX in JAXP, XML DOM in JAXP Copertura di codice: il tool EMMA e il plug-in Eclipse ECLEMMA Uso di librerie esterne: l'esempio del logging (log4j, log5j, il viewer Chainsaw) Deployment di un'applicazione: scenari di deployment, InstallAnywhere, Java Web Start, archivi jar e Fat Jar Plug-In per Eclipse, sviluppo di plug-in Eclipse 3

Organizzazione Lezioni (30%) e esercitazione (70%) in laboratorio Venerdì 14.00-18.00 aula 5 Calendario: 13-20-27 Marzo 3-17-24 Aprile 8-15-22-29 Maggio 5-12 Giugno Materiale didattico (1) Libri di testo e altri riferimenti verranno consigliati via via. Su ILIAS trovate alcuni tutorial: http://elearning2.unibg.it/ilias3/goto.php?target=crs_2094&client _id=unibg_prod Lucidi delle lezioni Supporto alle lezioni Reperibili dal sito http://cs.unibg.it/scandurra/proginf3.html 4

Modalità d esame L'esame consta di una discussione orale nel quale illustrerete l applicazione Java che avete sviluppato in laboratorio Le funzionalità di tale applicazione sono libere, ma dovrà esibire certe caratteristiche obbligatorie Il giorno dell'appello nel mio ufficio, consegnerete il progetto (su CD) e la documentazione stampata Alcuni progetti verranno discussi sul momento o nei giorni successivi su appuntamento Caratteristiche obbligatorie (1) Documentazione (file di testo, word, html, o altro) prodotta con le tecniche/strumenti di design imparati nel corso di Ingegneria del Software, relativamente a Specifica del sistema (funzionalità ed eventualmente altri requisiti non funzionali) Progettazione dell'architettura con UML (casi d uso e diagramma delle componenti/deployment) Progettazione della vostra applicazione (facoltativo) con UML (diagrammi delle classi e altri diagrammi) e ER, Reti di Petri, Abstract State Machines eventualmente per le funzionalità più critiche Piano di test Spiegazione delle decisioni fatte durante l'implementazione Manuale d uso e di installazione 5

Caratteristiche obbligatorie (2) Implementazione Costrutti OO di Java: uso di interfacce e classi astratte, famiglie di costruttori, ereditarietà, overloading e overriding di metodi, membri static, final, applicazione dei design pattern, ecc. Java avanzato: generics (tipi o metodi generici), collezioni (tra cui List e HashTable), uso di Comparable (e dei sort), enumeration Librerie esterne: ad es. log4j o altre (jcurses, jexcelapi, o di Jakarta) Unit testing: sviluppare e documentare casi di test con Junit Copertura: copertura del codice con Emma (o altri tool) e tale copertura deve essere documentata Documentazione del codice: completamente documentato con JavaDoc I/O in formato XML: con SAX o DOM (o utilizzare un parser generator come AntLR o Javacc) GUI: un interfaccia grafica (differenziare la UI con le funzionalità dell'applicazione); preferite l'uso del pattern Model View Controller Caratteristiche obbligatorie (3) Distribuzione Al di fuori dell'ide: installazione e funzionamento stand-alone con un installer o con uno script o con Java web start. Usate fatjar se volete mettere più jar in un unico Jar. In linea di principio, non deve richiedere al docente l installazione di SW ausiliario (DBMS o altro) per farlo funzionare. Se necessario, preferite l'uso di Java DB (http://developers.sun.com/javadb/, di soli 2MB!) e notificatelo al docente. Il codice deve essere sviluppato (e consegnato al docente) in un (unico) progetto di Eclipse e ideve includere librerie e risorse necessarie per compilare/eseguire i file e i casi di test. I link alle risorse devono essere relativi in modo che spostando il progetto su vari PC esso continui a funzionare. Se utilizzate altri progetti ausiliari, anche questi vanno inclusi. 6

Modalità di valutazione (1) Per ognuna delle seguenti caratteristiche prendete da 0 a 10-6 vuol dire sufficiente Difficoltà e interesse del problema affrontato 10% Premio l'originalità, l'interdisciplinarietà, fondamenti teorici, l'interesse potenziale di altri, ecc. L idea va comunque comunicata al docente! Dimensione del progetto: dimensione del codice e delle librerie utilizzate 10% Bontà delle soluzione proposta: 45% Architettura: opportuna divisione in package (anche tramite analisi automatica con jdepend, ad esempio presenza di cicli tra i packages), stile di programmazione, warning del javac, ecc.. Validazione: risultati ottenuti ad esempio dal testing e dal piano di test, grado di automazione del testing (che sia ripetibile), dalla copertura con Emma, ecc.. (rispetto alle spec iniziali - se si rispettano tutte si parte da 6) Modalità di valutazione (2) Progettazione, sviluppo e documentazione 25% Valutazione della modellazione agile: uso di UML per la modellazione dei casi d uso (requisiti funzionali), per il design dell architettura (diagramma delle componenti e di deployment), diagramma delle classi, piani di test, uso di metodi formali (Reti di Petri, Abstract State Machines) per le parti più critiche, ecc.. Valutazione dello sviluppo agile: uso dei metodi (testing, copertura, refactoring, ecc..), strumenti (tool e Plug-in Eclipse) e tecnologie (librerie, APIs, ecc..) spiegati a lezione e nei tutorial Valutazione della documentazione a corredo Presenza in lab e svolgimento degli esercizi proposti 10% (valutata con +,++) 7