# Object Diagram

![Object Diagram (from uml-diagrams.org)](https://content.gitbook.com/content/aNbtXAm2MUsbrMlAEZb1/blobs/l1TwEkVdeOLUt9H5f1Oj/Login%20Controller.png)

## Create Object Diagram

To create a Object Diagram:

1. Select first an element where a new Object Diagram to be contained as a child.
2. Select **Model | Add Diagram | Object Diagram** in Menu Bar or select **Add Diagram | Object Diagram** in Context Menu.

> **See also**
>
> [UML Object Diagram](http://www.uml-diagrams.org/class-diagrams-overview.html#object-diagram) - For more information about UML Object Diagram.

## Object

To create a Object:

1. Select **Object** in **Toolbox**.
2. Drag on the diagram as the size of Object.

You can use **QuickEdit** for Object by double-click or press `Enter` on a selected Object.

* **Name Expression** : Edit name expression.

  *Syntax of Name Expression*

  ```
  expression ::= [ '<<' stereotype `>>` ] [ visibility ] name
  stereotype ::= (identifier)
  visibility ::= '+' | '#' | '-' | '~'
  name ::= (identifier)
  ```
* **Visibility** : Change visibility property.
* **Add Note** : Add a linked note.
* **Add Constraint** : Add a constraint.
* **Add Slot** (`Ctrl+Enter`) : Add a slot.
* **Add Linked Object** : Add a linked object.

## Slot

To add an Slot:

1. Select an Instance.
2. Select **Model | Add | Slot** in Menu Bar or **Add | Slot** in Context Menu.

You can use **QuickEdit** for Slot by double-click or press `Enter` on a selected Slot.

* **Slot Expression** : Edit Slot expression.

  *Syntax of Slot Expression*

  ```
  slot ::= [ '<<' stereotype `>>` ] [ visibility ] name [':' type ] [ '=' value ]
  stereotype ::= (identifier)
  visibility ::= '+' | '#' | '-' | '~'
  name ::= (identifier)
  type ::= (identifier)
  value ::= (string)
  ```
* **Visibility** : Change visibility property.
* **Add** (`Ctrl+Enter`) : Add one more slot in the below.
* **Delete** (`Ctrl+Delete`) : Delete the slot
* **Move Up** (`Ctrl+Up`) : Move the slot up.
* **Move Down** (`Ctrl+Down`) : Move the slot down.

## Artifact Instance

To create a Artifact Instance:

1. Select **Artifact Instance** in **Toolbox**.
2. Drag on the diagram as the size of Artifact Instance.

You can use **QuickEdit** for Model Element (See [Model Element](https://docs.staruml.io/class-diagram#model-element)).

## Component Instance

To create a Component Instance:

1. Select **Component Instance** in **Toolbox**.
2. Drag on the diagram as the size of Component Instance.

You can use **QuickEdit** for Model Element (See [Model Element](https://docs.staruml.io/class-diagram#model-element)).

## Node Instance

To create a Node Instance:

1. Select **Node Instance** in **Toolbox**.
2. Drag on the diagram as the size of Node Instance.

You can use **QuickEdit** for Model Element (See [Model Element](https://docs.staruml.io/class-diagram#model-element)).

## Link

To create an Link (or Directed Link):

1. Select **Link** (or **Directed Link**) in **Toolbox**.
2. Drag from an instance and drop on another instance.

You can use **QuickEdit** for Relationship (See [Relationship](https://docs.staruml.io/class-diagram#relationship)).

You can also use **QuickEdit** for LinkEnd by double-click at the end side of an Link.

* **Name Expression** : Edit name expression.

  *Syntax of Name Expression*

  ```
  expression ::= [ '<<' stereotype `>>` ] [ visibility ] name
  stereotype ::= (identifier)
  visibility ::= '+' | '#' | '-' | '~'
  name ::= (identifier)
  ```
* **Visibility** : Change visibility property.
* **Navigability** : Change navigability property.
* **Aggregation Kind** : Change aggregationKind property.
* **Multiplicity** : Change multiplicity property.

## Link Object

To create a Link Object (instance of Association Class) by linking two Instances:

1. Select **Link Object** in **Toolbox**.
2. Drag from an element and drop on another element.
3. A Link Object is created between the instances.

To create a Link Object by linking Link and Object:

1. Select **Link Object** in **Toolbox**.
2. Drag from a Link (or Object) and drop on an Object (or Link).
3. The Object will be connected to the Link.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.staruml.io/working-with-uml-diagrams/object-diagram.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
