Il focus di questa domanda: alcuni software eseguono "lavori extra" al fine di aumentare le possibilità di un risultato "eventualmente positivo / soddisfacente", nonostante uno o più errori interni nel software, che richiede tempi di esecuzione più lunghi quando si verificano tali errori. Tutto ciò avviene all'insaputa dell'utente se l'esito ha avuto esito positivo.
Definizione di software complesso:
- Contiene codice scritto da (contribuito da) più di 10 sviluppatori nel corso della sua vita e non scritto nello stesso lasso di tempo
- Dipende da più di 10 librerie esterne, ognuna con avvertenze
- Un'attività software tipica (per generare un risultato desiderato dall'utente) richiede 10 o più parametri di input, in cui la maggior parte ha valori predefiniti ma sono configurabili se l'utente ha bisogno di controllo.
- Soprattutto, un software che presenta la complessità appropriata rispetto all'attività eseguita, ovvero non inutilmente complicato .
Modificato: cos'è complesso? Si prega di vedere C'è una grande differenza tra Complesso e Complicato . (collegamento diretto)
Definizione di ridondanza / robustezza all'interno di questa domanda :
(aggiunta robustezza in base ai commenti)
- Se un'attività software non è riuscita quando è stata utilizzata la serie di parametri corrente, provare diversi parametri.
- Ovviamente, ci deve essere la consapevolezza che quei parametri "diversi" usano un percorso di codice diverso, probabilmente con un risultato diverso (si spera meglio).
- A volte questi diversi percorsi di codice sono scelti in base alle osservazioni delle librerie esterne.
- Alla fine, se l'attività effettiva eseguita è leggermente diversa dalle specifiche dell'utente, l'utente riceverà un rapporto dettagliato della discrepanza.
- Infine, come i parametri 10 plus configurabili, anche la ridondanza e il reporting sono configurabili.
Esempio di tale software:
- Migrazione del database
- Database aziendale
- Database di controllo del codice sorgente, ecc.
- Conversione in batch tra un documento Word e un documento OpenOffice, PowerPoint e OpenOffice Draw, ecc.
- Traduzione automatica di un intero sito Web
- Analisi automatica di pacchetti software, come Doxygen, ma in cui l'analisi deve essere più affidabile (cioè non solo uno strumento di documentazione)
- Comunicazione di rete, in cui i pacchetti potrebbero andare persi e sono previsti numerosi tentativi
Questa domanda è stata originariamente ispirata da Come gestisci il codice intenzionalmente errato?
ma ora è focalizzato solo su una delle cause del gonfiamento del software. Questa domanda non affronta altre cause di rigonfiamento del software, come l'aggiunta di nuove funzionalità.
Possibilmente correlato: