Domanda

Abbiamo un'applicazione molto importante, ma finora nessun codice sorgente. L'applicazione è stata scritta in COBOL e una versione compilata è nel nostro sistema di produzione ed è in esecuzione.

Tuttavia, dobbiamo migrare su un nuovo server e sul nuovo compilatore cobol. Abbiamo l'impressione che dobbiamo ricompilare il codice per farlo funzionare sul nuovo server. L'esecuzione del programma compilato esistente ha dato errori di memoria di runtime.

Abbiamo del codice sorgente per il programma, ma è vecchio. Non sono sicuro di quale sia la differenza tra esso e il programma compilato.

Okay, quindi la domanda: cosa dovremmo fare?

Il tempo non è dalla nostra parte, poiché dobbiamo rimandare indietro il nostro vecchio server per ottenere credito. Idee, suggerimenti, pazzi o altro? (il controllo del codice sorgente è ovvio e non dipende da me farlo, quindi salva le lezioni)

È stato utile?

Soluzione

Nel breve periodo sarebbe probabilmente più economico organizzare il mantenimento del vecchio server. Nel semi-lungo periodo, è necessario guadagnare tempo e budget per riprogettare il programma, riscriverlo o vedere quanto sforzo sarebbe fare per modellare il vecchio codice in forma facendo quello che il programma attualmente fa.

Altri suggerimenti

Crea un'immagine del tuo vecchio server. Quindi eseguire il vecchio server come macchina virtuale sul nuovo server.

Tuttavia, sono d'accordo che un'opzione migliore è probabilmente quella di mantenere il server di produzione.

È purtroppo. Si consiglia di consultare la Società di recupero della fonte

Se il tuo codice sorgente è relativamente vicino alla versione compilata, prova questo:

  • decompila nuova versione in assemblatore
  • compila il vecchio codice sorgente in assembler
  • confrontare
  • riconcilia nel miglior modo possibile le differenze tra la nuova versione e la vecchia versione, nel vecchio codice souce
  • ripetizione

Per aumentare questo, e probabilmente come secondo passo, poiché porterà il codice sorgente più lontano dalla nuova versione compilata, prova con i dati di input e prova semplicemente il reverse engineering in base all'output che sarebbe necessario per creare quell'output . Più dati di input di test hai, meglio potrebbe funzionare.

Buona fortuna!

(Non sono un programmatore COBOL ma ..) Se sai quale versione era il compilatore che compilava il programma originale, potresti almeno compilare la vecchia fonte di cobol; se le versioni compilate sono identiche, sai che l'origine è effettivamente la versione corrente.

Se differiscono, potresti provare (in qualche modo) decompilare , o almeno < a href = "http://en.wikipedia.org/wiki/Disassembler" rel = "nofollow noreferrer"> disassemble , la versione compilata funzionante e la versione appena compilata e utilizzare un strumento diff per avere un'idea di quanta differenza ci sia.

pazza congestione: COBOL DECOMPILER - > FONTE - > NUOVO COBOL COMPILER ...?

(modifica: http://juggersoft.com - PAID decompilatore cobol)

se hai i file binari .int (intermedi) puoi semplicemente eseguirli sul nuovo server, altrimenti li dovresti ricompilare.

Il programma potrebbe essere stato prodotto da una risorsa esterna e quella persona o software house o organizzazione potrebbe avere la fonte più recente nel loro repository. Potrebbe essere trattenuto dall'organizzazione principale se si è unito di recente o potrebbe trovarsi in un'installazione di computer diversa o di backup nell'organizzazione. Potrebbe esserci una copia sull'account utente dello sviluppatore e potrebbe non essere stata inviata al sito di produzione o live o qualcuno dalla sede centrale ne ha una copia per valutare e provare a risolvere la situazione. Potresti avere successo se telefona a quelle persone o potresti sempre parlare con l'operatore del computer di installazione o il personale di supporto e vedere se ne hanno uno su nastro magnetico, CD-ROM o altro archivio di backup.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top