From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=BAYES_00,INVALID_DATE, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,83c3aa00160f1010 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-11-08 04:07:33 PST Path: nntp.gmd.de!xlink.net!howland.reston.ans.net!cs.utexas.edu!bcm!newsfeed.rice.edu!news.sesqui.net!bti!ceti!adp From: adp@cetijsc.nasa.gov (Allan Plumb) Newsgroups: comp.lang.ada Subject: Re: Fortran to Ada Date: 4 Nov 1994 14:24:06 GMT Organization: LinCom; NASA/JSC Software Technology Branch Sender: adp@ceti (Allan Plumb) Distribution: world Message-ID: <39dg66$43s@popeye.jsc.nasa.gov> References: <9411032048.AA02784@eight-ball.hv.boeing.com.hv.boeing.com> Reply-To: adp@gothamcity.jsc.nasa.gov NNTP-Posting-Host: ceti.jsc.nasa.gov Date: 1994-11-04T14:24:06+00:00 List-Id: Bob Crispen writes: |> Whenever we've ignored our own lessons learned (jeez, none of YOU guys |> have ever done THAT ;-) and tried to re-code (that is, convert from line |> to line, Fortran to Ada) we've created a nest of bugs that take forever |> to find and fix. When we redevelop, we find that previously annoying |> but non-fatal bugs which have existed in the Fortran code since |> time immemorial have now mysteriously disappeared. |> |> Your mileage may vary, but I doubt it. Oh? Whenever I've seen people redevelop in another language (or the same language) without paying sufficient attention to the existing system, I've seen: - many capabilities of the existing system are lost (but of course everybody else has up-to-date requirements, right?) - validation of the new system is iffy, since they don't have anything to compare it to at lower levels I've seen several cases at JSC of "Here's the new improved version of system X; it does everything the old one did! ... Function ZZZ? I didn't know anybody still used that. ... Function QQQ? Nobody ever told me the system was supposed to do that. ... Why is the new system giving shuttle cross-ranges off by 10 miles from the old system? Let me spend a couple of months to figure that out." And "re-code (that is, convert from line to line, Fortran to Ada)" is or should be a straw-man argument. _Of course_ line by line conversion won't work. So why would you do that? I.e., translators _by themselves_ aren't up to the task, but reengineering FORTRAN to Ada is a bit more than putting semi-colons on the ends of the lines... My own experience was reengineering a FORTRAN orbital maneuver program to Ada. About 40 KSLOC, FWIW. The resultant Ada program gaves answers identical to 15 decimal places to the FORTRAN, and I _know_ that no capabilities were left out, because I have a trail from every FORTRAN algorithm to the Ada replacement, or documentation of why it was not needed. And BTW, we found several "annoying bugs in the FORTRAN" and fixed them as we went. And I've seen quite a few redevelopment projects that hit the other problems I mentioned, and my coworkers have told me of more. Is reengineering difficult and time-consuming? Yes. Does it have advantages over redevelopment? Also yes. Are the advantages worth the time? Now _here_, your mileage may indeed vary. Carry on. -- Allan Plumb (adp@gothamcity.jsc.nasa.gov)