Estratto del documento

Ingegneria del software

Un insieme di pratiche ingegneristiche che servono a supportare e a migliorare la realizzazione di un prodotto software.

Metriche

Forniscono valutazioni oggettive e misurabili del codice.

  • LoC (Lines of code)
  • Fattore di qualità Q = LoC/Errori
  • Lack of Cohesion in Methods

Modelli di sviluppo del software

Per agevolare l'organizzazione ed il flusso di lavoro di grandi progetti è necessario definire un modello di sviluppo attraverso il quale vengono pianificate ed organizzate le attività di sviluppo.

Waterfall model

  • Definizione specifiche
  • Progettazione
  • Implementazione
  • Integrazione (con i dispositivi e gli altri sistemi con cui il progetto si deve integrare)
  • Validazione: Testing (per verificare l'esistenza di errori) e Debugging (per rimuovere gli errori)
  • Installazione
  • Manutenzione

Svantaggioso → Progetto chiuso, manutenzione critica

Modello a spirale

  • Obbiettivi iniziali
  • Ciclo di sviluppo
    • Definizione specifiche
    • Valutazione rischi sviluppo
    • Implementazione
    • Validazione
  • In caso di nuovi obbiettivi si può ciclare

Vantaggioso → consente di descrivere un processo poco per volta

Sviluppo incrementale ed iterativo

  • Sviluppo iterativo: lo sviluppo segue iterazioni (è ciclico).
  • Sviluppo incrementale: lo sviluppo si basa su specifiche che vengono definite gradualmente.

Agile software development

L'Agile Software Development rientra nei cosiddetti Modelli Evolutivi, che si fondano sull'idea centrale di coinvolgere il cliente o l'utente, fornendogli continue nuove versioni in modo che possa essere partecipe nello sviluppo del progetto. L'obiettivo è rendere il cliente il più soddisfatto possibile.

  • Individuals and Interactions: le persone sono più importanti degli strumenti.
  • Working Software: scrivere codice facile e capire da usare.
  • Customer Collaboration: partecipazione del cliente.
  • Responding to Change: tutti i sistemi cambiano e si evolvono nel tempo.

Progettazione e cambiamento

Come deve avvenire la Progettazione per tenere conto del Cambiamento? La progettazione agile non avviene in un momento ben definito. Avviene continuamente, tutte le volte che nel codice si verifica uno dei seguenti problemi:

  • Rigidità: il sistema è difficile da cambiare.
  • Fragilità: le modifiche causano malfunzionamenti.
  • Immobilità: i sorgenti sono difficili da riutilizzare.
  • Viscosità: i cambiamenti compatibili con l'architettura sono difficili.
Anteprima
Vedrai una selezione di 3 pagine su 6
Riassunto di Ingegneria del Software Pag. 1 Riassunto di Ingegneria del Software Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Riassunto di Ingegneria del Software Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher UNSIGNED di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica II 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 Pavia o del prof Cusano Claudio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community