PreviousNextIndex
Visual Paradigm for UML IDE Integration Guide

Chapter 4 - Integration with IntelliJ IDEA™

Overview

VP-UML Professional and Enterprise Edition allows you to integrate the VP-UML module with IntelliJ IDEA, providing full software development life cycle support. By designing your software system in VP-UML, you can generate programming source code from class diagram to an IntelliJ IDEA project. Also, you can reverse engineer your source code into class models in VP-UML.

Installation

First of all, please make sure your machine has IntelliJ IDEA 4 or above properly installed.

To install IntelliJ IDEA Integration from VP-UML:

  1. Start VP-UML
  2. Select Tools > IDE Integration... from the main menu of VP-UML.
  3. This displays the VP-Suite dialog box.
  4. Check IntelliJ IDEA Integration.
  5. Click Next. This displays the Product Configuration page.
  6. Locate the IntelliJ IDEA home directory in the Directory field. You can enter the path directly in the text field, or press ... to select the directory from the Open dialog box.
  7. Click Next. This displays the Installing Files page and starts the installation process.
  8. Click Finish to close the dialog box when the installation is completed.
  9. You can install IntelliJ Integration only on a "clean" copy of IntelliJ. A clean copy of IntelliJ is one which has no other kinds of integration such as SDE for IntelliJ IDEA and DBVA for IntelliJ IDEA installed.

    IntelliJ IDEA Integration can only be installed on ONE IntelliJ IDEA directory only. The next time you start the VP-Suite dialog from VP-UML you will see the option IntelliJ IDEA Integration is selected.

Creating a VP-UML Project in IntelliJ IDEA

To create a VP-UML Project in IntelliJ IDEA:

  1. Start IntelliJ IDEA.
  2. Select the IntelliJ IDEA project for which you want to create a VP-UML project for it.
  3. Right-click on the selected project and choose VP-UML > New VP-UML Project from popup menu.
  4. This displays the Project Structure dialog box.

  5. Select from the Project Structure dialog box the location of the VP-UML project is to be saved. The VP-UML project, with .vpp extension, is the UML project file that is going to be associated with the selected IntelliJ IDEA project file. Select Create in default path result in saving the VP-UML project to %IntelliJ_IDEA_Project_Directory%/vpproject while selecting Create at external location require you to specify the project path.
  6. Click OK.
  7. This starts a new instance of VP-UML on a separate window. The project opened from VP-UML is associated with the IntelliJ IDEA project.

Opening a VP-UML Project from IntelliJ IDEA

  1. Start IntelliJ IDEA.
  2. Select the IntelliJ IDEA project for which you want to open the VP-UML project from it.
  3. Right-click on the selected project and choose VP-UML > Open VP-UML Project from popup menu.
  4. This starts a new instance of VP-UML on a separate window. The project opened from VP-UML is associated with the IntelliJ IDEA project.

Reverse Engineering from Code to Model

Code reverse engineering updates UML class models from source code in IntelliJ IDEA. You can update the whole project, package (s) and class (es) from IntelliJ IDEA to VP-UML. Before reverse engineering, you must open the UML model of the desired project. More information about how to open a VP-UML from IntelliJ IDEA can be found from the section Opening a VP-UML Project from IntelliJ IDEA in this Chapter.

Project Based Reverse Engineering

You can update models in VP-UML from an IntelliJ IDEA project. Models of the selected project, child packages and classes will be updated or created (if the models are not already exists).

To reverse engineer code from an IntelliJ IDEA project to UML model, right-click on the project node in IntelliJ IDEA and select VP-UML > Update VP-UML Model from popup menu.

This updates/creates the corresponding UML model in VP-UML.

Package Based Reverse Engineering

You can update models in VP-UML from an IntelliJ IDEA project. Models of the selected package, child packages and classes will be updated or created (if the models are not already exists).

To reverse engineer code from a package in an IntelliJ IDEA project to UML model, right-click on the package in IntelliJ IDEA and select VP-UML > Update VP-UML Model from popup menu.

This updates/creates the corresponding UML model in VP-UML.

The model will be updated according to the package hierarchy.

Class Based Reverse Engineering

You can update models in VP-UML from an IntelliJ IDEA project. Models of the selected class and child classes (inner class) will be updated or created (if the models are not already exists).

To reverse engineer code from a class in an IntelliJ IDEA project to UML model, right-click on the class file in IntelliJ IDEA and select VP-UML > Update VP-UML Model from popup menu.

This updates/creates the corresponding UML model in VP-UML.

Selecting Corresponding Elements in VP-UML from IntelliJ IDEA

VP-UML helps selects class models in VP-UML corresponding to the source code in IntelliJ IDEA. To select corresponding models in VP-UML from IntelliJ IDEA, perform one of the following actions:

Code Generation from Model to Code

