Estratto del documento

Ingegneria del Software – appunti riassuntivi trovati in rete

Ingegneria del Software

Indice

Introduzione pag. 1

Il processo pag. 2

Il ciclo di vita del software pag. 2

I modelli del processo pag. 3

La visibilità del processo pag. 7

Gestione dei progetti software pag. 7

La qualità del software pag. 10

Ingegneria dei requisiti pag. 13

Progettazione delle interfacce pag. 17

Progettazione dell’architettura pag. 19

http://www.quellidiinformatica.org – La prima community di Ingegneria Informatica di Napoli

Ingegneria del software

Introduzione

L’ingegneria del software è, secondo alcune definizioni, “una disciplina della scienza delle

metodologie atta a risolvere i problemi di programmazione” e “lo studio dei principi, metodi e

strumenti per sviluppare e mantenere i sistemi software”.

L’evoluzione del software a cui abbiamo assistito fino ad ora (tab. 1.1) ha reso necessaria la nascita

di questa nuova scienza.

Epoca Anno Software

1 1950-1965 Batch, SW personalizzato

2 1963-1978 Pacchetti SW, basi di dati

3 1972-1988 Sistemi distribuiti, nuovi supporti digitali

4 1988-…… Sistemi esperti, rete globale Tab 1

In particolare l’ingegneria del software comincia a delinearsi durante la 2° epoca causa la mancanza

di metodologie, mentre durante la 3° epoca comincia a svilupparsi anche il campo della ricerca.

L’ingegneria del software è una conseguenza dell’ingegneria dell’hardware e dei sistemi. Include

un insieme di tre elementi chiave che sono metodi, strumenti e procedure che consentono al

responsabile di controllare il processo di sviluppo del software e offrono al professionista le basi per

costruire software di alta qualità e in modo produttivo. Esaminiamo brevemente ognuno di questi

elementi:

I metodi dell’ingegneria del software dicono al tecnico “come fare” per costruire il software. I

metodi comprendono un vasto insieme di compiti come pianificazione e stime del progetto, analisi

dei requisiti del software e del sistema; progettazione delle strutture dei dati, dell’architettura dei

programmi e delle procedure per gli algoritmi, codifica, testing, manutenzione. I metodi per

l’ingegneria del software spesso introducono un linguaggio speciale o una notazione grafica e un

insieme di criteri per la qualità del software.

Gli strumenti dell’ingegneria del software forniscono un supporto automatizzato o semi-

automatizzato ai metodi. Oggi, esistono strumenti che supportano ciascuno dei metodi prima

descritti. Quando gli strumenti sono integrati in modo che l’informazione creata da uno strumento

possa essere usata da un altro, si ha un sistema di supporto per lo sviluppo del software detto

Computer-Aided Software Engineering (CASE, ingegneria del software assistita dall’elaboratore).

Il CASE è l’unione di software, hardware, e una base di dati per l’ingegneria del software, ossia una

struttura di dati che contiene informazioni importanti sull’analisi, la progettazione, la codifica e il

testing che permette di creare un ambiente per l’ingegneria del software, analogamente al

CAD/CAE (Computer-Aided Design/Engineering per l’hardware).

Le procedure dell’ingegneria del software sono la colla che tiene uniti i metodi e gli strumenti e

che permette uno sviluppo razionale e tempestivo. Le procedure definiscono la sequenza con cui i

http://www.quellidiinformatica.org 1

metodi dovranno essere applicati; definiscono, poi, ciò che dovrà essere consegnato (documenti,

tabulati, moduli, ecc.), oltre ai controlli che aiutano ad assicurare la qualità e a coordinare le

modifiche e ai passi che devono essere fatti dai responsabili del software per stimare gli

avanzamenti.

L’ingegneria del software è fatta di passi che comprendono i metodi, gli strumenti e le procedure

prima definiti. Tali passi sono spesso indicati come i paradigmi dell’ingegneria del software.

Un paradigma dell’ingegneria del software è scelto sulla base della natura del progetto e

dell’applicazione, dei metodi e degli strumenti che devono essere usati e dei controlli e dei risultati

richiesti. In particolare, tre modelli sono stati oggetto di ampie discussioni e vengono descritti di

seguito.

Il processo

Il processo è suddiviso in 4 fasi principali:

• Fase di specifica;

• Fase di sviluppo;

• Fase di validazione;

• Fase di manutenzione.

Queste fasi hanno durata di tempo differente l’una dall’altra, in relazione anche all’esigenza dei

singoli progetti (nei progetti molto grandi, ad esempio, viene dato molto tempo alla fase di

specifica).

Il processo, inoltre, ha caratteristiche proprie che sono:

1. Comprensibilità: a cosa tende il processo esplicitamente definito e quanto facile da capire è

la definizione di processo?

2. Visibilità: le attività del processo terminano in risultati chiari così che il progresso del

processo è esternamente visibile?

3. Supportabilità: fin dove le attività del processo possono essere supportate da attrezzi CASE?

4. Accettabilità: il processo definito è accettabile e usabile dagli ingegneri responsabili per

produrre il prodotto del software?

5. Affidabilità: il processo è disegnato in modo che gli errori del processo sono evitati o sono

bloccati prima che si producono errori del prodotto?

