L'obiettivo di questa domanda: alcuni software eseguono "lavoro extra" per aumentare la possibilità di un risultato "alla fine positivo / soddisfacente", nonostante uno o più errori interni nel software, che richiede un tempo di esecuzione più lungo quando si verificano tali errori. Tutto ciò accade senza la consapevolezza dell'utente se l'esito ha avuto esito positivo.
Definizione di software complesso:
- Contiene codice scritto da (fornito da) più di 10 sviluppatori nel corso della sua durata, e non scritto nello stesso intervallo di tempo
- Dipende da più di 10 librerie esterne, ognuna con avvertimenti
- Un'attività software tipica (per generare un risultato richiesto dall'utente) richiede 10 o più parametri di input, in cui la maggior parte di essi ha valori predefiniti ma è configurabile se l'utente ha bisogno di controllo.
- Soprattutto, il software che presenta la complessità appropriata relativa all'attività da eseguire, ovvero non inutilmente complicato .
Modificato: Cosa è complesso? Per favore vedi C'è una grande differenza tra Complesso e Complicato . (collegamento diretto)
Definizione di ridondanza / robustezza all'interno di questa domanda :
(Aggiunto robustezza basata sui commenti)
- Se un'attività software non è riuscita quando è stato utilizzato il set corrente di parametri, provare diversi parametri.
- Ovviamente, è necessario sapere che quei parametri "diversi" utilizzano un percorso di codice diverso, che può avere un risultato diverso (si spera meglio).
- A volte questi diversi percorsi di codice vengono scelti in base alle osservazioni delle librerie esterne.
- Al termine, se l'attività effettiva eseguita è leggermente diversa dalle specifiche dell'utente, l'utente riceverà un rapporto che descrive la discrepanza.
- Infine, come i 10 parametri 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 batch tra un documento Word e un documento OpenOffice, PowerPoint e OpenOffice Draw, ecc.
- Traduzione automatica di un intero sito web
- Analisi automatica del pacchetto software, come Doxygen, ma dove l'analisi deve essere più affidabile (vale a dire non solo uno strumento di documentazione)
- Comunicazione di rete, in cui i pacchetti potrebbero andare persi e si prevede un numero di tentativi
Questa domanda è stata originariamente ispirata da Come fare hai a che fare con codice intenzionalmente cattivo? , ma ora si concentra solo su una delle cause dell'abbassamento del software. Questa domanda non affronta altre cause del software gonfiato, come l'aggiunta di nuove funzionalità.
Probabilmente correlato: