Materiale didattico. Sommario



Documenti analoghi
Ingegneria del Software

Corso di Ingegneria del Software. Concetti Introduttivi

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

Ingegneria del Software II

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

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

INGEGNERIA 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. Il modello UP

Elementi di Informatica e Programmazione

SAPIENZA Università di Roma, Facoltà di Ingegneria (sede di RIETI)

Introduzione al corso

INSEGNAMENTO DI INGEGNERIA DEL SOFTWARE B (5 CFU) CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA a.a

Gestione dello sviluppo software Modelli Base

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

Corso di Ingegneria del Software. Casi d uso

Corso di Laurea Ingegneria Civile

Corso di Ingegneria del Software. Introduzione al corso

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

Corso di Ingegneria del Software. Informazioni sul corso

SCD IS. Documentazione. Domande ricorrenti 1. Valutazione quantitativa 1. Perché documentare... UniPD Ingegneria del Software mod.

SCUOLA POLITECNICA INGEGNERIA GESTIONALE GESTIONE DELLA QUALITA' E SVILUPPO PRODOTTO PASSANNANTI GIANFRANCO. 1 semestre Facoltativa Voto in trentesimi

Ingegneria del Software

3. Ciclo di Vita e Processi di Sviluppo

Basi di Dati Ingegneria Informatica e delle Telecomunicazioni

2. Finalità generali previste dalle indicazioni nazionali

GESTORE DEL SISTEMA QUALITA AZIENDALE

CORSO DI FONDAMENTI DI INFORMATICA

2. Finalità generali previste dalle indicazioni nazionali

Corso di Ingegneria del Software. Esempi di casi d uso

Corso di Laurea Ingegneria Civile

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

Corso di Fondamenti di Informatica e Laboratorio ato o T-AB

SCD IS. Premesse al Corso. UniPD Ingegneria del Software mod. A 1. Ingegneria del software 1. Parole chiave 1. Ingegneria del software 2

Processi iterativi. Marina Zanella - Ingegneria del Software RUP 1

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Ingegneria del Software L-A

Università degli Studi di Bologna. Facoltà di Ingegneria CORSO DI INGEGNERIA DEL SOFTWARE. Prof. Evelina Lamma

Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale

Corso di Ingegneria del Software. Testing

Giacomo Fauser. Istituto Tecnico Settore Tecnologico Via Ricci, Novara PIANO DI LAVORO. Per l anno scolastico

1 anno Attività obbligatorie 30 cfu moduli ssd. 2 anno insegnamenti. F1801Q 16 Laurea Magistrale in Informatica regolamento didattico

Dip. Informatica VI Piano. Ambito disciplinare. Secondo Semestre Secondo Anno Lezioni frontali (9 CFU) Progetto (3 CFU)

Metriche basate sulla LOC

Corso di Ingegneria del Software. Modelli di produzione del software

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

IL SISTEMA OPERATIVO

Sistemi Informativi. Ing. Fabrizio Riguzzi

Corso di Ingegneria del Software. Modelli di produzione del software

Dipartimento di Informatica Piano di lavoro funzionale alla redazione del piano di lavoro preventivo individuale del docente Anno Scolastico 2018/2019

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

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

Sistemi Informativi. Marino Segnan

Programmazione Orientata agli Oggetti I

TECNICO SUPERIORE PER LA GESTIONE DI STRUTTURE DEL BENESSERE

Docente: Prof. Marco Patella Tutor: Stefano Pio Zingaro

Introduzione al corso

MAPPA DELLE COMPETENZE - Indirizzo INFORMATICA, articolazione INFORMATICA a.s

NUOVI SCENARI DI MERCATO

IT Management and Governance

Docente: Prof. Marco Patella Tutor: Vincenzo Lomonaco

Programmazione Disciplinare: Tecnologie e progettazione di sistemi informatici e di telecomunicazioni Classe:3F-3G- etc...

Introduzione al corso

Università degli Studi di Bologna Facoltà di Ingegneria. Corso di Applicazioni di Intelligenza Artificiale LS

SCD IS. Documentazione. Domande ricorrenti 1. Cosa documentare. Come documentare. Perché documentare 3. Domande ricorrenti 2. Perché documentare

Capitolo 7. Ingegneria del Software. Mauro Giacomini Pearson Addison-Wesley. All rights reserved

CLASSE: 4 INF MATERIA: TPSIT DOCENTE: EPIS CARLO PROGRAMMAZIONE DIDATTICA

Verifica e Validazione del Software

Grafica ed interfacce per la comunicazione. Scienze della Comunicazione A.A.2013/14

Architettura degli elaboratori

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

Business Process Management

Sistemi Qualità e normativa

Programmazione Orientata agli Oggetti in Linguaggio Java

SCD IS. Documentazione. Documentazione. Perché documentare... Valutazione quantitativa 1. Domande ricorrenti 1. Perché documentare

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

MODELLO DI PROGRAMMAZIONE DISCIPLINARE

Sviluppo di Software Sicuro -S 3 Introduzione. Sommario 24/02/2010 SCOPO DEL CORSO

Introduzione al corso

INFORMATICA PER LE SCIENZE UMANE a.a. 2016/2017

Ingegneria del Software 2010

CORSO DI LAUREA IN INGEGNERIA ELETTRICA, ELETTRONICA E INFORMATICA PERCORSO FORMATIVO COORTE 2018/19

SCD IS. Documentazione. Documentazione. Valutazione quantitativa 1. Domande ricorrenti 1. Modello a V. Perché documentare

Corso di Laurea in Ingegneria Elettronica e Informatica

Lo sviluppo del progetto informatico

Basi di dati (nuovo ordinamento)

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Disciplina: INFORMATICA

Disciplina: Tecnologie della Comunicazione

Docente: Rossano Gaeta Lezioni: Martedì ore 14:30-16:30, Giovedì 15:30-17:30

CORSO DI Sistemi Operativi e Lab. (2 anno-270 CCL in Ingegneria Informatica) 9 CFU ANNO ACCADEMICO

Software. Engineering

Elementi di Informatica

Metodologie di Specifica del Software

Transcript:

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 e-mail: fasolino@unina.it tel. 081 768 3852 1 Presentazione del corso Obiettivi del corso Far conoscere principi, metodi e tecniche dell'ingegneria del software e sviluppare competenze applicabili allo sviluppo ed evoluzione di grandi sistemi software, aventi caratteristiche di qualità ed economicità. Il corso utilizza lo studio di un caso che illustra i problemi e gli esiti delle differenti attivita' su un sistema software realizzato sia in versione C (mediante approccio orientato alle funzioni) che in versione C++ (mediante approccio orientato agli oggetti). Modalità dell esame Discussione di un progetto sviluppato dagli studenti, organizzati in gruppi di tre persone Accertamento della conoscenza dei contenuti trattati nel corso 2 1

Materiale didattico Libro di testo: Pankaj Jalote, An Integrated Approach to Software Engineering, 2nd edition, 1997, Springer Altri libri consigliati: Roger S. Pressman, Principi di Ingegneria del Software, seconda edizione, Mc Graw Hill C. Ghezzi, et al. Ingegneria del Software, Mondadori Informatica UML -standard: http://www.rational.com Copia dei lucidi e materiale integrativo fornito dal docente 3 Sommario Argomenti della lezione: Software: definizione e caratteristiche essenziali; Ingegneria del software: definizione, fattori caratterizzanti, obiettivo e strategia; sviluppo per fasi: caratteristiche e fasi fondamentali. Modelli di processo software: modello a cascata, modello prototipale, modelli evolutivi ed incrementali. 4 2

