Software Ideas Modeler Tutorials

UML Abstract Class vs Interface

What is the difference between an abstract class and an interface? This tutorial shows you similarities and differences between these two object-oriented programming concepts.

C# Class, Interface, Enum and Other Concepts in UML

You can model your C# software in UML. The classes can be modeled using UML class diagrams. It is possible to depict abstract, static, generic classes and their members.

BPMN Diagram

A BPMN diagram offers a graphical representation for process modeling and describing. The processes are presented as flows of tasks, events, and process branches (realized by gateways), organized in swimlanes.

UML Class Diagram Enumeration

An enum allows you to define an entity with a list of literals in the UML class diagram. UML Enumeration values can be used by class attributes.

Convert UML Class Diagram to ERD

UML class diagram and ER diagram share the ability to define a domain model. Software Ideas Modeler allows you to convert the classes to entities, associations to relationships and the class attributes to ERD attributes.

UML Arrows - Know UML Relationship Types

UML diagrams use different types of arrows. Each arrow type represents another relationship. Sometimes the relationships are depicted in the same way, but they have a slightly different meaning. In that case, they can be annotated with a stereotype.

How to Make a Tree Diagram

You can draw a tree diagram box by box or you can generate it from the text list. Software Ideas Modeler offers a handy solution which allows you to create a tree diagram very easily within seconds.

Useful Features of Diagram Editor

The diagram editor offers useful features that can help you during the diagram creation, save you mouse clicks and allows you to create the diagrams faster.

Event Tree Analysis (ETA)

An event tree analysis is a powerful analytical tool that allows you to analyze an event within a system with its possible consequences and probabilities of various outcomes.

Fault Tree Analysis Diagram (FTA)

FTA (Fault Tree Analysis) diagram is used to analyze and understand possible risks, especially in high-hazard industries. It is a top-down diagram that organized the events and lower-level events using Boolean logic operators.

What Is the Difference Between UML Aggregation and Composition?

An aggregation and a composition are both a type of association in UML diagrams. They are more specific versions of an association. An association connects two classes that need to communicate somehow. Both association and composition are kind of "has-a" relationships. Despite these similarities, there is a difference between aggregations and compositions.

Chen ER Diagram - Entity-Relationship Diagram in Chen Notation

Chen's notation of the entity-relationship diagram depicts data and domain models using entities, attributes, and relationships. Unlike other ER diagram notations, it shows attributes as standalone boxes, not as a part of entities.


The UML reverse engineering tool allows you to transform JSON to a UML diagram. You can get UML from JSON very easily on just a few clicks.

SQL from ERD

The entity-relationship diagram can be turned into a SQL script. The ERD tool can generate create scripts for each entity and relationship in the diagram or only for the selected part. You can transform ERD entities to database tables very easily.

ERD from SQL

The ERD tool allows you to generate an ER diagram from a SQL database. It is also possible to create an ERD from a SQL DDL script. You can turn the whole schema into a diagram or you can select only some tables that you want to be imported.

Roadmap (Diagram)

Use the roadmap tool to create a good-looking roadmap that depicts a plan of a project, the planned stages for new features and modules. Roadmaps are used to present what a team or a company wants to release or develop in the upcoming period or later in the future.

Advanced Use Case Analysis

A use case analysis allows you to understand the functional user requirements on the modeled system. During the analysis, you will identify the actors and specify their interactions with the system using use cases. Use cases are detailed using a flow of events.

Code Generation - Turn Your Diagram to Code

Transform UML to code. Our code generator allows you to convert your diagrams to source code in various programming languages. Mostly, you will need to build codes and scripts for UML class diagrams or entity-relationship diagrams. However, you can also generate code from a UML state machine diagram or any other diagram type with custom-defined templates.

Diagram Element with Multi-Line Names

The long names of diagram elements may be broken into multiple lines. If the name is too long to be displayed within specified bounds, it is broken automatically.

How to Create a Diagram

Organize your model in diagrams. There are dozens of diagram types you can use. Each diagram type is good for specific purposes. You can create multiple diagrams in a project. A diagram should be named properly and placed in the project hierarchy.

How to Draw a Flowchart

A flowchart is a common type of diagram. It is easy to draw and even easier to read. Let's look at how to make a flowchart using Software Ideas Modeler.

