options random home screenshot http://ftp.reasoning.com/pub/mosaic/Software-Refinery.html (World Wide Web Directory, ~04/1995)

Software Refinery

The first integrated development environment for building automated software reengineering, reverse engineering and quality assurance tools

Why Software Refinery?

Software reengineering projects require detailed analysis of source code and systematic conversion to meet new requirements. The Software Refinery product family provides the essential capabilities for automating analysis and conversion of source code. You can use Software Refinery to build tools that--- And with Software Refinery's open architecture, the reengineering tools you build can be customized to work in your environment -- with your languages, your databases, and your CASE tools.

The Key Idea

Software Refinery captures the detailed structure of source code in an object base (object-oriented database), and provides tools that operate on code in this form. The object base makes it easy to analyze and convert programs, because you can operate directly on the structure of the program instead of its source text.

How It Works

Software Refinery divides a reengineering application into three parts: For example, a user loads a FORTRAN program into the object base, browses it and selects a module for analysis, and then chooses an operation that automatically creates a dataflow diagram. Software Refinery provides three products for building these three parts: REFINE, DIALECT, and INTERVISTA. The figure below shows how they work together.

DIALECT handles parsing and printing

DIALECT is used to produce parsers and printers for programming languages. Parsers read source code and create a tree of objects in the REFINE object base that captures the full detail of the code down to the statement level. DIALECT's input is a grammar for a programming language. Printers generate source code from the tree representation in the object base. DIALECT is unique in providing these important features:

REFINE speeds development of reengineering tools

The core of a Software Refinery reengineering application is the part that analyzes and modifies the object base representation of the software. This part is written in the REFINE specification language. Software reengineering involves symbolic computations such as constructing control flow graphs for programs. These computations are best expressed using mathematical operations such as set operations, tree-traversal algorithms and pattern matching. REFINE's key features that accelerate development of reengineering tools include: REFINE is the only system that provides a fully programmable program transformation capability. Transformations enable a tool to go beyond passive analysis of source code to provide automatic modification capabilities such as language translation and code cleanup.

INTERVISTA makes reengineering tools easy to use

The user interface requirements on software reengineering tools are unique and demanding. The tools must actively help the user to navigate through large programs, keeping track of non-local interactions and selectively applying reengineering operations. INTERVISTA provides the building blocks to satisfy these requirements, including:

Applications

Example Applications contains a list of typical Software Refinery applications. Selected Papers contains a bibliography of technical papers that describe Software Refinery applications.

Putting Software Refinery to work for you

Call us to find out how Software Refinery and Reasoning Systems can solve your reengineering problems.

Technical Specifications

Hardware Platforms:            SPARC, IBM RS/6000, and HP 9000/7xx

RAM:                           28 Mbytes minimum, 32 Mbytes or more recommended
File Space:                    47 Mbytes
Swap Space:                    70 Mbytes minimum, 120 Mbytes or more recommended
Window System:                 X Window System or OpenWindows
Copyright 1994 Reasoning Systems, Inc. All rights reserved. Restricted Rights Legend.


Reasoning Systems, Inc., 3260 Hillview Avenue, Palo Alto, CA 94304 · 415.494.6201 · FAX 415.494.8053 · sales@reasoning.com