Ingegneria del Software (e Prova Finale) Luciano Baresi
|
|
|
- Erico Santoro
- 9 anni fa
- Visualizzazioni
Transcript
1 Ingegneria del Software (e Prova Finale) Luciano Baresi
2 Organizzazione dei corsi Ingegneria del software (7 crediti) Lezioni: 42 ore Esercitazioni: 28 ore Prova finale (3 crediti) Esercitazioni: 12 ore Laboratorio: 32 ore
3 Chi siamo Titolare del corso Luciano Baresi Esercitazioni Alessandro Campi Laboratorio Damiano Somenzi
4 Orario Martedì 14:15 18:15 Giovedì 9:15 13:15 Lunedì (laboratorio) 9:15 13:15
5 Programma Programmazione nei linguaggi orientati agli oggetti Linguaggio Java Principi di programmazione di rete e distribuita Principi di programmazione delle interfacce utente Progettazione orientata agli oggetti Unified Modeling Language Design pattern Specifica di metodi e classi Principi del test funzionale e strutturale
6 Materiale didattico Non esiste un libro di testo unico
7 Obiettivi Progettazione e programmazione ad oggetti Java/RMI/Swing UML Specifica rigorosa (per contratti) Elementi per il test sistematico dei programmi
8 Iniziamo?
9 Ingegneria del Software Settore dell'informatica che studia sistemi complessi e di grandi dimensioni nati dal lavoro di gruppo Questi sistemi esistono in diverse versioni hanno una durata di anni sono soggetti a frequenti modifiche
10 Possibili definizioni Approccio sistematico allo sviluppo, alla messa in opera e alla manutenzione del software Metodi tecnici e manageriali per prevedere e tenere sotto controllo i costi per tutta la vita ("lifecycle") dei prodotti software Come tutte le ingegnerie: Fornisce una guida per applicare la conoscenza scientifica allo sviluppo di soluzioni (software) "costeffective" per risolvere problemi pratici a beneficio dell'uomo
11 Processo e prodotto Processo Come avviene lo sviluppo industriale del software Prodotto Che cosa viene prodotto? Studiare i metodi da usare perché il processo porti allo sviluppo di prodotti di qualità
12 Ingegneria Progetto normale/standard Soluzione a un problema noto e ricorrente Riuso di soluzioni note Innovazione limitata tipico di discipline mature Progetto innovativo Soluzioni radicalmente nuove a problemi non noti Occorre saper distinguere tra i due
13 Confronto con ingegneria tradizionale (Troppo) spesso viene trattata come progetto innovativo (Troppo) spesso viene praticata in modo poco sistematico (ingegneristico/industriale)
14 Differenze (rispetto a ingegnerie tradizionali) Prevale il progetto di routine Progetto di estremo dettaglio che produce le specifiche per la realizzazione Processo di produzione separato Progetti alternativi convalidati attraverso modelli Dopo il progetto, pochi margini di cambiamento Processi standard per progetto e produzione
15 Ingegneria del software (1) L ingegneria civile ha alle spalle 3000 anni Un patrimonio di conoscenze Ciò è vero per quasi tutte le ingegnerie L ingegneria del software ha solo 50 anni
16 Ingegneria del software (2) Congelare le specifiche di prodotto e di progetto è spesso non realistico Cambiamenti ed evoluzione spesso inevitabili poichè il software è il cuore dei processi sociali e di business Questi continuano ad evolvere
17 Il software oggi Il software è parte essenziale di molti prodotti di largo consumo Dal telefonino alla lavatrice, dall automobile al forno Spesso il software non è il prodotto, ma è una parte del prodotto Deve essere ingegnerizzato con il resto dell applicazione Il meccanismo delle patch non funziona in tutti questi casi Come faccio ad attaccare la macchina ad Internet
18
19
20 Complessità, criticità e dimensione Fanno la vera differenza Richiedono un approccio sistematico (ingegneristico) per poter ottenere la necessaria qualità controllando costi e tempi Secondo F. Brooks (The Mythical Man Month) "programmare per se stesso" rispetto a "programmare per altri" -> costo al quadrato Aggiungere persone a un progetto in ritardo lo ritarda ulteriormente
21 CHAOS report (I) OVERRUNS AND FEATURES Time and cost overruns, plus percentage of features delivered from CHAOS research for the years 2004 to TIME COST FEATURES % 72% 79% 71% 74% 56% 47% 54% 46% 59% 64% 68% 67% 74% 69% Features Cost Time
22 Progettazione vs. Programmazione Programmatore Sviluppa un programma completo Partendoda specifiche fornite da altri Lavora individualmente Ingegnere del software Analizza problemi e domini applicativi Coglie i requisiti e sviluppa specifiche Progettacomponenti, potenzialmente riusabili Lavora in un gruppo
23 Progettazione Scomposizione di un sistema in moduli scomporre un problema in sotto-problemi che possano essere risolti indipendentemente Quali obiettivi della scomposizione? governare la complessità divide et impera rendere efficiente il processo sviluppo indipendente delle parti Riduzione di conflitti/incomprensioni fra gli sviluppatori
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
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
Ingegneria del Software
Ingegneria del Software Introduzione e Concetti Fondamentali Porfirio Tramontana, 2009 Corso di Ingegneria del Software Slide 1 Riferimenti Ian Sommerville, Ingegneria del Software, Capitolo 1 Porfirio
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:
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
Elementi di Informatica e Programmazione
Elementi di Informatica e Programmazione Introduzione Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Informazioni
Corso di Laurea Ingegneria Informatica
Corso di Laurea Ingegneria Informatica Presentazione del corso di Fondamenti di Informatica 2 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Presentazione Corso 1 Contenuti Corso di
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
CORSO DI LAUREA IN INGEGNERIA ELETTRICA, ELETTRONICA E INFORMATICA
CORSO DI LAUREA IN INGEGNERIA ELETTRICA, ELETTRONICA E INFORMATICA PERCORSO FORMATIVO COORTE 2016/17 A partire dall'anno accademico 2015-16, oltre la didattica tradizionale in presenza è prevista la possibilità
Sistemi Informativi Aziendali
Sistemi Informativi Aziendali Fulvio Corno, Dip. di Automatica e Informatica a.a. 2017/18 02CIXPG (corso 1) 1 Contenuto del corso (dal Portale della Didattica) Image: http://www.wordle.net/ 2 Riferimento
Data del DM di approvazione del ordinamento 01/10/2002 didattico. Data del DR di emanazione del ordinamento 04/03/2003 didattico
Scheda informativa Università Classe Nome del corso Università degli Studi di BOLOGNA Data del DM di approvazione del ordinamento 01/10/2002 didattico Data del DR di emanazione del ordinamento 04/03/2003
Introduzione alla OOP Object Oriented Programming
Introduzione alla OOP Object Oriented Programming Programmazione Orientata agli Oggetti I livelli dei linguaggi livelli di tensione porte logiche codice binario linguaggio assembler linguaggi procedurali
Laboratorio di Progettazione di Sistemi Software Design Patterns
TITLE Laboratorio di Progettazione di Sistemi Software Design Patterns Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Tipi di Design Patterns Creazionali Strutturali Comportamentali
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
Introduzione. Fondamenti di Informatica 1. Dispensa 1 Gennaio Contenuti. Alfonso Miola. K Corso di Fondamenti di Informatica 1
Alfonso Miola Dispensa 1 Gennaio 2001 1 Contenuti K Corso di K Programma del corso K Materiale didattico K Organizzazione didattica K Attività di laboratorio K Prove di valutazione ed esami 2 Corso di
Fondamenti di Informatica
Fondamenti di Informatica Ingegneria delle Comunicazioni Ingegneria Elettronica a.a. 2014-15, I anno, II semestre Intro.1 Docenti prof. Silvio Salza Dipartimento di Ingegneria informatica automatica e
UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009
UML Il linguaggio UML e ArgoUML 30/09/2009 Ingegneria dei sistemi software 2009/2010 [email protected] UML Unified Modeling Language una famiglia di notazioni grafiche standardizzate* orientata
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
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
Elementi di Informatica
Corso di Laurea triennale in Ingegneria Chimica in condivisione con Corso di Laurea triennale in Ingegneria Navale e Scienze dei Materiali Elementi di Informatica A.A. 2016/17 prof. Mario Barbareschi Introduzione
Prof.ssa Cinzia DESSI. Economia e Organizzazione Aziendale. Il Programma. Industriali A.A. A.A primo primo semestre
Prof.ssa Cinzia DESSI Economia e Organizzazione Aziendale Il Programma Università degli degli studi studi di di Cagliari Cagliari Corso Corso di di Laurea Laurea in in Biotecnologie Industriali A.A. A.A.
Fondamenti di informatica. Introduzione al corso di Fondamenti di informatica I e II (informatici) Anno Accademico
un approccio a oggetti con Java Luca Cabibbo al corso di I e II (informatici) Anno Accademico 1-2 18 febbraio 2 1 I (informatici) Docente: con la collaborazione di: Luca Cabibbo Maurizio Pizzonia Primo
Cosa è un programma. Informatica di Base -- R.Gaeta 18
Cosa è un programma Il programma è la scatola nera che risolve il problema computazionale; Il programma è una sequenza di istruzioni che devono essere eseguite; Il programma è la traduzione per il computer
U4Learn.
U4Learn www.u4learn.it U4Learn 1 SPINOFF - UNIPA E-learning cloud-based U4Learn: Nuove Prospettive per la Formazione Ambiti Formativi SCOLASTICO ACCADEMICO PROFESSIONALE U4Learn: Nuove Prospettive per
FONDAMENTI DI INTELLIGENZA ARTIFICIALE-M
FONDAMENTI DI INTELLIGENZA ARTIFICIALE-M A.A. 2016/2017 Docente: Prof. Paola Mello e-mail: [email protected] Tel: 051 2093818 Server web: http://www.lia.deis.unibo.it/courses/ai/fundamentalsai2016-17/
35% 40% Scambiatori di calore per qualsiasi esigenza Risparmia tempo e denaro! Minore volume di ritenzione
MAKING MODERN LIVING POSSIBLE Scambiatori di calore per qualsiasi esigenza Risparmia tempo e denaro! Scambiatori di calore a micropiastre D-range 35% Minore volume di ritenzione Consente una riduzione
Architettura degli elaboratori
Architettura degli elaboratori Ottavio D Antona [email protected] Maria Luisa Damiani [email protected] Dipartimento di Informatica Università degli Studi di Milano Architettura degli Elaboratori -
Controllo di Gestione
Controllo di Gestione Controllo di gestione (CdG) o Controllo dei risultati Il controllo di gestione si sostanzia nella misurazione delle performance interne e nella responsabilizzazione su parametri-obiettivo,
Sapienza Università di Roma, Facoltà di Ingegneria Sala degli Affreschi Via Eudossiana, 18
DIPARTIMENTO DI INGEGNERIA STRUTTURALE E GEOTECNICA 1 Corso di Formazione (CFP richiesti: n. 36) Sisma Bonus e messa in sicurezza degli edifici in C.A. Numero massimo di iscritti: 50 Sapienza Università
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
Corso di Ingegneria del Software. Modelli di produzione del software
Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca [email protected] 1. Concetti di base Sommario 2. 2.1 Modello a cascata 2.2 Modelli incrementali 2.3 2.4 Comparazione dei modelli 2.5
Corso di Meccanica Applicata alle Macchine e Macchine
Corso di Meccanica Applicata alle Macchine e Macchine Prof. Ettore Pennestrì Corso di Meccanica Applicata alle Macchine e Macchine 1 / 11 Organizzazione corso Lezioni teoriche Esercitazioni Orario delle
Il sistema informativo aziendale
Il sistema informativo aziendale Informatica e azienda L azienda è caratterizzata da: Persone legate tra loro da una struttura gerarchica che definisce le dipendenze Attività produttive necessarie per
Cosa è l Informatica?
Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore
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
Organizzazione Aziendale 16. ORGANIZZAZIONE AZIENDALE Prof. Rocco Reina CFU 8 /ore 64
ORGANIZZAZIONE AZIENDALE Prof. Rocco Reina CFU 8 /ore 64 AGENDA Presentazione del corso Obiettivi Articolazione percorso Programma Didattico Materiale Didattico Presentazione del Corso Il corso di Organizzazione
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
Disciplina: SCIENZE MATEMATICHE UNITÀ DI APPRENDIMENTO 1
Disciplina: SCIENZE MATEMATICHE UNITÀ DI APPRENDIMENTO 1 OBIETTIVO FORMATIVO Avviare alla conoscenza di termini e simboli matematici. Utilizza ed interpreta il linguaggio matematico e ne coglie il rapporto
WORD 2000 SPECIALIST Microsoft Office Specialist COURSEWARE
Collana Microsoft Office COURSEWARE I Manuali d Aula Ufficiali Microsoft Office si avvalgono delle metodologie didattiche più avanzate che consentono una efficace quanto rapida erogazione del corso. Il
Lezione 1 Ingegneria del Software II- Introduzione e Motivazione. Ingegneria del Software 2 Introduzione e Motivazioni 1
Lezione 1 Ingegneria del Software II- Introduzione e Motivazione Ingegneria del Software 2 Introduzione e Motivazioni 1 Riferimenti bibliografici I. Sommerville Ingegneria del Software 8a edizione Cap.1
Qualifica in Esperto Gestione dell Energia (E.G.E.) Energy Auditor 56 ore
Mod.07.02.01.AB brochure_corso_aggiornamento rev. 03 del 09/01/2015 Qualifica in Esperto Gestione dell Energia (E.G.E.) Energy Auditor 56 ore INFORMAZIONI GENERALI ANALISI DEL BISOGNO FORMATIVO L'esperto
FONDAMENTI DI INTELLIGENZA ARTIFICIALE-M
FONDAMENTI DI INTELLIGENZA ARTIFICIALE-M A.A. 2010/2011 Docente: Prof. Paola Mello e-mail: [email protected] Tel: 051 2093818 Server web del modulo: http://www.lia.deis.unibo.it/courses/ai/fundamentalsai2010-11/
collegio didattico di ingegneria civile
collegio didattico di ingegneria civile Corso di Laurea in Ingegneria civile (Classe 7 Ingegneria civile e ambientale - D.M. 270/2004) II Corso di Laurea in Ingegneria Civile, afferente al Dipartimento
Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 07 Oggetti e Java Marzo 2010 Programmazione Java 1 Contenuti Il linguaggio Java Applicazioni Java e il metodo main Esempi di applicazioni
Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi
Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A4_3 V2.1 Progettazione Metodi e Linguaggi Il contenuto del documento è liberamente utilizzabile dagli studenti, per
Corso di Informatica per Biologia
Corso di Informatica per Biologia (docente) Fabio Aiolli E-mail: [email protected] Web: www.math.unipd.it/~aiolli (docente laboratorio) Giovanni Da San Martino E-mail: [email protected] Dipartimento
Introduzione al Calcolo Scientifico
Introduzione al Calcolo Scientifico Francesca Mazzia Dipartimento di Matematica Università di Bari Francesca Mazzia (Univ. Bari) Introduzione al Calcolo Scientifico 1 / 14 Calcolo Scientifico Insieme degli
I Nuovi Corsi di Laurea in Informatica. La laurea triennale (classe L-31) L
I Nuovi Corsi di Laurea in Informatica La laurea triennale (classe L-31) L Obiettivi La progettazione del nuovo Corso di Laurea è avvenuto seguendo una serie di linee-guida, che ne costituiscono altrettanti
Corso di Fondamenti di Informatica T-1
Università degli Studi di Bologna Scuola di Ingegneria e Architettura Dipartimento di Informatica Scienza e Ingegneria Corso di Fondamenti di Informatica T-1 Corso di Studi in Ingegneria Informatica Prof.
Corso di Fondamenti di Informatica T-1
Università degli Studi di Bologna Scuola di Ingegneria e Architettura Dipartimento di Informatica Scienza e Ingegneria Corso di Fondamenti di Informatica T-1 Corso di Studi in Ingegneria Informatica Prof.
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]
I.I.S. N. PELLATI Nizza Monferrato - Canelli
A. S. 2011-2012 INFORMATICA Classe 1AG - CAT Ore annuali: 99 DOCENTE MARIA PIA SECCO Obiettivi disciplinari Conoscenze Informazioni, dati e loro codifica. Architettura e componenti di un computer. Funzioni
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
