Cos'è l'ingegneria del software? Definizione, nozioni di base, caratteristiche

Sommario:

Anonim

Cos'è l'ingegneria del software?

L'ingegneria del software è definita come un processo di analisi dei requisiti dell'utente e quindi di progettazione, costruzione e test di un'applicazione software che soddisferà tali requisiti.

Diamo un'occhiata alle varie definizioni di ingegneria del software:

  • IEEE, nel suo standard 610.12-1990, definisce l'ingegneria del software come l'applicazione di un approccio sistematico, disciplinato e computabile per lo sviluppo, il funzionamento e la manutenzione del software.
  • Fritz Bauer lo definì come "l'istituzione e usò principi di ingegneria standard". Ti aiuta ad ottenere, economicamente, un software affidabile e che funzioni in modo efficiente sulle macchine reali ”.
  • Boehm definisce l'ingegneria del software, che implica "l'applicazione pratica della conoscenza scientifica alla progettazione creativa e alla costruzione di programmi per computer". Include anche la documentazione associata necessaria per svilupparli, utilizzarli e mantenerli. "

In questo tutorial sull'ingegneria del software imparerai:

  • Cos'è l'ingegneria del software?
  • Perché l'ingegneria del software? Crisi del software e la sua soluzione
  • Perché l'ingegneria del software è popolare?
  • Rapporto dell'ingegneria del software con altre discipline
  • Sfide dell'ingegneria del software
  • Attributi per prodotti software
  • Caratteristiche di un buon software

Perché l'ingegneria del software? Crisi del software e la sua soluzione:

Qual è stata la crisi del software?

  • Era la fine degli anni '60 quando molti progetti software fallirono.
  • Molti software hanno superato il budget. L'output era un software inaffidabile che è costoso da mantenere.
  • Il software più grande era difficile e piuttosto costoso da mantenere.
  • Tantissimi software non in grado di soddisfare le crescenti esigenze del cliente.
  • La complessità dei progetti software aumentava ogni volta che aumentava la sua capacità hardware.
  • La domanda di nuovo software è aumentata più rapidamente rispetto alla capacità di generare nuovo software.

Tutti i problemi di cui sopra portano alla "crisi del software".

La soluzione

La soluzione al problema consisteva nel trasformare lo sforzo di codifica non organizzato in una disciplina di ingegneria del software. Questi modelli di ingegneria hanno aiutato le aziende a semplificare le operazioni e fornire software che soddisfacesse i requisiti dei clienti.

  • La fine degli anni '70 vide l'uso diffuso dei principi dell'ingegneria del software.
  • Negli anni '80 si è assistito all'automazione del processo di ingegneria del software e alla crescita dell'ingegneria del software assistita da computer (CASE).
  • Gli anni '90 hanno visto una maggiore enfasi sugli aspetti di "gestione" degli standard di qualità e dei processi dei progetti, proprio come la ISO 9001

Perché l'ingegneria del software è popolare?

Ecco le ragioni importanti alla base della popolarità dell'ingegneria del software:

  • Software di grandi dimensioni - Nella nostra vita reale, è molto più comodo costruire un muro che una casa o un edificio. Allo stesso modo, all'aumentare delle dimensioni del software, l'ingegneria del software aiuta a creare software.
  • Scalabilità: se il processo di sviluppo del software fosse basato su concetti scientifici e ingegneristici, è più facile ricreare un nuovo software per ridimensionarne uno esistente.
  • Adattabilità : ogni volta che il processo del software era basato su dati scientifici e ingegneristici, è facile ricreare nuovo software con l'aiuto dell'ingegneria del software.
  • Costo: l' industria dell'hardware ha dimostrato le sue capacità e l'enorme produzione ha ridotto il costo del computer e dell'hardware elettronico.
  • Natura dinamica: natura in continua crescita e adattamento del software. Dipende dall'ambiente in cui lavora l'utente.
  • Gestione della qualità : offre un metodo migliore di sviluppo del software per fornire prodotti software di qualità.

Rapporto dell'ingegneria del software con altre discipline

