Il software rot si riferisce principalmente alle prestazioni o al codice disordinato?

22

La definizione di Wikipedia del software rot si concentra sulle prestazioni del software. Questo è un uso diverso da quello a cui sono abituato; Ci avevo pensato molto più in termini di pulizia e design del codice, in termini di codice che ha tutte le caratteristiche di qualità standard: leggibilità, manutenibilità, ecc. Ora, è probabile che le prestazioni scendano quando il codice diventa illeggibile, perché nessuno sa cosa sta succedendo. Ma il termine marc software ha un riferimento speciale alle prestazioni? o ho ragione nel pensare che si riferisce alla pulizia del codice? oppure è forse il caso in cui più sensi del termine sono in uso comune - dal punto di vista dell'utente, ha a che fare con le prestazioni; ma per l'artigiano del software, deve fare in modo più specifico con come il codice legge?

    
posta Kazark 12.10.2012 - 17:53
fonte

7 risposte

38

Il termine non è legato alle prestazioni, almeno non ovunque l'abbia visto.

Si tratta in particolare del codice che non viene mantenuto bene e diventa ... sporco ... marcio. Riguarda il codice il cui design non è stato aggiornato in quanto sono state apportate modifiche ed è difficile da leggere e comprendere.

    
risposta data 12.10.2012 - 18:02
fonte
18

Lo affrontiamo. "Software rot" non è un concetto tecnico ben definito. È più una descrizione peggiorativa di ciò che accade quando il software è mal gestito.

La pagina di Wikipedia rappresenta una vista, ma ci sono chiaramente viste alternative. E potresti dire che le diverse visioni riflettono le diverse priorità e preoccupazioni della persona che detiene le opinioni:

  • Qualcuno che è focalizzato a rendere il software veloce sarà più incline a cercare prove di "putrefazione del software" nelle prestazioni.

  • Qualcuno che si concentra su design / architettura (ad esempio perché devono aggiungere nuove funzionalità o correggere bug di funzionalità), vedrà "software rotare" da quella prospettiva.

E non è davvero utile dire quale sia la prospettiva più giusta. (È un po 'come discutere se il turchese è più verde o più blu.)

    
risposta data 12.10.2012 - 18:13
fonte
6

Direi che il termine "software putrefazione" si riferisce generalmente all'idoneità per il compito in questione. Il software può diventare meno adatto per il compito previsto a causa di un livello su strato di correzioni di bug, nuove funzionalità e piccole modifiche. Presi insieme, quelli possono influenzare negativamente sia la mantenibilità che le prestazioni. Inoltre, le esigenze dell'organizzazione probabilmente cambieranno nel tempo e il software potrebbe essere forzato in ruoli per i quali non è mai stato progettato. Tutti questi fattori portano il software a diventare meno adatto alle esigenze dell'organizzazione e ciò può accadere anche con uno sforzo concertato per mantenere il software.

    
risposta data 12.10.2012 - 18:16
fonte
6

Wikipedia dice che la decomposizione del software e la decomposizione del codice sono gli stessi. Non sono d'accordo.

Il codice rot è la graduale perdita di leggibilità e manutenibilità in quanto vengono apportate sempre più modifiche al codice.

Rotazione del software è la graduale perdita di prestazioni quando il software viene spostato da un emulatore di ambiente a un altro. Un esempio è tutto il software Data General PDP in esecuzione su emulatori. In realtà, è l'ambiente che sta marcendo, non il software.

    
risposta data 12.10.2012 - 18:21
fonte
3

Il software in realtà non va male, diventa stantio, si consuma o "marcisce" nel senso tradizionale.

Se l'ambiente in cui il software opera non cambia, il software durerà per sempre. Questo è il motivo per cui divento così irritato quando qualcuno chiede se qualche libreria è "morta" perché l'autore non ha fatto un aggiornamento negli ultimi 5 minuti (esagerando solo leggermente per effetto).

Ma l'ambiente di solito cambia; i sistemi operativi vengono riparati e aggiornati, i computer vengono sostituiti con quelli più potenti e vengono installati nuovi programmi (come l'ultima versione di un client come Internet Explorer, driver di dispositivo o altre librerie) da cui il software può dipendere. Quindi il software deve essere aggiornato per tenere conto di tali cambiamenti.

Ci sono sistemi software che sono stati eseguiti in modo continuo e affidabile per decenni letteralmente senza essere aggiornati o mantenuti in modo significativo. Mi viene in mente il software COBOL in esecuzione su mainframe che gestiscono le transazioni bancarie (sebbene dovessero essere tutti modificati nel 1999 per gestire Y2K).

L'enfasi di Wikipedia sulla performance sembra mancare il punto; molte applicazioni software in realtà ottengono prestazioni boost quando vengono installate in un nuovo ambiente. L'articolo di Wikipedia sembra in realtà più interessato al software bloat.

    
risposta data 12.10.2012 - 22:16
fonte
3

"Software rot" - è molto termine vago e può significare varietà di cose per chiunque, a seconda di come è la tua percezione del concetto, nonché, qual è il tuo angolo di visualizzazione .

La definizione di Wikipedia su Rotazione del software non imposta uno standard poiché è anche scritto da alcuni individui. Penso che questo termine abbia una varietà di significato e debba essere suddiviso in aree specifiche, dove è referenziato.

  • I programmatori potrebbero interpretarlo come una base di codice non gestibile con una serie di anti-pattern, nessuna coerenza nello stile di denominazione e di codifica.
  • Gli amministratori di sistema potrebbero capirlo come una cattiva prestazione, piena di perdite di memoria e inferno. Manutenzione.
  • L'utente finale può capirlo come un software molto complicato, non intuitivo e difficile da lavorare.
risposta data 13.10.2012 - 17:50
fonte
2

Ho sempre pensato che il software rotasse come una condizione che si verifica quando non si utilizza il software per un periodo di tempo. In qualche modo, il software si trasforma in uno stato in cui è indivisibile. Quindi, quando si arriva a un punto in cui è possibile costruirlo, non funziona con gli input e gli output come in precedenza. È quasi come se il codice in realtà fosse degradato nella forma anche se è stato memorizzato digitalmente.

    
risposta data 12.10.2012 - 21:15
fonte

Leggi altre domande sui tag