Rose Panther Link

Chapter 5 . Reverse-Engineering:From Panther to Rose

Reverse-engineering is the process of converting an existing Panther component into a Rose class. This can occur for existing Panther components as well as for Rose-generated components. This process is beneficial for documenting service components.

When you convert a Rose class into a Panther component, you can reverse engineer the process. This "regenerating" of an existing Rose class only affects the following:

Reverse-engineering an existing Rose class from a Panther component should overwrite all of the previous data. Attributes, operations, and parameters that did not exist in the Rose class are added from the Panther component. Attributes, operations, and parameters that are not in the Panther component are deleted in the newly-regenerated Rose class. The return_args and receive_args statements are regenerated in order to reflect modeling changes in the interface. (To keep the previous statements, refer to "Keeping Code Changes.")

Creating Rose Classes through Reverse Engineering

The Panther Generation Wizard performs this reverse-engineering, resulting in Rose class diagrams displayed by selecting the model's Logical View.

How to Create Rose Classes from Panther Service Components

  1. Choose ToolsPantherGeneration Wizard.
  2. Select the Panther to Rose tab.

  3. If the library name is incorrect, specify the source library by choosing Browse and selecting an application library.
  4. Choose Open.
  5. Define which service components will be imported into Rose by doing one of the following:
  6. Specify which diagram and/or category to receive the generated classes by selecting it in the appropriate list box.
  7. When ready, choose Generate.
  8. When you are finished generating classes, choose Done.
  9. Open the Logical View of the selected class diagram to view the results.

Description of Results

Rose Panther Link sends to Rose only a subset of the Panther component information. The changes to Panther components in the editor that would map back to corresponding changes in the component's class representations in Rose are the following:

The mapping from objects in Panther back to their reflections in the Rose environment will be by name only–if you change the name of an Operation/Method or Attribute/Property, it will not be recognizable to the reverse engineering process.

Keeping Code Changes

The business logic code is preserved automatically by Rose Panther Link on the reverse engineering process. However, the return_args and receive_args statements are regenerated by default in order to reflect modeling changes in the interface. If you do not want to overwrite any customized return_args and receive_args statements, set the RegenerateReturnArguments and RegenerateReceiveArguments properties to false in the Operations Specification window's Panther tab.