Abbiamo un sistema legacy da aggiornare perché:
- Utilizza un database non sql impopolare (tra i nostri utenti) (Btrieve)
- Fornisce solo un'interfaccia di testo
- È scritto in Turbo Pascal (ma compilato in pascal gratuito), il che è difficile da reclutare / mantenere gli sviluppatori per mantenerlo
Per darti un'idea della scala, il codice base è 15 MB su 756 file.
Tutti gli studi che ho esaminato come quelli elencati qui suggeriscono che è molto più costoso riscrivi piuttosto che adattare ciò che hai.
Se pensassi che potremmo incapsulare il materiale legacy dietro un servizio web e quindi progettare nuovi client, ciò andrebbe bene. Ma sono bloccato con questo database legacy che fa riferimento al 90% di quei 756 file.
Abbiamo persino tentato di sostituire il codice DB di basso livello con il codice per convertire in SQL e, sebbene funzionasse correttamente, era troppo lento perché il codice accede ancora ai record uno alla volta generando troppe istruzioni SQL rispetto a bisogno. Inoltre, questo approccio non consente miglioramenti nel design del DB.
Di fronte a un tale sconvolgimento come la sostituzione del DB a cui fa riferimento in modo così pesante il codice e gli altri requisiti elencati, può ancora pagare per il riutilizzo o stiamo meglio trattando la nuova versione come un prodotto completamente nuovo e appena elencando il le attuali capacità dei sistemi come requisiti (tenendo presente che non esiste un documento di requisiti a portata di mano per il sistema attuale)
So che è troppo difficile dare una risposta definitiva a questo, quindi qualsiasi consiglio sarebbe apprezzato soprattutto se hai avuto una situazione simile.