Intellij Idea Sequence Diagram

Posted : admin On 18.08.2021

We support Eclipse, IntelliJ IDEA, NetBeans, Visual Studio and Android Studio. The Class Diagram tool synchronize your class model with database design (the ERD). It also generates the Hibernate ORM mapping tier required in application development. IntelliJ IDEA shows you dependency layout exactly in the order they are defined in pom.xml It’s easy to find your modules on diagram — they all are blue, as well as test dependencies are green. Conflicting dependencies are marked red, and you can find what they conflicted with by selecting one of them. VisUML Documentation. VisUML is a plugin that allow developers to have a model view of their current project, synchronized with their IDE. Each opened Java class is represented on a synchronized class diagram displayed as a web page (that can be opened on a PC/Mac, smartphone or tablet). Click in IntelliJ IDEA toolbar. Click at the top of Diagram Navigator. Right click on the root node of Diagram Navigator and select Update Project to Code from the popup menu. Package Based Code Generation.

The sections below include information on the various capabilities that are facilitated by the IntelliJ Ballerina plugin for the development process.

Plex fire stick 4k. Table of contentsExpand allCollapse all

  • Running Ballerina Programs
  • Debugging Ballerina Programs

Running Ballerina Programs

You can run Ballerina main/service programs with a single click without adding or changing any configurations.

The sections below include instructions on how to run different elements of a Ballerina file.

Running the ‘Main’ Method

Follow the steps below to run the main function of a Ballerina file.

  1. Click the green color icon located near the main function.

  2. Click the corresponding **Run ** command.

This executes the main function of the Ballerina file and displays the output in the Run window.

Tip: Alternatively, you can right-click on the name of the file and run the main method of it.

Running Ballerina Services

Follow the steps below to run a service of a Ballerina file.

  1. Click the green color icon located near the definition of the service.

  2. Click the corresponding **Run **** command.

This starts the service and displays the output in the Run window. If you have multiple services in the Ballerina file, this starts all of them.

Tip: Alternatively, you can right-click on the name of the file and run the service(s) of it.


Debugging Ballerina Programs

You can debug Ballerina main/service programs with a few clicks.


  • Stepping over code lines in non-blocking paths (eg: action invocations) will not pause VM on the next line
    • workaround: manually put a breakpoint to the next line
  • There are some cases where stepping over gives unexpected behavior
    • Eg: When there are multiple workers and a wait expression waiting for them, even though step over hit and pass wait line in source, workers are not yet finished execution.

Viewing the Sequence Diagram

The underlying language semantics of Ballerina were designed by modeling how independent parties communicate via structured interactions. Subsequently, every Ballerina program can be displayed as a sequence diagram of its flow including endpoints as well as synchronous and asynchronous calls.

To view the sequence diagram of a Ballerina file, click the () in the top right corner of the IDE window as shown in the below example.

Importing Modules on the Fly

You can add import declarations to your Ballerina programs on the fly. When you select the module name from the lookup list, the module declaration will be added automatically.

Importing Unambiguous Modules

When you copy and paste Ballerina code to IntelliJ, this feature allows you to import unambiguous imports. You can apply these imports by clicking on the module name and pressing Alt + Enter keys.

Note: This is disabled by default since this might cause issues if the file contains grammar mistakes. Follow the steps below to enable it.

  1. Open IntelliJ, click IntelliJ IDEA in the top menu, click Preferences, and then click Languages and Frameworks.
    • Tip: If you are using Windows, click File, click Settings, and then click Languages and Frameworks.
  2. Click Ballerina and then click Auto Import.
  3. Select the Add unambiguous imports on the fly checkbox and click OK.

Formatting Ballerina Codes

You can reformat the Ballerina codes by pressing the Ctrl+Alt+L keys.

Viewing Documentation

You can view the documentation of a function, remote function, etc., by pressing the Ctrl+Q keys or by hovering over the element while pressing the Ctrl key.

Adding Annotation Fields via Suggestions

You can add annotation fields to your code using the annotation field names that are suggested inside annotation attachments.

Using File Templates

Three types of Ballerina file templates are available.

  1. Ballerina Main - contains a sample main program
  2. Ballerina Service - contains a sample service
  3. Empty File - contains an empty file

Using Code Snippet Templates

Code snippet templates contain boilerplate codes and allows you to write your code efficiently.

Checking Spellings

The spell-checker is enabled for all identifiers. You can rename all of the definitions and references as well.

Analyzing Semantics

The Ballerina IDEA plugin provides capabilities to diagnose and analyze the semantics of your Ballerina programs through the Ballerina Language Server.

Code Folding

You expand/collapse the following Ballerina code segments using the icons in the IntelliJ IDE.

  • imports
  • services
  • objects
  • records
  • functions and object functions
  • annotations
  • markdown documentation
  • multiline comments

Go to Definition

This option allows you to view the definition of a selected variable, function, an object etc., within the same file, in a separate file, in the same module, or in a file of a different module, of the same project or of the Standard Library.

What’s Next?

  • For more information on the IntelliJ IDEA Ballerina plugin, see IntelliJ IDEA Ballerina Plugin.
  • For information on all the tools and IDEs that are supported by Ballerina, see Setting up Ballerina.

Historically I disliked creating design UML diagrams, because the tooling for it mostly requires drawing boxes and connecting them with lines or arrows. I find such workflow very time consuming and wasteful. This short blog post will describe much better way to create UML diagrams.

But first of all, you may argue that UML importance in today’s agile software development world is fading out. I would agree partially.

Creating UML Class Diagrams

From my point of view UML class diagrams are needed very rarely. I can find only two use cases for it:

  • To analyze existing code base
  • To communicate suggested design with the team

When you need to analyze existing code base, class diagrams can be easily generated by your IDE from the existing code. IntelliJ idea provides this as part of payed version:

To find out how to create such diagram, read this IntelliJ IDEA documentation. It is also easy with Eclipse or it’s flavors (e.g. Spring Tool Suite):

You just need to use plugin called ObjectAid.

When we need to sketch class diagram upfront to consult design with the team, I would suggest to create prototype with desired class structure instead and generate class diagram from the live code (again with IDE). You may find some important facts about the design while creating prototype. There’s no need to create logic and tests, just APIs of the design.

And of course when you don’t need such generated diagram anymore, just wipe it out. Low level design may change easily and you don’t want to keep outdated diagrams around. You can generate new diagram from live code easily.

Non-Class diagrams

So when we need Class diagram, it’s smart to generate it from live code. But what about other UML diagrams like:

  • Structure diagrams (except Class diagram)
  • Behavioral diagrams
  • Interaction diagrams (especially useful is Sequence diagram from this bucket)

I personally created only few Use case and Flow chart diagrams during my career. But Sequence and Component diagrams are very useful to document high-level design decisions. Of course you don’t want to have them very detailed, but at high level designer intentions and considerations are sometimes good to document.

But the tool that is used for designing these diagrams has to be very easy to use and flexible. Sorry Visio or Enterprise Architect, I don’t include you into this bucket (although I have to admin I haven’t use EA for long time).

My tool of choice it PlantUML. We can define design with very simple DSL. Therefore instead of connecting boxes and lines on canvas, we can focus on design itself. It can be used as standalone application but it also have impressive list of integrations. So you can easily use it with your IntelliJ IDEA, Eclipse or Spring Tool Suite.

Download Intellij Idea

Very compelling fact for me, is that DSL which defines diagrams can live with the project code-base and also be handled by source control system, with all the goodness it brings. This is simple screenshot from IntelliJ: