Ingegneria del software: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Aggiunta Voce Correlata verso Profilazione(programmazione) argomento inerente l'ingegneria del software. |
→Voci correlate: Aggiunto i template "Div col" e "Div col end" |
||
(12 versioni intermedie di 7 utenti non mostrate) | |||
Riga 1:
{{F|ingegneria del software|febbraio 2013|Voce ampia senza nessuna fonte e riferimento}}
[[File:A_software_reengineering_process_model.svg|thumb|Un modello di sviluppo software]]
L' '''ingegneria del software''' ('''''software engineering''''' in [[lingua inglese|inglese]]) è quella [[Materia (didattica)|disciplina]] [[informatica]] che si occupa dei processi produttivi e delle [[Metodologia di sviluppo del software|metodologie]] di sviluppo finalizzate alla realizzazione di [[sistema software|sistemi software]]
== Storia ==
Riga 17 ⟶ 16:
La [[programmazione (informatica)|programmazione]] consisteva soprattutto nel mettere insieme una sequenza di [[istruzione (informatica)|istruzioni]] di [[codice sorgente]] per realizzare compiti ben specifici.
Dal [[1965]] al [[1975]] si assiste allo [[Sviluppo software|sviluppo di software]] pensato per più utenti e per i sistemi in [[sistema real-time|real-time]]. In questo periodo iniziano di conseguenza gli sviluppi di [[pacchetto (software)|pacchetti]] software ed emergono numerosi problemi, come la gestione e la manutenzione del software.
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'incapacità di produrre nei tempi previsti software affidabile e rispondente ai requisiti.
Riga 30 ⟶ 29:
{{vedi anche|Sviluppo software}}
[[File:Development_Stages.svg|thumb|Una parte dello sviluppo software]]
L''''ingegneria del software''' identifica una formalizzazione del processo di [[Analisi dei requisiti|analisi]], [[Progettazione (ingegneria del software)|progettazione]], realizzazione e [[Manutenzione (software)|manutenzione]] di un sistema informatico.
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 maggiore, abbandonando progressivamente l'idea di software come ''manufatto'' e passando ad un'idea del software come prodotto industriale. La necessità di creare una [[scienza]] che si occupi della realizzazione dei sistemi informativi nasce dalla necessità di sviluppare prodotti sempre più complessi ed evoluti che rispondano a esigenze di correttezza del prodotto finale e ad una facile manutenzione di esso.
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, quegli obiettivi a cui tengono le industrie del software, come qualità del software realizzato e soprattutto di rilasciare un prodotto ben documentato e facilmente "manutenibile".
La nuova scienza, l'ingegneria del software, si preoccupa effettivamente di concretizzare queste esigenze, tramite la definizione di [[Modello di sviluppo del software|modelli]] che permettono a team di tecnici di realizzare in cooperazione prodotti sempre più evoluti e di qualità. L'ingegneria del software definisce quindi un insieme di processi, ovvero sequenze di fasi che individuano tappe specifiche nella realizzazione di un sistema software, tutte documentate e ispezionabili, che offrano in sostanza adeguata visibilità alle diverse tipologie degli utenti del sistema, per il controllo dei singoli prodotti e/o per l'eventuale manutenzione.
Riga 47 ⟶ 46:
Ricordando che queste cinque fasi che abbiamo elencato per un processo di ingegneria del software ''non dovrebbero essere prese come una regola'' o uno standard.<ref>{{Cita web|url=https://ingegneriadelsoftware.online/infografica-le-fasi-sviluppo-software/|titolo=Le 5 fasi dello sviluppo software – infografica {{!}} Ingegneria del software e analisi dei requisiti|lingua=it-IT|accesso=2020-01-13|urlarchivio=https://web.archive.org/web/20200112235923/https://ingegneriadelsoftware.online/infografica-le-fasi-sviluppo-software/|dataarchivio=12 gennaio 2020|urlmorto=sì}}</ref>
=== Produzione software nel terzo millennio ===
{{vedi anche|Ciclo di vita del software|Modello di sviluppo del software|Metodologia di sviluppo del software}}
Riga 61 ⟶ 59:
== Note ==
<references/>
== Bibliografia ==
* {{cita libro
|autore = [[Ian Sommerville]]
|titolo = Ingegneria del software
|url = https://software-engineering-book.com/
|editore = Pearson
|città = Torino
|anno = 2017
|edizione = 10
|ISBN = 9788891902245
|cid = Sommerville 2017
}}
* {{cita libro
|titolo = Software Engineering — Guide to the software engineering body of knowledge (SWEBOK)
|editore = International Standards Organization
|città = Ginevra (CH)
|anno = 2015
|edizione = 2
|url = https://standards.iso.org/ittf/PubliclyAvailableStandards/c067604_ISO_IEC_TR_19759_2015.zip
|lingua = en
|id = ISO/IEC TR 19759:2015(E)
|cid = SWEBOK 2015
}}
== Voci correlate ==
{{Div col}}
* [[Application lifecycle management]]
* [[Architettura multi-tier]]
Riga 78 ⟶ 103:
* [[Rapid application development]]
* [[Rational Software]]
*[[Requisito funzionale|Requisito Funzionale]]
* [[Service Oriented Architecture]]
* [[Sviluppo software]]
* [[Unified Modeling Language]] (UML)
{{Div col end}}
== Altri progetti ==
{{interprogetto|preposizione=sull'|wikt=ingegneria del software}}
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC|software engineering|software engineering}}
{{Ingegneria}}
{{controllo di autorità}}
|