Change Type Set for Entity-Relationship Diagram

The type set is set to UML by default. When creating data models using E-R diagrams you may want to use another type set - e.g. database-specific.

Set Primary Key to ERD Entity (ER Diagram Editing)

A primary key uniquely identifies a tuple/row of entity (data set, table). It may be an attribute or a set of attributes. Primary key attributes are marked with + symbol, alternatively with PK acronym or a key icon.

User Stories (Diagram)

A user stories diagram is the easiest way how to capture and define user requirements. The user stories may be organized within hierarchies and periods (called sprints). The epics represent the top level of the user story hierarchy. The requirements are organized in the form of statements - As ... I can ... so that ...

Decision Matrix (Decision Table Diagram)

A decision matrix (or decision table) is the right choice, if you want to resolve possible outcomes of many combinations of conditions. It allows you to define conditions and possible actions. Then you define the rules which show what conditions lead to what actions.

Reversed Direction Setting for Connector Tool

Each connector tool has defined a default direction in which it is inserted into the diagram. You may change this setting using the context menu for the tool.

Show Wireframe in Web Browser Container

You may design a wireframe of your web application in a diagram and reference it in another diagram using the Web Browser element. The Web Browser container will emphasize the target environment - it will be clear that your wireframe represents a web application or a web page.

Add Constructor to UML Class

A constructor is a procedure called to create a class. This tutorial shows you how to add a constructor to a class in your UML diagram easily.

Working with Progress Bar (Infographic)

Infographic element Progress Bar shows a visual representation of progress. This tutorial shows you how to harness all its capabilities.

New Diagram By Selection

If you want to create a new diagram from a part of an existing diagram, you may copy the desired elements, add a new diagram and paste the elements into it. Or you may do it in just a click. This tutorial shows you how.

Day 10: Project Hierarchy

The models and diagrams are organized in projects. A project contains all elements, relationships, documentation, diagrams, other specific parts, and their associated data, fields and styling settings.

Day 9: Drag & Drop

Drag and drop is a very useful and intuitive technique. Software Ideas Modeler supports drag&drop actions wherever it is possible.

Highlighting Relationships in Entity-Relationship Diagrams

The ERD tool provides many useful features to help you work with diagrams. One of them is the highlighting of the context parts in the diagram.

Day 8: Editing Element Properties

Each element is defined by its properties - id, name, style, owner, repository, associated diagrams, tagged values, documentation. and other element-specific properties. You may edit all of them using the Properties dialog and a lot of them in the Properties sidebar.

Delete Container Without Nested Elements

Containers are elements which may contain other elements. By default, if you delete a container its nested elements will be deleted together with it. However, Software Ideas Modeler offers an option how to delete a container without its nested content.

Delete Element with Relationships

Elements are usually connected with other elements in diagram using relationships. If you know that you will not need an element nor its connectors to other elements, you may delete them together.

Style Set Editor

Style Set Editor allows you to edit a style set, its styles, styling rules, and color palette. This tutorial shows you how to use the Style Set Editor to create a new style set or edit an existing one.

Day 7: Styling Diagram Elements

Software Ideas Modeler offers plenty of styling options and settings. You may choose your colors and fonts, adjust the border width, the fill style, turn on shadows or gloss effects. An emulated handwriting style is also supported. It is possible to adjust the styles of individual elements. You may also extract these styles and reuse them.

Day 6: Mastering the Layout and Arrangement

A good layout makes a good diagram. Software Ideas Modeler provides a lot of tools that help you to create beautiful diagrams with a perfect layout.

Day 5: Exporting Your Work for Others

The diagrams and models you created may be presented to the outside world in standard format files. You may print the diagrams, send projects via email or create the whole documentations.

Day 4: Choosing Right Diagram Type

Software Ideas Modeler is a diagramming software which supports plenty of diagram types and standards. However, what diagram should be used in the given scenario? What diagram would be most useful for the specific task?

Day 3: Basic Diagramming Operations

If you want to create models and diagrams, you need to handle the basic diagramming operation - selecting elements, renaming them, mastering the work with the clipboard to copy and paste the elements. It is also good to know how to delete the diagram elements properly.

Day 2: Drawing Diagrams

The key activity in Software Ideas Modeler you would like to master is diagramming. This tutorial shows how to grasp basic concepts and how easy it is to create diagrams.

