[comp.software-eng] Reverse Engineering, Design Extraction, Extracting Business Rules

orville@weyrich.UUCP (Orville R. Weyrich) (05/11/91)

I am putting together a proposal for a program reverse engineering tool which 
uses AI techniques, and would like any information the net can help me with. 
I expect to post the results, and hope to stimulate some discussion in this
area.

"Reverse Engineering" can mean a lot of things to different people, including
the following:
	1) Support for extracting "business rules" from an existing program.
		This becomes necessary when dealing with dusty-deck code
		when the people in an organization that were responsible for 
		creating the program have disappeared, along with those 
		that knew how the business was run prior to the installation 
		of the program. Here, we are talking about "knowledge 
		acquisition" as is done in building expert systems,
		but in this case, there are no human experts left, only a
		bunch of undocumented source code (or worse!). 
	2) Support for "Program Archeology" or "Design Recovery" on an 
		existing program. This is done to recover the program design 
		documents which have been lost (or never made). 
		This becomes necessary in order to maintain the code.
	3) Producing a "work-alike" product by working backwards from the
		external behavior to figure out how to code a new application
		which is a clone, but which does not use the original code.
		An example would be the "NewWord" product which cloned the
		"WordStar" word processor. This technique is under legal attack,
		and is not what I have in mind.

I am aware of rumors that companies such as ViaSoft and Transform Logic
Corporation are preparing products to support Reverse Engineering, but
would like any additional information which the net knows of. In particular,
I know that Transform Logic Corporation demonstrated at their "Transform User's
Group" last year a product under development which converts dirty old COBOL
decks into a hypertext format for browsing by the programmer.

I suspect that many consulting/contract job shops have tool suites that they 
use in-house.

I will of course post a summary to the net of the responses which I receive.
Please e-mail responses to orville%weyrich@uunet.uu.net or else post to
comp.software-eng (note the followup line).

My questions:

	Does anyone know of companies interested in this kind of stuff that
	I might offer my services to (as either a consultant or an employee?)

	What products are available now, and what (if any) research is
	presently being done in this field?

	I have heard rumors to the effect that the present tools are less
	than satisfactory. I would be interested in hearing of the experiences
	(good and bad) of anyone who has used these tools. Bad experiences
	are particularly useful, since they help clarify where improvements
	need to be made.

	References to any articles on the subject would also be appreciated.
	I am aware of the issue of IEEE Software on Reverse Engineering
	(January 1990).

Thanks,

Orville.

--------------------------------------           ******************************
Orville R. Weyrich, Jr., Ph.D.                   Certified Systems Professional
Internet: orville%weyrich@uunet.uu.net             Weyrich Computer Consulting
Voice:    (602) 391-0821                         POB 5782, Scottsdale, AZ 85261
Fax:      (602) 391-0023                              (Yes! I'm available)
--------------------------------------           ******************************