FAQ

C++ Add-In

FAQ

Top  Previous 

The following are frequently asked questions and answers for C++ Add-In.

 

 

 


 

1.The "C++" menu cannot be found under the [Tools] menu.

 

There are two possible reasons why the menu does not show up. One is that C++ Add-In is not installed in StarUML(tm) or related files are damaged. To correct this, run the installation program to reinstall StarUML(tm) or select to reinstall C++ Add-In only. If you are familiar with the structure of StarUML(tm) Add-Ins, you may examine the registry or menu files to check for damage in the Add-In and correct the problem. Another possible reason for the problem is that C++ Add-In is disabled by Add-In Manager. If so, go to Add-In Manager and enable C++ Add-In. For the procedure to enable C++ Add-In, see the "1.2 C++ Add-In Configurations" section.

 

 

2.When reverse engineering with C++ Add-In the "Analysis failure" error occurs even though the source has no C++ grammar problems.

 

Source file analysis failure in reverse engineering occurs mostly with the codes written with macros.

While general C++ compilers perform another pre-process cycle prior to compiling the source code, C++ Add-In does not perform a complete pre-process cycle. This is because replacing all the macros requires analysis of the source files that contain the declarations of the macros. This requires separate management of the source file paths for searching, takes a longer time analyzing the macro declaration source files, and some sources written in specific development environments such as Visual C++ cannot be analyzed properly unless the development environment is installed in the system. Including macro comments in the analyzed model may also result in a complicated model view, which may make it difficult for the user to analyze the model.

 

Consequently, C++ Add-In flexibly modifies parts of the grammar used in analysis so that the macros used in member declaration in class are identified as macros in the model. However, since it is difficult to identify macros in any location due to the nature of the grammar, macros in unexpected locations may not be identified correctly. In such rare cases, the "analysis failure" error occurs. Nevertheless, even through some parts of source file analysis may fail, the rest of the file is analyzed correctly, returning the proper reverse engineering results.

 

 

3.Not all of the C++ reverse engineering results are displayed in the diagram.

 

Not all of the reverse engineering results are displayed in the diagram because the current diagram is not large enough to contain all of the generated views. Select the [Tools]->[Options...] menu to open the Options dialog box, and at the [Environment]->[Diagram] section, adjust the "Default Diagram Height" and "Default Diagram Width" to make the diagram size larger.

 

 

4.The pointer indicators in Attribute type properties are omitted in the C++ reverse engineered models.

 

UML does not include model properties for the C++ pointer concept. Therefore, it is not technically correct to use pointer indicators in Attribute type properties. Nevertheless, C++ Add-In uses the CppPointer tag definition for expressing pointer type and reference type. Select the Attribute and hit Ctrl + F7 to verify the CppPointer tag definition value in the tag definition editor window.

 

 

5.The reverse engineered diagram is too complicated to view.

 

One of the main functions of reverse engineering is to convert an existing

source code into models and facilitate easier analysis. However, if all

of the reverse engineered model information is expressed in diagram, it would be difficult to view and analyze the information.

In order to assist the user in this aspect, C++ Add-In provides various options for reverse engineering. The user can specify the diagram format by manipulating these options. For example, selecting "Suppress the Attribute compartment", "Suppress the Operation compartment", and "Generate Generalization and Realization views only" outputs only the class inheritance structure in diagram.