6. Robustezza: il processo può continuare nonostante problemi inaspettati?

7. Manutenzione: il processo può evolversi per rispecchiare cambiamenti dei requisiti

organizzativi o miglioramenti identificati nel processo?

8. Rapidità: quanto velocemente può essere completato il processo di consegna di un sistema

da una specifica data?

Il ciclo di vita del software

Per ciclo di vita del software si intende la scomposizione del processo di produzione del software in

una sequenza ordinata di fasi temporali precisamente definite.

Il ciclo di vita del software comincia con la fase di definizione del problema da cui si ottiene il

documento in cui si individuano i propositi del progetto, gli obiettivi e i maggiori vincoli.

Con la seconda fase, quella dell’analisi dei requisiti, si determinano i servizi che il sistema deve

fornire e se questi servizi possono essere attuati con l’ausilio dell’informatica. Da questa fase si

ottengono essenzialmente il documento dei requisiti e il budget preliminare.

http://www.quellidiinformatica.org 2

La fase di specifica, invece, si occupa di descrivere le soluzioni, gli input, gli output e le funzioni

del progetto e fornisce il documento di specifica (che può essere visto come un manuale per gli

utenti) e il piano di sviluppo.

La fase di progettazione si occupa di come sarà strutturato il software a livello di interfaccia uomo-

macchina. Pertanto da questa fase si avrà il documento di design con la relativa architettura e il

design dettagliato.

Durante la fase di codifica, invece, si traduce il lavoro sino ad ora fatto in un linguaggio informatico

(C, Visual C++, ecc.) e si redige il documento relativo e il piano-test finale.

Infine vi sono la fase di testing, durante la quale si prova il software perché non dia errore durante

l’esecuzione e che fornisce il documento di test e il documento finale compreso di manuali di

sistema, utenti e i documenti per la manutenzione, cioè l’ultima fase del ciclo di vita del software,

che consiste nell’adattare l’applicazione ai possibili cambiamenti e capire se è sempre valida.

La figura seguente illustra il passaggio tra una fase e un’altra dove l’output (documenti, report,

prodotto) di uno stadio diviene l’input di quello successivo.

output

Attività

Fase input

Attività

Controllo Controllo

report docum. prodotto

I modelli del processo

Al fine di risolvere un determinato problema, l’équipe di analisti deve trovare una strategia

mediante la quale sia possibile la risoluzione del problema in esame.

A tal proposito si utilizzano 4 tipi fondamentali di modelli:

• Modello sequenziale (o a cascata o waterfall) che riproduce il ciclo di vita del software;

• che consiste nel proporre un progetto iniziale che poi si migliorerà fino

Modello evolutivo,

ad ottenere il progetto finale;

• Modello assemblaggio componenti, che utilizza elementi utilizzabili per diverse

applicazioni;

• Modello dei metodi formali, per il momento riservato alla ricerca.

A tal proposito illustriamo alcune figure relative ai modelli qui sopra descritti.

Analisi

Progettazione Codice

Collaudo Analisi Mantenimento

http://www.quellidiinformatica.org 3 Fig 1

Idea iniziale Release Release

1.0 2.0 Fig. 2

Idea iniziale Analisi

Prototipo Design Implementazione

Test

Vita del

prodotto

http://www.quellidiinformatica.org 4 Fig. 3

Team 3

Modellazione

Team 2 aziendale

Modellazione

Modellazione dei dati

Team 1 aziendale Modellazione

Modellazione

Modellazione del processo

dei dati

aziendale Generazione

dell’applicaz.

Modellazione

Modellazione del processo Collaudo e

dei dati sostituzione

Generazione

dell’applicaz.

Modellazione

del processo Collaudo e

sostituzione

Generazione

dell’applicaz.

Collaudo e

sostituzione

60 – 90 giorni Fig. 4

http://www.quellidiinformatica.org 5

Nella fig. 1 è illustrato il modello sequenziale di cui si è parlato in precedenza. Questo modello ha

come vantaggio la semplicità d’uso in quanto è un modello molto intuitivo, ma ha come svantaggio

la difficile modifica di una delle fasi poiché questa modifica avrebbe un costo molto elevato.

Le figg. 2 e 3 mostrano, invece, due variazioni del modello evolutivo, che tratta specificazione,

sviluppo e convalidazione come attività concorrenti (vedi fig

Anteprima
Vedrai una selezione di 6 pagine su 22
Ingegneria del software - il ciclo della vita del software Pag. 1 Ingegneria del software - il ciclo della vita del software Pag. 2
Anteprima di 6 pagg. su 22.
Scarica il documento per vederlo tutto.
Ingegneria del software - il ciclo della vita del software Pag. 6
Anteprima di 6 pagg. su 22.
Scarica il documento per vederlo tutto.
Ingegneria del software - il ciclo della vita del software Pag. 11
Anteprima di 6 pagg. su 22.
Scarica il documento per vederlo tutto.
Ingegneria del software - il ciclo della vita del software Pag. 16
Anteprima di 6 pagg. su 22.
Scarica il documento per vederlo tutto.
Ingegneria del software - il ciclo della vita del software Pag. 21
1 su 22
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher cecilialll di informazioni apprese con la frequenza delle lezioni di Ingegneria del Software e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Fassolino Rita.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community