Software Software: non solo programmi, ma l insieme degli artifatti che lo compongono, prodotti durante il suo sviluppo un programma verrà usato dal suo autore, che lo ha sviluppato senza preoccuparsi di altri utenti, di portabilità, affidabilità, un sistema software, essendo rivolto ad altri utenti, dovrà essere usabile, portabile, affidabile, etc... la definizione IEEE (Institute of Electrical and Electronics Engineers) insieme di programmi, procedure, regole, e ogni altra documentazione relativa al funzionamento di un sistema di elaborazione dati 5 I problemi del Software costosità, legata alla bassa produttività inaffidabilità: il software non si comporta come ci si aspetta la necessità di una continua evoluzione: una volta rilasciato, il software entra in fase di manutenzione manutenzione correttiva: per correggere difetti riscontrati durante l utilizzo manutenzione adattativa: per adeguare il software alle modifiche dell ambiente operativo manutenzione perfettiva: per aggiungere nuove funzionalità la realtà del rework (modifiche durante lo sviluppo): conseguenza di requisiti poco chiari e mal compresi conseguenza dei lunghi tempi necessari per il rilascio 6 3

Il Problema dell Ingegneria del Software (I.S.) La necessità di approcci sistematici allo sviluppo del software Processi: regole per definire la sequenza delle fasi ed attività per lo sviluppo del sw; i documenti da produrre e rilasciare; i controlli per assicurare la qualità e stimare gli avanzamenti; le risorse da impiegare nello sviluppo Modelli del Processo di Sviluppo del Software Metodi: per definire tecniche da impiegare nello sviluppo del software Metodi per la definizione dei requisiti, per la progettazione, la codifica,. Strumenti: per fornire l adeguato supporto all applicazione di processi e metodi CASE, ambienti di programmazione,. 7 Una definizione di Ingegneria del Software La definizione della IEEE: (1) applicazione di un approccio sistematico, disciplinato, quantificabile allo sviluppo, esercizio e manutenzione del software; cioè, l applicazione dell ingegneria al software. (2) studio degli approcci di cui al punto (1) I fattori che governano l Ingegneria del software: costi delle risorse impiegate per lo sviluppo (umane, hardware, software) tempi di consegna (mercato sempre più esigente) qualità del prodotto finale (svariati aspetti) 8 4

Un modello di qualità del software (modello di McCall) Tre dimensioni e relativi fattori: Product Operation Correttezza, Affidabilità, Efficienza, Usabilità,... Product Transition: Portabilità, Riusabilità, Interoperabilità Product Revision: Manutenibilità, Flessibilità, Testabilità Necessità di metriche (misure quantificabili per valutare le varie caratteristiche del software) Revision Transition Operation 9 L approccio dell Ingegneria del Software Obiettivo dell Ingegneria del software: definire metodi e procedure per lo sviluppo del software, utili ad ottenere sistemi di grandi dimensioni, di alta qualità, a basso costo, ed in breve tempo Per conseguire tali obiettivi occorre puntare sulla qualità del processo di sviluppo del software il software come altre industrie manifatturiere Un processo di sviluppo per fasi: ogni fase è responsabile dei suoi output presenza di punti di verifica della qualità alla fine di ogni fase Vari modelli di processo software 10 5

Le attività fondamentali di un processo di sviluppo software Analisi dei Requisiti identificare cosa si richiede al sistema, al fine di definirne puntualmente i requisiti in un idoneo documento (Specifica dei Requisiti Software -SRS) include 2 attività: analisi del problema e specifica dei requisiti Progettazione (o Design) individuare una soluzione al problema specificato nell SRS e produzione dei documenti di progetto include due attività: top-level design: definizione dell architettura del sistema low-level design: definizione della logica interna dei componenti 11 Le attività fondamentali di un processo di sviluppo software Codifica implementare il progetto usando un linguaggio di codifica, in maniera semplice e comprensibile uso di programmazione strutturata e stili di codifica Testing verifica della qualità del software, individuando gli errori sfuggiti alle fasi precedenti, basandosi su prove di esecuzione del software (casi di test) vari livelli di testing: testing di unità, di integrazione, di sistema, di accettazione richiede la definizione di un documento di specifica del testing e di un rapporto di test 12 6

Il Project Management Un processo di sviluppo a fasi non definisce: Allocazione delle risorse per le varie attività Lo scheduling delle attività ed i tempi da rispettare Come verificare se lo svolgimento delle singole fasi sia corretto... Necessità del project management project planning (def. attività, risorse da allocare, tempi) project monitoring e controllo metriche di prodotto e di processo per misurare e controllare... 13 7