Corso di Ingegneria del Software. Introduzione al corso

Documenti analoghi
Corso di Ingegneria del Software. Introduzione al corso

3. Ciclo di Vita e Processi di Sviluppo

Ingegneria del Software

Lezione 1 Ingegneria del Software II- Introduzione e Motivazione. Ingegneria del Software 2 Introduzione e Motivazioni 1

Materiale didattico. Sommario

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

Corso di Ingegneria del Software. Modelli di produzione del software

Corso di Ingegneria del Software. Modelli di produzione del software

Introduzione. Sommario. Il software. Definizione di Ingegneria del software

Corso di Ingegneria del Software. Modelli di produzione del software

Corso di Ingegneria del Software. I costi del software

Corso di Ingegneria del Software. Modelli di produzione del software

Introduzione. Contenuti da Cap. 1 Ghezzi et al.

Corso di Ingegneria del Software. Modelli di produzione del software

Corso di Ingegneria del Software. Modelli di produzione del software

PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI

Lezione 1 Ingegneria del Software II- Introduzione e Motivazione. Ingegneria del Software 2 Introduzione e Motivazioni 1

Gestione dello sviluppo software Modelli Base

Prof. Franca Garzotto. a.a Introduzione

Il ciclo di vita del software

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A2_2 V3.

Corso di Ingegneria del Software. Esempi di casi d uso

Laboratorio di Informatica I

Linguaggi di programmazione e astrazione

Informatica A. Allievi Gestionali A.A Nozioni di Base

Corso di Ingegneria del Software. I costi del software

Premessa sui linguaggi

PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii

Linguaggi di Programmazione

Introduzione alla Programmazione. Giselda De Vita

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Corso di Ingegneria del Software. Metriche Parte II

In passato, occuparsi di informatica era sinonimo di programmare computer

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Costi. Studio di fattibilità Progetto di massima. 5. Progetto di massima. M.Rumor. Studio di fattibilità. Studio di fattibilità Progetto di massima

Tecniche di Programmazione 2009/10

Programmazione C Massimo Callisto De Donato

Aspetti normativi. Decreto legislativo 81/2008 Tutela della salute e della sicurezza nei luoghi di lavoro Articolo 15 Misure generali di tutela

Architetture e Servizi Software per Internet (A.A. 2012/2013)

PIANO DI LAVORO DEL DOCENTE. Docente: Giuliana Pederzoli Classe: 3 A Indirizzo: SIA Disciplina: INFORMATICA Ore di lezione settimanali : 4

Ingegneria del Software 1 (A.A. 2011/2012)

Modelli di processo. Marina Zanella - Ingegneria del Software Processo 1

COMPUTATIONAL THINKING

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Modulo 2. La produzione industriale del software Il ciclo di vita del software I modelli di sviluppo. La industrializzazione del software

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

Software Extension to the PMBOK Guide Fifth Edition: cosa e? Andrea Caccamese, Tiziano Villa Milano, 22 maggio 2014

Corso di Ingegneria del Software. Il modello UP

DISEGNATORE MECCANICO

CODESYS Test Manager: Incrementare la qualità del software con unità di test CODESYS Users' Conference 2014, Fabio Filipponi

Metriche basate sulla LOC

12. Verifica e Validazione del Software

Introduzione al Calcolo Scientifico

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione

Sistemi Software (A.A. 2017/2018)

Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software. Processo software. Marina Mongiello. il processo

INTERAZIONE UOMO-MACCHINA

PIANO DI LAVORO DEL DOCENTE. Docente: Giuliana Pederzoli Classe: 3 A Indirizzo: SIA Disciplina: INFORMATICA Ore di lezione settimanali : 4

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

SampleManager LIMS Soluzioni di Training

Via Ernesto Calindri, 3, Roma (Italia) (39) (39)

OFFERTA DI LAVORO (1)

Corso di Architettura degli Elaboratori

Introduzione all OOP!

Progettazione di circuiti integrati

14. Verifica e Validazione

Introduzione al corso

Orchestra Control. Caso di Studio Scambiatore Pezzi SPI

Un linguaggio per la rappresentazione formale di vincoli su scenari d'uso

Intel Parallel Studio Seminar Milano 22 Giugno 2010

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Esercizi di autovalutazione Risposte agli esercizi di autovalutazione Esercizi... 64

Verifica e validazione: introduzione

Lezione 1 Ingegneria del Software II- Introduzione e Motivazione. Ingegneria del Software 2 Introduzione e Richiami 1

Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre:

Elementi di Informatica. Corso di Laurea in Scienze Geologiche a.a. 2003/2004

Fondamenti di Informatica. Proff. B.Buttarazzi & A.D Ambrogio A.A. 2011/2012

Ingegneria del Software. Prof. Paolo Ciancarini Corso di Ingegneria del Software CdL Informatica Università di Bologna

Introduzione al Calcolo Scientifico

Fondamenti Teorici. Antonio Pescapè e Marcello Esposito Parte Quarta v1.0

13. Verifica e Validazione del Software

Sistemi informativi secondo prospettive combinate

TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE

Il linguaggio di programmazione Python

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

Programmazione Orientata agli Oggetti in Linguaggio Java

Docenti Paolo Macchi, Loris Pagani A.S

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Introduzione alla Modellazione Solida

Transcript:

Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it

