La domanda 11 nella sezione Qualità del software di "IEEE Computer Society Real-World Software Engineering Problemi", Naveda, Seidman, elenca il calcolo Fp come indesiderabile perché "la precisione dei calcoli non può essere garantita" .
Questo è nel contesto dell'accelerazione del calcolo per un sistema di frenatura di emergenza per un treno ad alta velocità. Questo pensiero sembra invocare possibili errori in piccole differenze tra le misurazioni di un oggetto in movimento, ma piccole differenze a bassa velocità non sono un problema (o non dovrebbero essere), piccole differenze tra due misurazioni ad alta velocità sono irrilevanti - può esserci un problema con piccoli errori di arrotondamento durante la decelerazione per un sistema di frenatura di emergenza? Questo problema è stato osservato con i sistemi di frenatura degli aeroplani che hanno portato all'aquaplaning, ma ciò potrebbe effettivamente accadere nel contesto di un treno ad alta velocità? La preoccupazione per gli errori di fp sembra non essere ben fondata in questo contesto. Qualche intuizione? Il fp è utilizzato per l'accelerazione, quindi forse la preoccupazione è in ritardo su un limite di velocità? Ma fp dovrebbe andare bene se usano un doppio in qualunque linguaggio di implementazione.
Il problema reale nel testo afferma: Durante l'ispezione del codice per il sistema di frenatura di emergenza di un nuovo treno ad alta velocità (un'applicazione estremamente critica in tempo reale), il team di revisione identifica diverse caratteristiche del codice. Quale di queste caratteristiche è generalmente considerata indesiderabile?
- Il codice contiene tre funzioni ricorsive (anche se è ovvio).
- Il calcolo dell'accelerazione utilizza l'aritmetica in virgola mobile.
- Tutti gli altri calcoli utilizzano l'aritmetica dei numeri interi.
- Il codice contiene un elenco collegato che utilizza l'allocazione dinamica della memoria (secondo ovvio problema).
- Tutti gli input vengono controllati per determinare che rientrano nei limiti previsti prima che vengano utilizzati.