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.3 required=5.0 tests=BAYES_00,FREEMAIL_FROM, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,7ae1b1bf3750805f X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-04-08 11:31:40 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!cpk-news-hub1.bbnplanet.com!cambridge1-snf1.gtei.net!news.gtei.net!bos-service1.ext.raytheon.com!bos-service2.ext.raytheon.com.POSTED!not-for-mail Message-ID: <3CB1E1FA.4E05C30B@despammed.com> From: Wes Groleau Reply-To: wesgroleau@despammed.com X-Mailer: Mozilla 4.77 [en] (Windows NT 5.0; U) X-Accept-Language: en,es-MX,es,pt,fr-CA,fr MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Reverse Engeenering References: <3cae0835$0$27054$7a628cd7@news.club-internet.fr> <3CB1AF02.F9B83004@despammed.com> <4519e058.0204081006.6cc320bd@posting.google.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Mon, 08 Apr 2002 13:31:22 -0500 NNTP-Posting-Host: 151.168.144.162 X-Complaints-To: news@ext.ray.com X-Trace: bos-service2.ext.raytheon.com 1018290699 151.168.144.162 (Mon, 08 Apr 2002 14:31:39 EDT) NNTP-Posting-Date: Mon, 08 Apr 2002 14:31:39 EDT Organization: Raytheon Company Xref: archiver1.google.com comp.lang.ada:22243 Date: 2002-04-08T13:31:22-05:00 List-Id: > I used Teamwork back in the pre-UML days (1989), but we never tried > code generation or reverse engineers. I used the ObjectTeam (not > realizing it was the same product), and can vouch that its > reverse-engineering still sucked. For instance, it wanted to make each Teamwork's reverse engineering algorithm in 1990 generated Buhr diagrams from Ada, with an algorithm like: For each subprogram or task in the input, generate a new separate diagram containing one subprogram and an invocation arrow. put the name of the subprogram in the box put the parameters on the invocation. end So to make them usable, you go through all the diagrams or source to identify all the packages (source is easier). Then you manually create each package. Then you create all the visible subprograms/tasks in each package. You can cut and paste names and parameters from the revenged* diagrams, or from source. Guess which is easier! :-) Once you go through this step to make the model useful for anything at all, you have to maintain it in that format, because to reveng it again means doing all this over! As for code generation: It generated ONLY the skeleton, i.e., only that which was obvious from the diagrams: declaration, parameters, begin, exception, end. It inserted special comments to divide each compilation unit into NINE sections. Each section was stored in a separate file, which so-called "code generation" pasted back together. These sections had to be maintained by hand, but to syntax check or use any other tools, you had to run the generator. If you ever edit a compilable file, see above comment about "reveng it again" *the reverse engineering tool was called reveng - appropriate! -- Wes Groleau http://freepages.rootsweb.com/~wgroleau