Code generation creates/updates source code in a IntelliJ IDEA project from UML models. You can select to update the whole project, package (s) and class (es) from VP-UML to IntelliJ IDEA. Before updating/generating code, you must open the UML model of the desired project. More information about how to open a VP-UML from IntelliJ IDEA can be found from the section Opening a VP-UML Project from IntelliJ IDEA in this Chapter.

Furthermore, there are 2 ways in synchronizing (updating) model to code. They are Sync to Code and Force Sync to Code.

Sync to Code

Removed sources will not be recovered. Only the existing sources will be synchronized with the UML models.

Force Sync to Code

Removed sources will be recovered. Existing sources will be synchronized with the UML models, while removed sources will be reconstructed.

Project Based Code Generation

To generate all classes and/or packages within a UML project:

  1. Right-click the project (the root) in the Diagram Navigator, in the Model Tree or in the Class Repository Tree.
  2. Select Update Project to IntelliJ from popup menu.

Package Based Code Generation

To generate a package together with class/classes inside:

  1. Select the desired package for generating code on a class diagram, in the Diagram Navigator, in the Model Tree or in the Class Repository Tree.
  2. Right-click on the selection and choose Update to IntelliJ from popup menu.

Class Based Code Generation

To generate class/classes:

  1. Select class/classes on a class diagram, in the Diagram Navigator, in the Model Tree or in the Class Repository Tree for generating code.
  2. Right-click on the selection and select Update to IntelliJ from popup menu.

Selecting Corresponding Elements in IntelliJ IDEA from VP-UML

VP-UML helps selects element in VP-UML corresponding to the source code in IntelliJ IDEA. To select corresponding piece of source code in IntelliJ IDEA from VP-UML, perform one of the following actions:

Importing a VP-UML Project into IntelliJ IDEA

You can import another VP-UML project into an IntelliJ IDEA project. If there is a VP-UML associating with the IntelliJ IDEA project, importing a VP-UML project results in replacing the original one with the one going to be imported.

Before importing a VP-UML project, you must open the UML model of the desired project. More information about how to open a VP-UML from IntelliJ IDEA can be found from the section Opening a VP-UML Project from IntelliJ IDEA in this Chapter.

To import a VP-UML project:

  1. Select the IntelliJ IDEA project for which you want to import a VP-UML project into it.
  2. Right-click on the selected project and choose VP-UML > Import VP-UML Project from popup menu.
  3. This displays the Import Project dialog box.
  4. Locate the file path of the source VP-UML project. The source project is the one that is going to be imported into the selected IntelliJ IDEA project. If there is an existing VP-UML project associated with the selected IntelliJ IDEA project, the target project path is the path of the existing VP-UML project. If there is no existing VP-UML project associated with the selected IntelliJ IDEA project, the path is the default one, which is %IntelliJ_IDEA_Project_Directory%/vpproject.
  5. Click OK.
  6. This starts a new instance of VP-UML on a separate window. The project opened from VP-UML is the imported one which is now associated with the IntelliJ IDEA project.

Exporting a VP-UML Project from IntelliJ IDEA

You can export the VP-UML project that is associated with an IntelliJ IDEA project. The exported VP-UML project has no association with both the IntelliJ IDEA project and the VP-UML project it exported from.

Before exporting a VP-UML project, you must open the UML model of the desired project. More information about how to open a VP-UML from IntelliJ IDEA can be found from the section Opening a VP-UML Project from IntelliJ IDEA in this Chapter.

To export a VP-UML project:

  1. Select the IntelliJ IDEA project for which you want to export the VP-UML associated with it.
  2. Right-click on the selected project and choose VP-UML > Export VP-UML Project from popup menu.
  3. This displays the Save As dialog box.

  4. Locate the project file path for the output project.
  5. Click Save.
  6. The VP-UML project is exported to the specified location.

Model Representation of Code

The following table shows some of the model representation of code.

 
Model
Code
Class

public class MyClass
{
}
Abstract Class

public abstract class MyClass
{
}
Attribute
   
Instance Scope

public class MyClass
{
private Integer intValue;
}
classifier Scope

public class MyClass {
private static Integer intValue;
}
Operation
   
Instance Scope

public class MyClass
{
private Integer intValue;
public integer getIntValue()
{
}
}
Classifier Scope

public class MyClass
{
private static Integer intValue;
public static Integer getIntValue()
{
}
}
Package

package Package;
Containment

package Package;
public class MyClass
{
}
Inner Class

public class OuterClass
{
class InnerClass
{
}
}
Generalization

public class MyClass extends OtherClass
{
}
Realization

public class MyClass implements MyInterface
{
}
Association

public class MyClass {
Otherclass otherClass;
}


PreviousNextIndex
Visual Paradigm International Limited
Website: www.visual-paradigm.com
Tel: +852 2744-8722
Fax: +852 2744-6722
Contact: support@visual-paradigm.com