Ecco come l'ingegneria del software è correlata ad altre discipline:

  • Informatica: fornisce le basi scientifiche per il software poiché l'ingegneria elettrica dipende principalmente dalla fisica.
  • Scienze gestionali: l'ingegneria del software è un lavoro ad alta intensità di manodopera che richiede controllo sia tecnico che gestionale. Pertanto, è ampiamente utilizzato nella scienza gestionale.
  • Economia: in questo settore, l'ingegneria del software ti aiuta nella stima delle risorse e nel controllo dei costi. Il sistema di elaborazione deve essere sviluppato e i dati devono essere mantenuti regolarmente entro un determinato budget.
  • Ingegneria del sistema: la maggior parte del software è un componente di un sistema molto più grande. Ad esempio, il software in un sistema di monitoraggio industriale o il software di volo su un aereo. I metodi di 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 aree critiche per la sicurezza come lo spazio, l'aviazione, le centrali nucleari, ecc., Il costo del guasto del software può essere enorme perché le vite sono a rischio.
  • Aumento delle richieste del mercato per tempi di consegna rapidi.
  • Affrontare la crescente complessità del software necessario per nuove applicazioni.
  • La diversità dei sistemi software dovrebbe comunicare tra loro.

Attributi per prodotti software

Le caratteristiche di qualsiasi prodotto software includono funzionalità che vengono visualizzate dal prodotto quando viene installato e messo in uso.

Non sono i servizi forniti dal prodotto. Invece, hanno correlato al comportamento dinamico dei prodotti e all'uso fatto del prodotto.

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à include varie caratteristiche. Un software affidabile non dovrebbe mai causare alcun danno fisico o economico al momento del guasto del sistema.
Efficienza L'applicazione software dovrebbe utilizzare in modo eccessivo le risorse di sistema come la memoria e il ciclo del processore.
Usabilità L'applicazione software deve avere un'interfaccia utente e una documentazione specifiche.

L'ottimizzazione dell'attributo di cui sopra è molto impegnativa. Ad esempio, offrire una migliore interfaccia utente può ridurre l'efficienza del sistema.

Caratteristiche di un buon software

Qualsiasi software dovrebbe essere giudicato in base a ciò che offre e quali sono i metodi che ti aiutano a usarlo.

Ogni software deve soddisfare i seguenti attributi:

  • Operativo
  • Di transizione
  • Manutenzione

Ecco alcune importanti caratteristiche di un buon software sviluppato da professionisti del software

Operativo

Questa caratteristica ci permette di sapere come funziona bene il software nelle operazioni che possono essere misurate su:

  • Budget
  • Efficienza
  • Usabilità
  • Affidabilità
  • Correttezza
  • Funzionalità
  • Sicurezza
  • Sicurezza

Di transizione

Questo è un aspetto essenziale quando il software viene spostato da una piattaforma all'altra:

  • Interoperabilità
  • Riusabilità
  • Portabilità
  • Adattabilità

Manutenzione

Questo aspetto parla di come il software abbia le capacità di adattarsi a un ambiente in rapida evoluzione:

  • Flessibilità
  • Manutenibilità
  • Modularità
  • Scalabilità

Sommario

  • L'ingegneria del software è un processo di analisi dei requisiti degli utenti e quindi di progettazione, costruzione e test di applicazioni software che soddisfano tali requisiti
  • Ragioni importanti per l'utilizzo dell'ingegneria del software sono: 1) Software di grandi dimensioni, 2) Scalabilità 3) Adattabilità 4) Costo e 5) Natura dinamica.
  • Alla fine degli anni '60 molti software superano il budget. Pertanto offre software inaffidabile che è costoso da mantenere.
  • La fine degli anni '70 vide l'uso diffuso dei principi dell'ingegneria del software.
  • Concetto di ingegneria del software 1) Informatica 2) Scienze gestionali 3) Ingegneria dei sistemi e 4) Economia
  • Le crescenti richieste del mercato per tempi di consegna rapidi sono le maggiori sfide nel campo dell'ingegneria del software.
  • 1) Manutenibilità, 2) Affidabilità, 3) Efficienza e 4) Usabilità sono gli attributi più importanti dei prodotti software.
  • Le tre caratteristiche più importanti di un buon software sono 1) Operativo 2) Transitorio 3) Manutenzione.