Ingegneria del Software: Fondamenti, Metodologie e Strumenti CASE

Classificato in Informatica

Scritto il in italiano con una dimensione di 4,5 KB

L'importanza dell'Ingegneria del Software

Il termine è stato introdotto alla fine degli anni '60 a causa della cosiddetta crisi del software. Questa crisi è stata il risultato dell'introduzione della terza generazione di hardware, che ha smesso di essere un ostacolo allo sviluppo della tecnologia dell'informazione, richiedendo una riduzione dei costi e un miglioramento della qualità e dell'efficienza del software prodotto.

La crisi è stata caratterizzata dai seguenti problemi:

  • Progetti poco chiari.
  • Pianificazione e stima dei costi di acquisto errate.
  • Scarsa qualità del software.
  • Difficoltà di manutenzione con programmi strutturati.

L'efficacia richiede software di qualità, sia in fase di sviluppo che di manutenzione, garantendo caratteristiche quali affidabilità, facilità di manutenzione, usabilità ed efficienza.

1 Concetto di Ingegneria del Software

L'Ingegneria del Software è l'area dell'informatica che offre metodi e tecniche per sviluppare e mantenere software di qualità, risolvendo problemi di ogni genere. Oggi è considerata una disciplina ingegneristica consolidata a livello internazionale, con un prestigio sociale riconosciuto nel mondo degli affari.

Si occupa di settori come la costruzione di compilatori, sistemi operativi e lo sviluppo di Intranet/Internet, applicandosi a campi quali commercio, ricerca scientifica, medicina, produzione, logistica, operazioni bancarie, controllo del traffico aereo e meteorologia.

2 Metodi, tecniche e strumenti

  • Metodo: Serie di fasi successive che conducono a un obiettivo, permettendo di generalizzare e risolvere problemi futuri.
  • Tecnica: Procedure per ottenere un risultato che richiedono abilità manuale e intellettuale.
  • Strumento (Tool): Sottomodulo responsabile di funzioni specifiche per eseguire un compito.
  • Strumenti CASE (Computer Aided Software Engineering): Applicazioni progettate per aumentare la produttività nello sviluppo software, riducendo costi e tempi.

Obiettivi degli strumenti CASE

  1. Migliorare la produttività nello sviluppo e nella manutenzione.
  2. Migliorare la qualità del software.
  3. Ottimizzare tempi e costi.
  4. Migliorare la pianificazione dei progetti.
  5. Automatizzare la documentazione, la generazione di codice e i test.

Classificazione degli strumenti CASE

  • U-CASE (Upper CASE): Supportano pianificazione, analisi dei requisiti e strategia (es. diagrammi UML).
  • M-CASE (Middle CASE): Automatizzano le attività di progettazione.
  • L-CASE (Lower CASE): Supportano la generazione di codice, il debugging e la documentazione.

Storia dell'Ingegneria del Software

Il termine fu usato per la prima volta da Fritz Bauer durante una conferenza NATO a Garmisch (1968). Alan Davis la definisce come: "L'applicazione intelligente di principi, tecniche, linguaggi e strumenti provati per la creazione e il mantenimento di software a costi ragionevoli che soddisfi le esigenze degli utenti."

1 La crisi del software

La crisi è definita come un problema cronico nello sviluppo, causato da una mancanza di formalismo, metodologia e strumenti di supporto, portando a ritardi, scarsa produttività e costi di manutenzione elevati.

3 Miti dello sviluppo

  • Sviluppatori: Il programma che gira è la fine del lavoro; la qualità è solo assenza di errori.
  • Gestione: L'uso di standard o l'aumento dei programmatori risolve la pianificazione insufficiente.
  • Cliente: Le condizioni iniziali sono solo obiettivi generali; il software è sempre flessibile ai cambiamenti.

Focus dell'Ingegneria Informatica

L'Ingegneria Informatica applica informatica, elettronica e software per lo sviluppo di sistemi integrati. Si basa sulla tecnologia elettronica per interagire con sistemi fisici, controllo di robot, strumentazione virtuale e sistemi di acquisizione dati.

Tendenze nell'Ingegneria del Software

L'industria punta a creare sistemi affidabili con minori investimenti. La tecnologia object-oriented, combinata con strumenti CASE, programmazione visuale e basi di dati, è fondamentale per migliorare la riusabilità, la modularità e la flessibilità del software moderno.

Voci correlate: