In terms of risk avoidance, the NACA approach makes perfect sense. Reuse of their tools may not be. They used tool development to speed up their work in Java and Linux.
The result of NACA conversion will not be good enough, or even OO, and makes it difficult to hire new people. But it can be checked, it can be reorganized, and you can connect the best translators.
[edit] Ira, you do not seem to be very aware of the risk.
Submitting cobol programmers to a java course will not force them to write useful object-oriented code. It takes several years. During this time, their performance will be very low, and you can basically throw away all the code that they write in the first year. In addition, you will lose 10-20% of your programmers who are unwilling or unable to make the transition. Many people do not like to return to their initial status, and it will affect the hierarchical order, as some programmers choose a new language faster than others.
The NACA approach allows the business to continue to operate and does not exert unnecessary pressure on the organization. The conversion schedule is independent. Having a separate translator in java written by OO experts allows you to gradually use java for the old team. Writing test cases increases domain knowledge in the new java command.
The real GS system is a translator, and this is the place to connect the best translators. Make it easy and you don’t need to touch the generated code. If the generated code is ugly enough, this will happen automatically: :)
- older programmers will change cobol input;
- new java will change the translator.
[running translator once] is a bad strategy. Do not do this. And if you need to edit the generated code, display back. It can be automated. And it should be. It's much easier to do such things in a Smalltalk image, but you can do it with files. There are people with wide experience who support different views on the same artifact: chip designers come to mind.
The translator must be instrumental, so you can create daily calculations, for example.
- cobol input components;
- OO I / O components
- cobol style output components;
- OO style output elements.
You might want to read: Peter van den Hamer and Kees Lepoeter (1996) Design data management: five dimensions of CAD frameworks, configuration management and data management, IEEE materials, vol. 84, No. 1, January 1996.
[moving Cobol platforms] Migrating from Cobol on the mainframe to Cobol on Windows / Linux could be a viable strategy for the NACA team, but it was about switching to java. If the long-term goal is to have a modern OO system and get there with minimal operational risk, the NACA approach sounds. This is only one step. A lot of refactoring will follow.