Cos'รจ l'ingegneria del software? Caratteristiche e definizione.
โก Riepilogo intelligente
L'ingegneria del software รจ il processo rigoroso di analisi dei requisiti e successiva progettazione, realizzazione e collaudo di software che li soddisfi. Questa risorsa ne illustra le definizioni, la crisi del software che l'ha generata, la sua popolaritร , le discipline correlate, le sfide e le caratteristiche di un buon software.

Cos'รจ l'ingegneria del software?
L'ingegneria del software รจ definita come il processo di analisi dei requisiti dell'utente e la successiva progettazione, realizzazione e collaudo di un'applicazione software in grado di soddisfare tali requisiti.
Esaminiamo le diverse definizioni di ingegneria del software:
- L'IEEE, nel suo standard 610.12-1990, definisce l'ingegneria del software come l'applicazione di un approccio sistematico, disciplinato e computabile allo sviluppo, al funzionamento e alla manutenzione del software.
- Fritz Bauer la definรฌ come "l'istituzione e l'utilizzo di principi ingegneristici standard. Aiuta a ottenere, in modo economico, software affidabile e funzionante in modo efficiente su macchine reali".
- Boehm definisce l'ingegneria del software come "l'applicazione pratica della conoscenza scientifica alla progettazione creativa e alla realizzazione di programmi per computer. Include anche la documentazione associata necessaria per lo sviluppoping, gestendoli e mantenendoli in funzione.โ
Perchรฉ ingegneria del software? Crisi del software e sua soluzione
Cos'รจ stata la crisi del software?
- Era la fine degli anni โ1960 quando molti progetti software fallirono.
- Molti progetti software hanno superato il budget previsto. Il risultato รจ stato un software inaffidabile e costoso da manutenere.
- Il software piรน grande era difficile e piuttosto costoso da mantenere.
- Molti software non sono stati in grado di soddisfare le crescenti esigenze dei clienti.
- La complessitร dei progetti software aumentava di pari passo con l'aumento delle capacitร hardware.
- La domanda di nuovo software รจ aumentata piรน rapidamente rispetto alla capacitร di generare nuovo software.
Tutti i problemi sopra menzionati hanno portato alla "crisi del software".
La Soluzione
La soluzione al problema consisteva nel trasformare l'attivitร di programmazione disorganizzata in una disciplina di ingegneria del software. Questi modelli ingegneristici hanno aiutato le aziende a snellire le operazioni e a fornire software che soddisfacesse i requisiti dei clienti.
- Alla fine degli anni '1970 si assistette alla diffusione dei principi dell'ingegneria del software.
- Gli anni '1980 hanno visto l'automazione del processo di ingegneria del software e la crescita dell'ingegneria del software assistita da computer (CASE).
- Negli anni '1990 si รจ assistito a una crescente enfasi sugli aspetti "gestionali" dei progetti e sugli standard di qualitร e di processo, come nel caso della norma ISO 9001.
Perchรฉ l'ingegneria del software รจ popolare?
Ecco le ragioni importanti dietro la popolaritร dellโingegneria del software:
- Software di grandi dimensioni Nella vita reale, รจ molto piรน facile costruire un muro che una casa o un edificio. Allo stesso modo, man mano che le dimensioni del software aumentano, l'ingegneria del software ti aiuta a realizzarlo.
- Scalabilitร โ Se il processo di sviluppo del software si basa su concetti scientifici e ingegneristici, รจ piรน facile ricreare un nuovo software per scalare quello esistente.
- Adattabilitร โ Quando il processo di sviluppo del software si basa su principi scientifici e ingegneristici, รจ facile ricreare nuovo software con l'aiuto dell'ingegneria del software.
- Costo โ L'industria hardware ha dimostrato la sua competenza e la produzione su larga scala ha ridotto il costo dei computer e dei componenti elettronici.
- Natura Dinamica โ La natura in continua evoluzione e adattamento del software. Dipende dall'ambiente in cui opera l'utente.
- Gestione della qualitร โ Offre un metodo migliore di sviluppo software per fornire prodotti software di qualitร .
Rapporto dell'ingegneria del software con altre discipline
Ecco come l'ingegneria del software si relaziona con altre discipline:
- Scienza del computer: Fornisce le basi scientifiche per il software, proprio come la fisica รจ il fondamento dell'ingegneria elettrica.
- Scienze gestionali: L'ingegneria del software รจ un lavoro ad alta intensitร di manodopera che richiede controllo sia tecnico che gestionale. Pertanto, รจ ampiamente utilizzata nelle scienze gestionali.
- Economia: In questo settore, l'ingegneria del software รจ di supporto nella stima delle risorse e nel controllo dei costi. ร necessario sviluppare un sistema informatico e aggiornare regolarmente i dati entro un budget prestabilito.
- Ingegneria dei sistemi: La maggior parte dei software รจ un componente di un sistema molto piรน ampio, ad esempio il software di un sistema di monitoraggio industriale o il software di volo di un aereo. I metodi dell'ingegneria del software dovrebbero essere applicati allo studio di questo tipo di sistemi.
Sfide dell'ingegneria del software
Ecco alcune sfide critiche affrontate dagli ingegneri del software:
- In settori critici per la sicurezza come quello spaziale, aeronautico e delle centrali nucleari, il costo di un malfunzionamento del software puรฒ essere enorme, poichรฉ sono in gioco vite umane.
- Lโaumento delle richieste del mercato per tempi di consegna rapidi.
- Gestire la crescente complessitร del software necessario per le nuove applicazioni.
- La diversitร dei sistemi software che devono comunicare tra loro.
Attributi per prodotti software
Le caratteristiche di qualsiasi prodotto software includono funzionalitร che vengono visualizzate dal prodotto una volta installato e messo in uso.
Non si tratta dei servizi offerti dal prodotto, bensรฌ di elementi legati al comportamento dinamico del prodotto e all'utilizzo che se ne fa.
Esempi di questi attributi sono:
Efficiency, reliability, robustness, maintainability, etc.
Tuttavia, l'importanza relativa di queste caratteristiche varia da un sistema software all'altro.
| Caratteristiche del Prodotto | Descrizione |
|---|---|
| manutenibilitร | Il software dovrebbe evolversi per soddisfare le mutevoli esigenze dei clienti. |
| AFFIDABILITร | L'affidabilitร comprende varie caratteristiche. Un software affidabile non dovrebbe mai causare danni fisici o economici al momento del guasto del sistema. |
| EFFICIENZA | L'applicazione software non deve utilizzare in modo eccessivo le risorse di sistema come la memoria e i cicli del processore. |
| usabilitร | L'applicazione software deve disporre di un'interfaccia utente e di una documentazione adeguate. |
Ottimizzare gli attributi sopra menzionati รจ molto impegnativo. Ad esempio, offrire un'interfaccia utente migliore puรฒ ridurre l'efficienza del sistema.
Caratteristiche del buon software
Qualsiasi software dovrebbe essere valutato in base a ciรฒ che offre e ai metodi che ne facilitano l'utilizzo.
Ogni software deve soddisfare i seguenti attributi:
- Operazionale
- Transitional
- Manutenzione
Ecco alcune caratteristiche importanti di un buon software sviluppato da professionisti del settore.
Operazionale
Questa caratteristica ci permette di capire quanto bene un software funziona in fase operativa, e puรฒ essere misurata in base a:
- bilancio
- EFFICIENZA
- usabilitร
- AFFIDABILITร
- Correttezza
- Funzionalitร
- Sicurezza
- Sicurezza
Transitional
Questo รจ un aspetto essenziale quando il software viene spostato da una piattaforma allโaltra:
- Interoperabilitร
- riutilizzabilitร
- Portabilitร
- Adattabilitร
Manutenzione
Questo aspetto riguarda la capacitร del software di adattarsi a un ambiente in rapida evoluzione:
- Flessibilitร
- manutenibilitร
- modularitร
- Scalabilitร