Day 1: First Steps with Software Ideas Modeler

This tutorial will show you how to start with Software Ideas Modeler, how to create a new project, save it and open the existing ones. It describes the main user interface layout and its components.

Navigate Other References

Elements may be used multiple times on diagrams. Multiple instances are also allowed on a single diagram. You may navigate the element references with a few clicks.

Show Element Details in a Diagram

Some elements have additional details which are not represented visually in diagrams. However, there is an element which allows you to display the hidden information. It is called Element Details.

Copy Style to Another Element

You may copy the style of an element to another element very easily.

How to Create Multi-Color Gradient Fill

The fill of an element does not have to be solid. You may use a gradient fill. Fill with two colors is used by default. However, you can add other colors to the gradient fill if you want. Software Ideas Modeler supports gradients with up to 10 colors.

Diagramming with Grid

If you want to make your diagrams aligned and sleek, you may try diagramming with the grid turned on.

5 Useful Selection Actions

Software Ideas Modeler offers several options how to work with the selection effectively.

Chart Types - Visualize Your Data Sets

Infographic diagrams can contain various data charts. They allow you to visualize your data sets. The individual charts have a lot of configuration options.

Split a Relationship with an Element

You may place a new element on a relationship. It will cause splitting the relationship into two parts which will be connected to the original start and end element on one side and to the new element on the other side.

Object as a Default Value (UML Diagramming)

Apart from literal values, you can set an instance as a default value of an attribute.

Set Enumeration Item as Default Value of Attribute

Enumeration items can be set as default values of attributes. After setting an enumeration item as a default value, it will be referenced - so if the item will be renamed, the changed name will be used for all references of the item.

Edit Visibility For Multiple Attributes/Operations

You do not need to change visibility of the class attributes (or operations) one by one. You may select multiple attributes (or operations) and then perform the desired action.

Turn SQL Script to Diagram

Using Smart Parser sidebar, you may easily convert SQL scripts to entity relationship diagrams.

Adding Attributes by Association Roles

If you have two classes connected by association you may want to add attributes representing the association roles. This tutorial shows how to do it in just a click.

Set Attribute Type Using Drag & Drop

There are many options how to set attribute type. You may type it, set it in the Properties dialog or drag another element from your project and set it as the type. The last option is described in this tutorial.

Software Ideas Server Management

Software Ideas Server Management is a tool for managing and setting the Software Ideas Server. Software Ideas Server provides online corporation features. The Management application allows you to set user accounts, browse and edit the repository, view logs, locks and messages.

Show or Hide Element Parts

The displayed element parts can be customized. You can show or hide various parts without changing the underlying model.

Insert Elements on Single Click

You can add several elements to your diagram very easily on single click.

Container Layout - Flow Layout

Flow layout arranges the nested elements into rows from left to right, the rows are placed from top to bottom.

Label Connectors

If it is uncertain which label belongs to which relationship you can utilize the label connectors in your diagram.

Software Ideas Server Setup

Server provides support for user cooperation, global repository and tasks.

Auto-Size of Diagram Element

A selected element can be resized automatically by double clicking on one of its grips. There is also a lot of auto-sizing options.

Navigating in Fields using Keys

When editing an element with fields (e.g. class) in a diagram you do not need to use mouse - the navigation between fields (e.g. attributes and operations) can be managed only using keys.

Remove All Field Styles

Each field (attribute, operation, etc.) can be styled to its own style - you can change its text color, background, border and other style attributes. However what to do if you want remove all these styles and restore the default unstyled appearance.

Container Layout - Stack Layout

There is several types of container layout which provides layout rules for nested element in a container.

Escape Key Usage

The escape key can be used in many ways in Software Ideas Modeler.

Element Snapping in User Interface Diagram

Some elements can be snapped automatically to borders of other elements. It is useful if you want to add a toolbar, scrollbar or menu to a window.

Add Related Elements to Another Diagram

Each element has its model which defines its properties and all its relationships with other elements in the project. If you reuse an element in another diagram you may want to add also other related elements. The easiest way is to use 'Add Related Elements' feature.

Include Label to Main Bounds

Labels of labeled elements can be freely moved around the element box. Relationships points to the main shape of element. If you want to change this default behaviour and include the label into the main bounds you can use the feature "Include Label to Main Bounds".

