Ingegneria del software: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 1:
Per '''ingegneria del software''' si intende la branca dell'[[informatica]] che si occupa di definire [[medodi]], [[formalismi grafici]] e [[strumenti]] utili a governare il [[ciclo di vita]] di un [[software|prodotto software]], ovvero l'insieme delle attività da svolgere per la sua realizzazione
== Metodi di Analisi ==
Numerose sono le metodologie proposte per guidare l’attività dei gruppi di lavoro per lo sviluppo di un [[software|prodotto software]]. Queste sequenziano e dettagliano le attività da eseguire per portare a termine con successo il [[ciclo di vita]] di un [[software|prodotto software]]. L’applicazione di queste metodologie è in parte automatizzata da una famiglia di strumenti nota come [[CASE Tool]] ('''C'''omputer '''A'''ided '''S'''oftware '''E'''ngineering).
A grandi linee tutte queste metodologie suddividono il [[ciclo di vita]] in 5 macro ''attività'' ben distinte e successive: [[analisi dei requisiti]], [[pregetto]] ([[progettazione|design]], nella dizione anglosassone), [[programmazione]] o [[programmazione|codifica]] ([[programmazione|programming]]), [[integrazione]] e [[test]]. In funzione della complessità del problema e del prodotto finale, queste fasi possono essere ulteriormente suddivise.
In generale durante l’[[analisi]] si ''formalizza il problema'' in termini di funzionalità e requisiti tecnici. Questa formalizzazione è passata ai responsabili della [[progettazione]] per individuare gli [[algoritmi]] e le [[strutture dati]] utili alla soluzione del problema. Nella successiva fase di [[programmazione]], le soluzioni così individuate sono implementate utilizzando un [[linguaggio di programmazione]]. In funzinoe della complessità del prodotto finale, la [[programmazione]] può essere suddivisa tra soggetti o gruppi di lavoro distinti, ciascuno responsabile della realizzazione di una parte o [[modulo]] del [[software|prodotto software]] atteso. In questo caso è necessaria una fase di [[integrazione]] dei [[moduli]] per avere il prodotto finale. Al termine è previsto il [[test]] del prodotto prima del [[rilascio]].
Ogni attività svolta sul prodotto successivamente al rilascio è identificata come [[manutenzione]]. La [[manutenzione]] può essere [[manutenzione correttiva|correttiva]] se è finalizzata alla correzione di malfuzionamenti o [[manutenzione evolutiva|evolutiva]] se mira a realizzare nuove funzioni.
=== Ciclo di vita classico o water-fall (cascata) ===
=== Ciclo di vita object oriented o a spirale ===
|