Drawing UML with PlantUML Language Reference Guide (Version 8023) PlantUML is an Open Source project that allows to quickly write:. Sequence diagram,. Usecase diagram,. Class diagram,. Activity diagram,. Component diagram,. State diagram,. Object diagram. Diagrams are deﬁned using a simple and intuitive language. A unified modeling language (UML) diagram depicts a system and how users or other systems interact with yours—a system could be a website, an app, or maybe a business process. Create a class diagram online to navigate source code, plan new features, and demonstrate the. A short introduction to creating UML diagrams with Gliffy and a bit on formatting.Skip to end of metadataGo to start of metadata
- Since the Confluence Cloud's new editing interface, the DotUML plug-in does not work as expected. Sequence: Open a page with a diagram, Access the edition, From the edit page, go to the DotUML plug-in, edit the UML diagram and save it, Problem, the edit page is not updated and shows previous content, Publish, The published page is correct.
- Creately for Confluence. Over 40 diagram types. From Flowcharts, Wireframes, Mind-maps, UML, Database diagrams, Sitemaps to Org Charts. Powerful, diagram type specific features, enabling faster drawing. Beautiful templating and color matching. Inline diagram comments allowing contextual discussions. Fully hosted inside Confluence.
This page summarizes the most widely used UML diagrams and shows examples. Gliffy plugin allows to draw UML diagrams within Confluence.
Use case diagram shows all the different ways how the system can interact with the users, organizations and external systems. All the actors (including external systems) are depicted as stick man figures. All the interactions are depicted as ovals.
Use case diagram shows very high-level interactions, without going into details. It can be used as a visualization that supplements a description in text or oral presentation.
Example use case diagram of an online web-based game:
UML Activity diagram describes steps, sequence and possible decisions within a process in the system. Activity diagram can be used to describe one use case in more detail. Different levels of detail can be used in the diagram. Typically, it is not goind down to specific objects and methods in the source code. For this purpose, sequence diagrams can be used.
The following examples show activities within the 'Authorize' use case and 'Build new units on the terrain' use case.
Activity diagram for authorization
Activity diagram for gameplay: building placement
Here is a bit more advanced activity diagram. Note: the black thick blocks describe synchronization places, where execution is split into several parallel execution contexts (several arrows come out of a black box), and then synchronized again: execution continues only when all threads have finished their work (several arrows come in to a black box and only a single arrow goes out).
Sequence diagram's purpose is similar to activity diagram: to show the sequence of steps within a process. Delco battery. However, sequence diagram puts more emphasis on two things:
- Which object (or component) is implementing each step?
- How are object interacting?
- What is the lifecycle of the actions within the process? I.e., when object A calls a method of object B, what are all the things that happen (B may call other methods of other objects) before A gets the response?
Example sequence diagram showing the same login procedure, yet two objects are identified here: login form and authorization server:
Class diagram shows the structure of the system - how the blocks fit together, what relationships and dependencies they have, and what are the number of objects. It is also important to represent the type of relationship between objects. There are several relationship types in UML class diagrams, the most important of them being:
- Inheritance/realization - a child class inherits everything from a base class. Arrow goes from the child to the parent. Realization is inheritance relationship, but instead of a base class the arrow goes to a parent interface which the child class is implementing.
- Aggregation/composition - shows that a container class contains several elements 'inside it'. Example: a car contains wheels, doors, front window, etc. The container class is denoted by a diamond and arrows go to the contained element classes, typically cardinality (count of) is assigned to the contained elements, because it many be important whether the container has one, two or many of the objects. The difference between composition and aggregation is merely the question if interdependence. If the container object can not survive without the container, the relationship is called composition. I.e., the container is composed of small parts, but the parts don't make sense alone. Example: a house contains rooms, but rooms don't exist if the house is destroyed. If the parts can exist without the container, the relationship is called association. Example: while a school could contain students, the students exist even if the school is closed down (perhaps as persons, not really as students, because all the university-related information, such as student ID, does not make sense anymore).
- Dependency - denoted by an arrow going from a class A to class B if class A needs class B, i.e., class A is calling methods from class B. An example: a graphical interface class that is calling methods from a business logic class - it depends on the business logic. If you remember good design principles, then the opposite relationship (business logic depends on GUI) is a sign of bad design.
Sometimes you see a more broader type of relationship called 'association', which basically means that 'two classes are somehow related, without specifying how exactly'. It is not recommended to use association, use the more detailed type of relationship instead.
It can be difficult to draw a class diagram for some project types:
- Some tools (such as game engines) have a vague boundary between classes, objects, components, modules, entities and other types of units used to build the system.
You may wonder - what do I represent in the class diagram? Here are some principles you can follow:
Uml Sequence Diagram Loop
- The purpose of class diagram is not to identify all the classes in the project (except for some small toy projects), ti would create so many boxes that you would get confusion rather than clarity. The purpose of class diagrams is to let the developer get a quick overview of the system.
- You should ask a question: what should my class diagram show? Which part of the overall system should I represent?
- It is quite common to create many smaller class diagrams (perhaps with hyperlinking between them, if the tools allow it) instead of one huge.
- In larger projects you probably don't need to show all the fields of a class, instead just show the classes (boxes with class names) and their relationships.
- Try to identify the important units in your project and show them as classes. For example, in Unity 3D game projects it makes perhaps more sense to display GameObjects as classes.
- Remember to include the cardinality in the diagram - if two classes are related, what is the cardinality of the relationship? 1-to-1, 1-to-many or many-to-many?
- If you have a class (such as GameObject in Unity or Node in Godot) which is a base class for many classes, think of some smart ways to showing that, don't draw arrows from the base class to every other class in the project, it will make a big mess.
Here are example class diagrams showing an imaginary game. It should be self-explanatory. If you don't recognize the different array types, see this article for more detail on relationship types.
Deployment diagram shows which system components are deployed where and how they are connected. Arrows show dependencies. If an arrow goes from component A to component B, it means that component A depends on B. I.e., if B would be deleted, A would stop working.
There is no one rule-of-thumb for UML diagrams, but a common approahc would be:
- Draw high-level use case diagrams to identify how users will interact with the system.
- Identify necessary hardware components and software services, draw a deployment diagram.
- Break down each use case into an activity diagrams or high-level sequence diagrams.
- Design the source code structure, identify classes using class diagrams.
- Identify interaction between objects (classes), using more detailed sequence diagrams.
No page content or personally identifiable end-user information is transported between the Confluence Cloud servers and the Sequence Diagrams for Confluence servers.
When a page containing the Sequence Diagrams for Confluence macro is rendered, Confluence sends a HTTPS request to the app servers. This request contains only a JSON Web Token (JWT) that identifies 'context' information including:
Sequence Uml Diagram
- The Confluence Cloud instance making the request
- The ID and version of the Confluence page
- The ID of the macro within the Confluence page
This context information is not stored, logged or used for any other purpose than what this app requires.
Uml Sequence Diagram Tutorial
Neither the app provider or any other party is able to view any content of your Confluence pages or users.
Confluence Uml Sequence Diagram Examples
Effective as of May 18, 2016.