Quick Action Box

Quick Action Box helps with many things - it searches elements, diagrams, performs actions and opens files.

Adjusting Label Position

It is possible to move the label of a labeled element (element with a separate label) to any position you want but you can also choose from one of 4 predefined positions.

Identification of Existing Name

You can name several elements in your project with the same name but sometimes it may not be what you want. Software Ideas Modeler warns you if you use one name twice.

Shaping Operations

The shapes (without model) can be combined together in various ways.

Diagram Description

Diagram Description is a tabular element type which provides basic information about the diagram which it is placed in.

Ribbon or Classic Menu

Do you prefer the ribbon interface or the classic menu? Software Ideas Modeler offers both. And moreover, there's nothing easier than switching between them.

Insert Relationships Using Smart Connector

Smart connector makes adding relationships between diagram elements quick and easy.

Auto Set Types (Entity Relationship Diagram)

Auto Set Types feature helps to set types to attributes in E-R diagrams. If you have entities with untyped attributes you can try to use this automated feature and let the program figure out what could be the appropriate types.

New Diagram

There is several ways how to add a new diagram to a project.

UML Abstract Class - Using Abstract Modifier

An abstract class in UML is a class that cannot be instantiated. It contains abstract operations (operations without body) whose behavior is defined in subclasses. This tutorial shows you how to set abstract modifiers to classes, attributes and operations.


Using Glossary, you can define important terms which are used in the project. It can also contain abbreviations with their descriptions.

Database Reverse Engineering

It is often needed to edit an existing database, extend its design, add new tables, or edit the existing ones. Software Ideas Modeler offers a tool for importing a data model from the database.

Adjusting View - Panning and Zooming

Software Ideas Modeler offers several options how to adjust the current view on a diagram.

Custom Diagrams

If you need a special diagram type, which is not present in Software Ideas Modeler, you can create it using Custom Diagram feature.

Working with Tabs

Software Ideas Modeler offers many options how to work with tabs.

Profile Diagram (UML)

UML Profile Diagram describes and defines extensions to UML language. The extension mechanism allows you to adjust the language to a specific domain or platform. The extensions are defined via stereotypes.

Timing Diagram (UML)

UML timing diagram is focused mainly on time, it shows the changes of classifiers in time depicted on a timeline. The timelines are stacked vertically, the time increases from left to right.

Interaction Overview Diagram (UML)

UML Interaction Overview Diagram provides a high-level view on interactions in a system or a subsystem. It depicts the flow in similar way as an activity diagram, but instead of action nodes it uses other interaction diagrams and interaction references.

Composite Structure Diagram (UML)

A composite structure diagram shows the internal structure of a classifier, its parts and ports via which it communicates with the environment. It models collaborations where each element has its defined role.

Deployment Diagram (UML)

UML Deployment Diagram depicts deployment of artifacts on nodes. It is used for showing the placements of artifacts (software, system, module, etc.) on physical nodes (hardware, server, database, etc.) and the relationships between particular parts of the solution.

Component Diagram (UML)

A component diagram offers a view on a complex system. It depicts the interfaces provided and/or required by the parts of the system and the relationships between the parts. The parts are represented by components and other artifacts.

Package Diagram (UML)

A UML package diagram shows dependencies between the packages in the model. It depicts the structure and organization of project in the large scale.

Object Diagram (UML)

An object diagram is a structural UML diagram. It describes a system or its part at a specific time. It models instances, their values and relationships. It may be used to show examples of data structures.

State Machine Diagram (UML)

A state machine diagram describes states of en entity (device, process, program, software, module, etc.) and transitions between the states. Conditions specifies when a transition from a state to another state may be used.

Communication Diagram (UML)

A UML communication diagram shows interactions in the form of messages between objects and parts, which are represented by lifelines. Communication Diagram is a modified form of UML Sequence Diagram, but unlike it, its elements do not have to be ordered horizontally and may have any position in the diagram.

Activity Diagram (UML)

An activity diagram is a behavior diagram that shows a scenario using a flow of actions. It models a sequence of actions, decisions based on conditions, concurrent branches and various cycles.

Sequence Diagram (UML)

A sequence diagram models communication among objects in sequential order. It shows objects, classes, and actors involved in the scenario and exact order of messages. It consists of vertical lines which belong to lifelines and horizontal lines of messages.

