Che cos'è la manutenzione del software?

4

Sono un programmatore hobbista, quindi nessuna esperienza professionale.

Le persone qui parlano spesso di fare manutenzione del software al lavoro. L'autore di questa domanda parla circa il 90% di mantenimento e il 10% di sviluppo nel suo lavoro.

La mia domanda è: che cos'è la 'manutenzione del software' comunque?

Si tratta principalmente di correggere i bug? Se è così, vuol dire che le persone passano la maggior parte del loro tempo al lavoro a sistemare i bug?

O la 'manutenzione' include altre cose, oltre alla correzione dei bug?

    
posta Aviv Cohn 24.05.2014 - 14:25
fonte

2 risposte

9
  • Correggere bug è sicuramente una parte importante
  • Piccole modifiche alle funzionalità esistenti: aggiungi qui un campo, modifica il layout della finestra di dialogo, rimuovi alcune funzionalità obsolete lì ... La differenza tra manutenzione e sviluppo è fluida qui.
  • le modifiche possono anche essere richieste dalle nuove leggi!
  • Migliora le prestazioni
  • Fai funzionare il sistema in un nuovo ambiente (perché quello vecchio non è più disponibile o ha avuto i suoi bugfix o nuove funzionalità):
    • nuovo hardware
    • nuova versione del sistema operativo
    • nuova versione del linguaggio di programmazione / runtime
    • nuova versione di librerie che stai utilizzando
    • cambia in altri sistemi che il tuo sistema comunica con

Alcuni esempi concreti su cui ho lavorato personalmente:

  • Quando Facebook è passato a pagamenti in valuta locale a metà 2013, tutte le app di Facebook che richiedevano i pagamenti degli utenti hanno dovuto rielaborare completamente la loro logica di pagamento (il nuovo sistema funziona in modo fondamentalmente diverso su molti livelli) entro 90 giorni.
  • Se effettui pagamenti con addebito diretto in un paese SEPA , all'inizio del 2014 devi passare da un account all'altro al Schema IBAN (dal modulo in cui gli utenti immettono i propri dati fino al punto in cui il back-end comunica con il fornitore di servizi di pagamento) e se si eseguono pagamenti ricorrenti è necessario implementare le notifiche e-mail.
risposta data 24.05.2014 - 15:08
fonte
2

L'idea di "manutenzione del software" deriva dal pensare che il software possa essere gestito nello stesso modo di qualsiasi progetto di ingegneria. Ogni progetto ha un ciclo di vita:

  • Analisi dei requisiti
  • Progettazione / Pianificazione
  • Costruzione / Implementazione
  • Uso / Manutenzione

Questo significa che, una volta completato il progetto, sono necessari alcuni sforzi e risorse per mantenerlo in condizioni di lavoro complete. Ma in tutti i casi, la quantità di risorse necessarie per la manutenzione è ridotta rispetto all'attuazione effettiva. Immagina un grande edificio o una macchina complessa. Sì, potresti volerlo ridipingere o sostituire alcune parti, ma in generale rimarrà lo stesso per tutta la sua vita operativa.

Quindi, se si assume che anche il software sia un prodotto di ingegneria, ha anche una fase di manutenzione. Il problema è che l'ipotesi che il software sia lo stesso di qualsiasi progetto di ingegneria è già stato affrontato molte volte. Uno dei problemi legati alla "manutenzione" è che il software è così "soft" da poter cambiare drasticamente anche dopo che la fase di implementazione è ufficialmente terminata. Questo è il motivo per cui alcune persone considerano la "manutenzione" come la maggior parte degli sforzi. Perché anche se sulla carta il software è "finito" è così facile cambiarlo che verrà modificato.

Questo è il motivo per cui la maggior parte delle moderne metodologie di sviluppo del software non hanno realmente una tale struttura ingegneristica e presuppongono che il software non sarà mai "finito" e che può cambiare drasticamente in qualsiasi momento della sua vita. Anche dopo molti anni di produzione.

    
risposta data 12.07.2016 - 22:17
fonte

Leggi altre domande sui tag