Ingegneria del software: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m interwiki |
varie - rimossa qualche duplicazione |
||
Riga 1:
Per '''ingegneria del software''' si intende la branca dell'[[informatica]] che si occupa di definire [[metodo|metodi]], [[formalismi grafici]] e [[strumento|strumenti]] utili a governare il [[Ciclo di vita del software|ciclo di vita]] di un [[software|prodotto software]], ovvero l'insieme delle attività da svolgere per la sua realizzazione, dall'[[analisi dei requisiti]] utente fino alla [[manutenzione (software)|manutenzione]] dopo il [[rilascio]].
==Concetti di base==
L'ingegneria del software identifica una formalizzazione del processo di realizzazione di un prodotto [[software]] per [[computer]] dalla fase di concepimento fino alla sua morte funzionale. Il prodotto software può essere codice eseguibile o documentazione associata (per esempio un manuale d'uso) o altro prodotto comunque legato al software che vada gestito nel ciclo di vita.
Per tale associazione con una idea quasi [[Biologia|biologica]] di vita si parla spesso di '''ciclo di vita''' di un software, concetto che ha assunto con il passare dei decenni un'importanza sempre più elevata, spostando l'idea di software come ''manufatto'' verso un'idea di prodotto industriale.
Riga 8:
La necessità di creare una [[scienza]] che si occupi della realizzazione dei software nasce dalla necessità di sviluppare prodotti sempre più complessi ed evoluti che rispondano a esigenze sempre più specifiche.
Il software come prodotto industriale diventa anche oggetto di un attento esame per estendere le capacità di realizzazione dello stesso. Nasce in pratica un concetto simile alle ottimizzazioni da [[catena di montaggio]] per le industrie del [[XX secolo|secolo scorso]]. Si cercano quindi di identificare nella realizzazione del software, quei
L'ingegneria del software definisce quindi un insieme di processi software, ovvero
==Storia==
La necessità di creare una disciplina che si
Più precisamente dal [[1950]] al [[1965]] lo sviluppo del
Fino alla nascita dell'ingegneria del software, la realizzazione di prodotti per computer era una mera attività di programmazione eseguita attraverso l'applicazione di discipline come:
Riga 27 ⟶ 25:
* [[Linguaggio di programmazione|Linguaggi di Programmazione]]
Dal [[1965]] al [[1975]] si assiste allo sviluppo di software pensato per più utenti e per i sistemi in [[real-time]]. In questo periodo iniziano conseguenzialmente gli sviluppi di pacchetti software, tuttavia si presentano anche numerosi problemi come la gestione e il mantenimento di un software.▼
La [[programmazione]] consisteva soprattutto nel mettere insieme una sequenza di istruzioni di codice per realizzare compiti ben specifici.
▲Dal [[1965]] al [[1975]] si assiste allo sviluppo di software pensato per più utenti e per i sistemi in [[real-time]]. In questo periodo iniziano
Nel 1968 la conferenza NATO tenuta a Garmisch, in [[Germania]], [http://homepages.cs.ncl.ac.uk/brian.randell/NATO/ rende chiaro il problema] rappresentato dall'incapacita di produrre software affidabile e rispondente ai requisiti nei tempi previsti .▼
▲Nel 1968 la conferenza NATO tenuta a Garmisch, in [[Germania]], [http://homepages.cs.ncl.ac.uk/brian.randell/NATO/ rende chiaro il problema] rappresentato dall'
A partire dal [[1972]] e fino al [[1988]] vengono introdotte nuove tecnologie, nascono i [[Sistema distribuito|sistemi distribuiti]] e si afferma la figura del sistemista informatico esperto. Il costo dell'[[hardware]] si abbassa considerevolmente e di conseguenza la tecnologia informatica comincia a diffondersi rapidamente. Il livello qualitativo del software si eleva, tuttavia il suo sviluppo è ancora limitato a progetti scientifici e militari, e solo successivamente, dopo aver affrontato una lunga fase di collaudo, il software viene introdotto nelle industrie.
Organizzazioni come il Pentagono spingono fortemente lo studio di modelli che permettano di minimizzare fortemente la presenza di errori all'interno dei software.
Con l'introduzione delle tecnologie informatiche anche nel settore industriale e commerciale, a partire dal [[1988]], bacini di utenze non più tecniche si trovano a sentire l'esigenza di informatizzare le proprie strutture.<br>
In questo periodo nasce la [[programmazione orientata agli oggetti]], si tende a controllare lo sviluppo del software, cercando di sviluppare
Da queste esigenze nasce l'incontro tra i [[requisiti]] dell'azienda cliente e le funzionalità che il programmatore deve realizzare.
Si sviluppa un concetto
Si cerca di identificare
==La produzione software nel terzo millennio==
Vengono identificati differenti [[ciclo di vita del software |cicli di vita del software]] ovvero diversi processi che possono essere attualizzati da team per giungere ad un risultato comune. Ognuno di questi differenti processi identifica una serie di passi chiave da seguire per realizzare un prodotto
L'ingegneria del software racchiude questi e molti altri elementi creando una scienza che si preoccupa effettivamente di concretizzare come permettere non più ad una singola persona ma ad un team di tanti sviluppatori, di realizzare un ''buon'' software.
Riga 53 ⟶ 52:
Resta oggi il problema di produrre con tempi e costi prestabiliti dei sistemi software di formidabili dimensioni, enormemente cresciuti rispetto ai pacchetti software di alcune decine di anni fa (qualcuno parla di ''fatware'' a proposito dei nuovi sistemi). In queste situazioni la neonata scienza si trova spesso in difficoltà e si sente il bisogno di teorie più evolute.
Se l'approccio iniziale era basato sui concetti dell'industria meccanica dell'inizio del ventesimo secolo (''tempi e metodi''), adesso si capisce che tale impostazione è
In aggiunta molti hanno capito le caratteristiche originali del prodotto software (prima fra tutte l'immaterialità del prodotto principale - il codice eseguibile) che portano alla necessità di tecnologie meno note in altri settori: la più importante di tali tecnologie è probabilmente il ''controllo di configurazione''.
|