Use Case Diagram (UML)

A use case diagram consists of use cases, actors and relationships among them. It presents a user interaction with the system, and defines the specifications of use cases.

Class Diagram (UML)

A class diagram is a static diagram that describes the structure of a system by showing its classes with their attributes and operations and the relationships among objects. This tutorial explains how you can draw UML class diagrams and what usage they have.


Sometimes you may want to focus only on some parts of your diagram and suppress everything else. Filters allows you to fulfill this task.

One Element in Multiple Diagrams

This tutorial shows how to use one element in multiple diagrams.

Source Code Template Editor

Source Code Template Editor is a tool, which allows you to easily create your own source code templates. Software Ideas Modeler can generate a source code based on diagrams and models by these templates.

Element Browser

Element Browser shows the list of all elements present in the project. It shows also the elements which are not used on any diagram.

How to Change Style

There are several options how to change the style of elements in a diagram.

Styling Options

Software Ideas Modeler offers rich styling options. You can adjust the appearance of the background, borders and fonts. Also some effects are available which can made your diagrams more shiny. Each element in the diagram can be styled with a custom style.

Diagram Bounds and Style

How to set diagram size and its background. Difference between diagram editor setting and diagram style.


If you want choose element, you want to work with, you have to select them. You can select one or more elements using Selection tool.

Drawing Paths

Relationships between elements can be depict using paths. Software Ideas Modeler offers many options how to draw paths and connect elements.

Drawing Shapes

There are multiple ways how to draw a new shape (element), so you can choose your favorite one.

How to Use Alt Fragment

Alt is very a frequently used operator of fragment. It divides the fragment into partitions and for each one defines a condition (guard) which must be true for the executed partition.

How to Create Asynchronous Message

Asynchronous messages allow the caller to continue processing. It doesn’t have to wait for a response. Asynchronous calls are used in multithreaded applications and in message-oriented middleware.

How to Work with Layers in Diagram

The elements can be organized in layers that can be moved, hidden or otherwise restricted.

Associated diagrams and relationships between their elements

This tutorial shows how to create associate diagrams and define the relationship between two elements, which are defined in two different diagrams.

Batch Export of Diagrams

The Batch Export helps you save many diagrams effectively. You just set how the output should look like once as well as the output directory. You may leave the rest to the software. This tutorial will show you how to set the batch export and utilize all its options.

How to import classes from .NET assemblies

This tutorial shows how to access and use reverse engineering.

How to style multiple elements with the same style

This tutorial shows how to apply the same style to multiple elements.

Tips and Tricks

Useful Features of Diagram Editor

The diagram editor offers useful features that can help you during the diagram creation, save you mouse clicks and allows you to create the diagrams faster.

Show Wireframe in Web Browser Container

You may design a wireframe of your web application in a diagram and reference it in another diagram using the Web Browser element. The Web Browser container will emphasize the target environment - it will be clear that your wireframe represents a web application or a web page.

Delete Container Without Nested Elements

Containers are elements which may contain other elements. By default, if you delete a container its nested elements will be deleted together with it. However, Software Ideas Modeler offers an option how to delete a container without its nested content.

Delete Element with Relationships

Elements are usually connected with other elements in diagram using relationships. If you know that you will not need an element nor its connectors to other elements, you may delete them together.

Object as a Default Value (UML Diagramming)

Apart from literal values, you can set an instance as a default value of an attribute.

Move all elements below/above some position up or down

There is a tool in Software Ideas Modeler which allows you to move all elements below/above some position up or down and also move all elements on the left or right from some position to left or right.

Place Use Cases Around an Actor

If there are many elements connected to an element, you may want to place them around this element. And why not in a circle?

Insert Multiple Elements of Same Kind to Diagram

Instruction how to create multiple elements at once.

How to Convert One Element to Another

Did you make a mistake or change your mind and want to change the type of an element in a diagram to another one? It's easy with this diagramming tool.

How to Change the Default Size of an Element

Do you want to know how to change the default size of a class or of any other element? This tip shows you how to do it.

Implement Interface

This tip show you how to easily implement an interface in a class.

How to Connect Multiple Elements with One Element

Software Ideas Modeler allows you easily to connect multiple elements with another element.