INFORMATICA III Parte B -Progettazione e Algoritmi
|
|
|
- Laura Mauri
- 7 anni fa
- Visualizzazioni
Transcript
1 INFORMATICA III Parte B -Progettazione e Algoritmi Introduzione al corso Patrizia Scandurra [email protected] Università degli Studi di Bergamo Corso di laurea magistrale in Ingegneria Informatica
2 Contatti Sitoweb: Link Dropbox per materiale didattico: 8L6CogSRh-MVer3tPk6NUa?dl=0 Ricevimento: Edificio B, terzo piano, ufficio 3??Venerdì?? mattina osu appuntamento
3 Natura Lezioni frontali e di esercitazione - si dovranno svolgere alcuni esercizi - entreremo nei dettagli del codice Non informativo sulle tecnologie recenti Le tecnologie cambiano rapidamente, ma i principi rimangono Prerequisiti: fondamenti di informatica, ingegneria del software e notazione UML, programmazione Java, elementi di analisi matematica su serie e successioni
4 Obiettivi Fornire agli studenti conoscenze teoriche metodi e strumenti di sviluppo utili per progettare ed implementare in grande ed in piccolo una applicazione software attraverso un processo di sviluppo agile orientato alle componenti e alle architetture software che punta all efficienza degli algoritmi e strutture dati impiegate Impiegheremo linguaggi di programmazione OO come Java e librerie fornite da terze-parti; utilizzeremo IDE e tooldi sviluppo vari basati principalmente su Eclipse
5 Architettura software Informalmente, un'architettura softwareè l'organizzazione del sistema, costituita dalle varie parti che lo compongono (sottosistemi ecomponenti), dalle relazioni tra di loro e con l'ambiente Definire un'architettura SW significa mappare funzionalità su componenti Es. Modulo di Interfaccia utente, modulo di accesso al DB, modulo di gestione della sicurezza, etc.. L'architettura di un sistema software viene definita in fase di System Designe vari principi di gooddesigne design pattern ne guidano il progetto e l'evoluzione 5
6 Argomenti (modulo B) Design, analisi e sviluppo di codice algoritmo: Complessità algoritmica: complessità spazio-tempo e notazione asintotica Tecniche di progettazione di algoritmi: strategia incrementale, divide et impera, greedy, programmazione dinamica Design e realizzazione di algoritmi e strutture dati(in Java): strutture dati e algoritmi elementari (liste, pile, code), algoritmi di ordinamento, alberi (alberi binari di ricerca, B- tree, RB-tree), applicazione degli alberi per il processamento di documenti XML, tabelle hash, grafi e cammini minimi (Prima parte, design in piccolo)
7 Argomenti (modulo B) Design e sviluppo di architetture SW: Processi di sviluppo agili: modellazione, sviluppo e testingcon AMDD (Agile Model-driven Development) Analisi e specifica dei requisiti SW: use case modeling, descrizione dei casi d uso e degli scenari Component-baseddevelopment:componenti, architetture software, design pattern (stili) architetturali, architetture SW per applicazioni service-orientede Cloud-based, architetture SW per sistemi self-adaptive, il modello a componenti della piattaforma Android Design e sviluppo di GUI e componenti grafiche: JFC/Swing e Java2D, gestione eventi, MVC e componenti Swing di base Deployment di un applicazione SW: Java convention, deploymente subversioning Analisi statica e strutturale del SW: definizione/calcolo di metriche di qualità del software con stan4j, refactoring del codice Analisi dinamica di un'applicazione SW: unittestingcon Junit, copertura del codice con il plug-in Eclipse ECLEMMA (Seconda parte, design in grande)
8 Argomenti non trattati Tecniche di analisi di architetture SW dal punto di vista di requisiti non funzionali (performance, availability, reliability, ecc..) Esempio: Analisi delle performance di una architettura SW Project management 8
9 Materialedidattico(parte B) Lucidi e dispense distribuite attraverso la cartella Dropbox C. Demetrescu, I. Finocchi, G. F. Italiano: Algoritmi e strutture dati, McGraw-Hill, ISBN: , seconda edizione, Gennaio Per approfondimenti: C.A.Shaffer: A practical Introduction to data structures and algorithm analysis. Software Architecture in Practice (3rd Edition) SEI Series in Software Engineering, Addison Wesley, 5 October 2012 The Object Primer 3rd Edition: Agile Model Driven Development with UML 2, Cambridge University Press, 2004 ISBN
10 Modalitàd esame(parte B) L'esame consta di: una prova scritta che verte sulla prima parte del corso progettino software (prova orale) Sono ammessi team di sviluppo composti da gruppi di al max 3 persone L idea del progettino software è libera ma va concordata con il docente Il progettino SW prodotto dovrà esibire certe caratteristiche obbligatorie(vedi lucidi successivi) Il giorno dell'appello coincide con la prova scritta Superata la prova scritta, consegnerete al docente il progetto SW (codice + documentazione) tramite un cloud storage (ad es. Dropbox) prima della data fissata per la prova orale
11 Distribuzione del codice del progetto software Al di fuori dell'ide: installazione e funzionamento stand-alone conuninstalleroconunoscriptoconjavawebstart.usatefatjar sevoletemetterepiùjarinununicojar In linea di principio, non deve richiedere al docente l installazione di SW ausiliario per farlo funzionare Se necessario un DB, preferite Oracle JavaDB(soli 2.6 MB) Il codice deve essere sviluppato (e consegnato al docente) in un (unico) progetto di Eclipse e deve 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
12 Documentazione del progetto software Sintetico manuale utente e di installazione Documenti da produrre in ogni fase incrementale (almeno 3!) del processo agile AMDD: Documento di specifica dei requisiti SW Documento per il design dell architettura SW e degli algoritmi Documenti per l analisi dinamica Documento che definisce gli unittest e report di copertura prodotto con Junit/Eclemma Eventuale report per altre forme di testing, ad es. testingblack-box di interfacce grafiche Documento per l analisi statica e strutturale Quality report prodotto con STAN4J 12
13 Modalità di valutazione (1) Voto finale: media aritmetica tra voto p. scritta e voto p. orale Parte scritta: voto tra 0 e 30; 18 = sufficiente (BARRIERA per la prova orale) P. Orale (discussione progetto SW): Il voto è ottenuto valutando il progetto SW su ognuna delle seguenti caratteristiche pesate : Interesse del problema affrontato e dimensione del progetto 10% Premio l'originalità, difficoltà, l'interdisciplinarietà, fondamenti teorici, l'interesse potenziale, dimensione del progetto, uso di librerie, ecc. Bontà delle soluzione proposta: 60% Architettura SW (20%) e qualità del codice: stile di programmazione, opportuna decomposizione del design in componenti e package (valutabile tramite analisi statica e strutturale), impiego di design pattern, ecc.. Algoritmi e strutture dati (20%): strutture dati e algoritmi user-defined, uso di JFC Validazione (20%): risultati ottenuti ad esempio dal testinge dal piano di test, grado di automazione del testing(che sia ripetibile), dalla copertura con Emma, calcolo delle metriche, ecc..
14 Modalità di valutazione (2) Modalità di sviluppo e documentazione 20% 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 specificare il comportamento delle componenti 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 attiva in aula e lab(svolgimento degli esercizi proposti) 10%
15 Progettare in piccolo ed in grande con una metodologia agile Introduzione
16 Metodologia agile Differenziazione di metodi e modelli di sviluppo: Metodologie pesanti per i vecchi metodi come il Modello a cascata Metodologie iterative per i metodi come il Modello a spirale Metodologie agili (o leggere) che coinvolgono quanto più possibile il committende, ottenendo in tal modo una elevata reattività alle sue richieste Agile alliance, una organizzazione no-profit creata allo scopo di diffonderle Esistono un certo numero di tali metodologie (XP, SCRUM, AMDD,ecc..) Adotteremo AMDD= versione agile del Model Driven Development
17 Ciclo di vita del software Passi comuni a tutte le metodologie: 20
18 Ciclo di vita del software Passi comuni a tutte le metodologie: 21
19 Ciclo di vita del software Passi comuni a tutte le metodologie: 22
20 Ciclo di vita del software Passi comuni a tutte le metodologie: 23
21 Ciclo di vita del software Passi comuni a tutte le metodologie: 24
22 Ciclo di vita del software Passi comuni a tutte le metodologie: 25
23 Ciclo di vita del software Passi comuni a tutte le metodologie: 26
24 Ciclo di vita del software Passi comuni a tutte le metodologie: 27
25 The infamous (software) design/development process tree-swing comic 28
INGEGNERIA DEL SOFTWARE
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea magistrale in Ingegneria informatica Anno accademico 2016/2017-1 anno INGEGNERIA DEL SOFTWARE 9 CFU - 1 semestre Docente titolare
Progetto di Informatica III. Introduzione al corso
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à
Algoritmi e Strutture Dati
Introduzione al corso di Algoritmi e Strutture Dati Luigi Pontieri Il nome del corso: Algoritmi e Strutture Dati Algoritmo: metodo per la risoluzione di problemi di elaborazione di informazioni, espresso
Docenti: Patrizia Scandurra (referente princiaple) Angelo Gargantini. [email protected]
Progetto di Informatica III Introduzione al corso Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Contatti Obiettivo Natura Argomenti Organizzazione Materiale didattico Modalità
Sistemi Operativi Informatica II. Presentazione del corso. a.a Patrizia Scandurra
Sistemi Operativi Informatica II Presentazione del corso a.a 2017-18 Patrizia Scandurra Sommario Contatti Materiale didattico e libri di testo Organizzazione Modalità d esame Pre-requisiti e obiettivi
algoritmi e strutture di dati
algoritmi e strutture di dati introduzione al corso maurizio patrignani roberto de virgilio algoritmi e strutture di dati nuovo ordinamento (d.m. 509/99) laurea in ingegneria informatica 2 anno 5 crediti
INGEGNERIA DEL SOFTWARE INFORMATICA ARDIMENTO PASQUALE
INSEGNAMENTO ANNO ACCADEMICO 2016-2017 CORSO DI LAUREA IN DOCENTE ANNO DI CORSO INGEGNERIA DEL SOFTWARE INFORMATICA ARDIMENTO PASQUALE II SEMESTRE II N CREDITI LEZIONI FRONTALI: 56 7 119 N ORE LEZIONI
Informatica e Tecnologie per la Produzione del Software. VI Piano Stanza 619
Principali informazioni sull insegnamento Titolo insegnamento Corso di studio Crediti formativi Denominazione inglese Obbligo di frequenza Lingua di erogazione A.A. 2018-2019 Ingegneria del Software corso
Principi di Progettazione del Software a.a Introduzione al corso Prof. Luca Mainetti Università del Salento
Principi di Progettazione del Software a.a. 2016-2017 Prof. Università del Salento Il GSA Lab (www.gsalab.unisalento.it) Laboratorio di ricerca in ingegneria del software e sistemi interattivi La mission
Ingegneria del Software II
Ingegneria del Software II Prof. Evelina Lamma Anno accademico 2017-16 Obiettivi del corso l Illustrare modelli, tecniche e strumenti disponibili nelle varie attività/fasi del processo di sviluppo software:
FONDAMENTI DI INFORMATICA II
Università degli Studi di Ferrara Facoltà di Ingegneria APPUNTI DEL CORSO DI FONDAMENTI DI INFORMATICA II Obiettivi del corso: Approfondire l uso del linguaggio C rispetto a quanto noto dal corso di Fondamenti
Ingegneria Informatica A.A
Ingegneria Informatica A.A. 2011-2012 III anno, CFU = 6 Prof. Giacomo Bucci www.dsi.unifi.it/~bucci Materiale didattico Risultati esami Contenuto del corso Problematiche relative all analisi, la progettazione,
Ingegneria del Software e Programmazione Web, ISPW Laboratorio di Applicazioni Web, LAS
INGEGNERIA INFORMATICA A. A. 2014-14, 3 ANNO, 2 SEM. Ingegneria del Software e Programmazione Web, ISPW Laboratorio di Applicazioni Web, LAS Le slide sono intese esclusivamente a supportare e non a sostituire
Materiale didattico. Sommario
Diploma Universitario in Ingegneria Informatica Corso di Ingegneria del Software Docente: ing. Anna Rita Fasolino Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II
Fondamenti di Informatica T-1
Fondamenti di Informatica T-1 Facoltà di Ingegneria Univ. di Bologna Ing. Gestionale (L-Z) Prof. Wilma Penzo 1 Informazioni generali Docente Prof. Wilma Penzo DISI E-mail: [email protected] Tel.: 051-20-93560
Algoritmi e Strutture Dati
+ Laboratorio: struttura del corso Laboratorio di Introduzione al Corso Maria Rita Di Berardini (Ascoli), Emanuela Merelli (Camerino) 1 1 Dipartimento di Matematica e Informatica Università di Camerino
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
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati A.A. 15/16 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro Contatti Studio: stanza 513, V piano DIB Telefono: 080 544 2297 email: [email protected]
UNIVERSITÀ DEGLI STUDI DI MILANO- BICOCCA CORSO EROGATO IN MODALITÀ BLENDED- LEARNING SYLLABUS
UNIVERSITÀ DEGLI STUDI DI MILANO- BICOCCA CORSO EROGATO IN MODALITÀ BLENDED- LEARNING SYLLABUS INFORMAZIONI DEL CORSO Nome Architettura del software Codice Esse3 F1801Q130M Corso di studi Laurea Magistrale
Principi di Progettazione del Software a.a " Introduzione al corso! Prof. Luca Mainetti! Università del Salento!
Principi di Progettazione del Software a.a. 2015-2016" Introduzione al corso! Prof. Luca Mainetti! Università del Salento! Il GSA Lab (www.gsalab.unisalento.it)" Laboratorio di ricerca in ingegneria del
Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC
Programma didattico Sviluppare Applicazioni Distribuite in ambiente Spring MVC Programma del corso 1.Progettazione e Sviluppo Database Relazionali Questa competenza permette di Progettare e Sviluppare
1. UML 2 ed il Processo Unificato
1. UML 2 ed il Processo Unificato Andrea Polini Laboratorio di Ingegneria del Software Corso di Laurea in Informatica (Laboratorio di Ingegneria del Software) 1. UML 2 ed il Processo Unificato 1 / 25 Sommario
Corso di Fondamenti di Informatica e Laboratorio T-AB
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Fondamenti di Informatica e Laboratorio T-AB Corso di Laurea in Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione
Basi di Dati Ingegneria Informatica e delle Telecomunicazioni
Basi di Dati Ingegneria Informatica e delle Telecomunicazioni A.A. 2014/2015 Ing. Claudio Marrocco [email protected] Obiettivi del corso Il corso mira ad introdurre agli studenti modelli e metodi per
Fondamenti di Intelligenza Artificiale
Fondamenti di Intelligenza Artificiale Prof. Evelina Lamma Dipartimento di Ingegneria Telefono: 0532 974894 Email: [email protected] http://docente.unife.it/evelina.lamma Ricevimento: mercoledì h.14-15
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Introduzione agli algoritmi Università di Camerino Corso di Laurea in Informatica 6CFU I periodo didattico Anno accademico 2005-06 Emanuela Merelli [email protected]
CORSO DI BASI DI DATI
1 CORSO DI BASI DI DATI GESTIONE DEI DATI E DELLA CONOSCENZA 1 Roberto Basili a.a. 2015/16 2 Obbiettivi Formativi Scenario Le grandi quantità di dati accumulate nelle reti di calcolatori costituiscono
ALGORITMI E LABORATORIO
DIPARTIMENTO DI MATEMATICA E INFORMATICA Corso di laurea in Informatica Anno accademico 2016/2017-2 anno E 9 CFU - 1 semestre Docenti titolari dell'insegnamento DOMENICO CANTONE - Modulo - INF/01-6 CFU
Fondamenti di Informatica e Programmazione
Fondamenti di Informatica e Programmazione Introduzione al Corso Prof. Marco Lombardi A.A. 2018/19 Informazioni sul Corso 1/6 8 CFU 80 ore di lezione, suddivise in Lezioni frontali Esercitazioni pratiche
Docente: Prof. Marco Patella Tutor: Stefano Pio Zingaro
Università di Bologna Facoltà di Ingegneria C.d.L. in Ing. Gestionale Fondamenti di Informatica T-1 (A-K) A.A. 2016/17 Docente: Prof. Marco Patella Tutor: Stefano Pio Zingaro 1 Obiettivi del corso Il corso
Prof. Daniele Regazzoni UNIVERSITÀ DI BERGAMO DIPARTIMENTO DI INGEGNERIA GESTIONALE, DELL INFORMAZIONE E DELLA PRODUZIONE
TECNOLOGIE PER IL DESIGN DI MODA Prof. Daniele Regazzoni UNIVERSITÀ DI BERGAMO DIPARTIMENTO DI INGEGNERIA GESTIONALE, DELL INFORMAZIONE E DELLA PRODUZIONE INTRODUZIONE AL CORSO Orario e modalità di svolgimento
ALGORITMI E COMPLESSITA'
DIPARTIMENTO DI MATEMATICA E INFORMATICA Corso di laurea magistrale in Informatica Anno accademico 2016/2017-1 anno ALGORITMI E COMPLESSITA' INF/01-9 CFU - 1 semestre Docente titolare dell'insegnamento
Architettura dei Sistemi Software: Introduzione al corso
Luca Cabibbo Architettura dei Sistemi Software Architettura dei Sistemi Software: Introduzione al corso dispensa asw010 marzo 2019 The beginning is the most important part of the work. Plato 1 Obiettivo
Corso di Fondamenti di Informatica e Laboratorio ato o T-AB
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Fondamenti di Informatica e Laboratorio ato o T-AB Corso di Laurea in Ingegneria Elettronica e Telecomunicazioni Prof. Michela Milano Prof.
Programmazione. Prof. Marco Bertini
Programmazione Prof. Marco Bertini [email protected] http://www.micc.unifi.it/bertini/ Presentazione del corso Orario Mercoledì: 9:15-13:15, aule 113+114 Giovedì: 9:15-13:15, aula 002 Ricevimento:
Fondamenti di Informatica T1"
Università degli Studi di Bologna Facoltà di Ingegneria" Fondamenti di Informatica T1" Corso di Laurea in Ingegneria! Elettrica e Automazione! Prof. Michela Milano" Anno accademico 2012/2013 CONTENUTI"
Laurea Magistrale in Ingegneria Informatica - I anno
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Laurea Magistrale in Ingegneria Informatica - I anno Numero di crediti: 9 CFU 90 ore di didattica frontale distribuite in 6 ore a settimana
Dipartimento di INFORMATICA TC - TTRG. Anno Scolastico Piano di Lavoro Disciplinare. INFORMATICA Articolazione: INFORMATICA Classe IV
Dipartimento di INFORMATICA TC - TTRG Anno Scolastico 2015-2016 Piano di Lavoro Disciplinare INFORMATICA Articolazione: INFORMATICA Classe IV Docenti del Dipartimento: Maculotti Marina (IV A i ) Mazzucchelli
Corso di Fondamenti di Informatica e Laboratorio
Corso di Fondamenti di Informatica e Laboratorio Corsi di Laurea Ingegneria Informatica (O-Z) Corsi di Laurea Ingegneria delle Telecomunicazioni - (A-Z) (ordinamento 03) A.A. 2009-2010 Prof. Giuseppe Mangioni
Sistemi Distribuiti Anno accademico 2009/10
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Sistemi Distribuiti Anno accademico 2009/10 Valeria Cardellini E-mail: [email protected] Tel: 06 72597388 Laurea Magistrale in
Docente: Prof. Marco Patella Tutor: Vincenzo Lomonaco
Università di Bologna Facoltà di Ingegneria C.d.L. in Ing. Gestionale Fondamenti di Informatica T-1 (A-K) A.A. 2015/16 Docente: Prof. Marco Patella Tutor: Vincenzo Lomonaco 1 Obiettivi del corso Il corso
Algoritmi e Strutture dati a.a. 2013/2014
a.a. 2013/2014 Dr Informazioni docente E-mail docente: [email protected] Ricevimento: Mercoledì 15:00-16:00 presso ufficio docenti a contratto (3 piano), Dipartimento di Matematica e Informatica, Campus