L Ingegneria del Software Sommario 1. Introduzione all Ingegneria del Software 1.1 Le finalità dell Ingegneria del software 1.2 Concetti di base: software, processi, progetti 1.3 Breve storia della Ingegneria del software 1.4 Cosa studia l ingegneria del software 2. Il programma del corso 3. Bibliografia

I periodi 1. Anni 50: Software Engineering come Hardware Engineering 2. Anni 60: Code&Fix 3. Anni 70: Il modello Waterfall 4. Anni 80: Software Reuse 5. Anni 90: Modelli incrementali 6. L ultima decade: Modelli Agili

I periodi 1. Anni 50: Software Engineering come Hardware Engineering 2. Anni 60: Code&Fix 3. Anni 70: Il modello Waterfall 4. Anni 80: Software Reuse 5. Anni 90: Modelli incrementali 6. L ultima decade: Modelli Agili

Anni 50: Software Engineering come Hardware Engineering Il contesto I lavoratori sono ingegneri o matematici Il software sviluppato per progetti importanti (e.g. aerei o razzi). I computer sono ingombranti e molto costosi (necessità di risparmiare: esecuzione manuale) Le caratteristiche Hardware engineering orientation I nomi delle associazioni professionali: the Association for Computing Machinery; the IEEE (Institute of Electrical and Electronic Engineers) Computer Society. Approccio: Engineer software like you engineer hardware. Lo slogan è measure twice, cut once

I periodi 1. Anni 50: Software Engineering come Hardware Engineering 2. Anni 60: Code&Fix 3. Anni 70: Il modello Waterfall 4. Anni 80: Software Reuse 5. Anni 90: Modelli incrementali 6. L ultima decade: Modelli Agili

Anni 60: Code&Fix 1/3 Il contesto 1. Il software è diverso dall hardware: facile da modificare e copiare non si consuma ( software reliability non si poteva stimare bene usando il concetto di affidabilita dell hardware) invisibile e senza peso, ma costa 2. Molti software diventano people-intensive (importanza alla interazione uomo-macchina) 3. Rapida espansione della domanda di software (provocò una carenza di ingegneri e matematici) 4. Potenti mainframe

Anni 60: Code&Fix 2/3 Le caratteristiche Approccio: code and fix Sempre più large applicazioni mission-oriented. Training di non-engineering people : laureati in lettere, lingue ecc per sviluppare software che usavano code-and-fix in modo naturale e creativo, originando lo spaghetti-code. cowboy programmers che impiegavano nottate per correggere programmi in tempo per la scadenza della consegna Linguaggi ad alto livello Fortran COBOL (di facile uso per non matematici)

Anni 60: Code&Fix 3/3 Nasce formalmente l Ingegneria del Software La conferenza NATO di ottobre 1968, a Garmisch (Germania), coniò il termine Ingegneria del software. La conclusione della Conferenza NATO fu che lo sviluppo del software doveva essere condotto utilizzando un approccio ingegneristico, che introducesse principi di standardizzazione e formalizzazione dei metodi di lavoro.

I periodi 1. Anni 50: Software Engineering come Hardware Engineering 2. Anni 60: Code&Fix 3. Anni 70: Il modello Waterfall 4. Anni 80: Software Reuse 5. Anni 90: Modelli incrementali 6. L ultima decade: Modelli Agili

Anni 70: Il modello Waterfall 1/3 Il contesto Necessità di metodi organizzati e pratiche disciplinate per realizzare i sempre più grandi progetti e prodotti che erano commissionati Le caratteristiche Approccio: modello Waterfall (reazione al code-and-fix approach) Codifica: Programmazione strutturata, Top-down programming (Jackson s structured design and programming) Linguaggi Pascal e Modula-2 Correttezza formale dei programmi

Anni 70: Il modello Waterfall 2/3 The Royce Waterfall Model (1970) Figura: B. W. Boehm: A view of 20th and 21st century software engineering. ICSE 2006, pag. 16

Anni 70: Il modello Waterfall 3/3 Sintesi delle carateristiche degli anni 70 Figura: B. W. Boehm: A view of 20th and 21st century software engineering. ICSE 2006, pag. 16

I periodi 1. Anni 50: Software Engineering come Hardware Engineering 2. Anni 60: Code&Fix 3. Anni 70: Il modello Waterfall 4. Anni 80: Software Reuse 5. Anni 90: Modelli incrementali 6. L ultima decade: Modelli Agili

Anni 80: Software Reuse Il contesto Critiche al modello waterfall modello sequenziale (una fase inizia solo quando termina la precedente). testing and debugging Fu osservato che buona parte della attività di test implicava la riscrittura del codice. document-intensive, lento e costoso (nell uso). Poichè la documentazione precede la codifica, lo slogan era We d better hurry up and start coding, because we ll have a lot of debugging to do.

Anni 80: Software Reuse Le caratteristiche Computer-Aided Software Engineering (CASE) (che supporta lo sviluppo del software attraverso interfacce grafiche (shell) e visuali e librerie di funzionalità) Nascita e uso degli standard Fu sviluppato l International Standards Organization ISO-9001 standard for quality practices applicabile al software Le aziende per paura di non essere competitive cercavano di adottare gli standard Strumenti e tecniche per migliorare la produttività software reuse/object orientation (Smalltalk, Eiffel, C++) expert systems potenti workstations visual programming