MerrimanInd / MerrimanInd/drawpyo

UML use case diagram implementation

Open
#114 0 comments 0 reactions 0 assignees View on GitHub
diagramType enhancement help wanted
Dominant language
Python
Stars
412
Forks
48
PR merge metrics
No merged PRs in 30d

Description

Automatically layout use case diagrams from structured input. This is **VERY** useful in solution architecture.

This issue involves all conceptional work, that is needed to find a practical input format.

**UML Use Case Diagrams**.

---

## 1. Actor Notation

* **Shape:** Stick figure
* **Placement:**
* Always **outside** the system boundary
* **Inheritance:**
* Solid line with **hollow triangle**
* Triangle points **to the parent actor**

---

## 2. Use Case Notation

* **Shape:** Oval (ellipse)
* **Placement:**
* Always **inside** the system boundary
* **Inheritance:**
* Solid line with **hollow triangle**
* Triangle points **to the parent use case**

---

## 3. System Boundary

* **Shape:** Rectangle
* **Contents:**
* Only use cases are allowed inside
* **Actors:**
* Never placed inside the boundary

---

## 4. Association (Actor ↔ Use Case)

* **Line type:** Solid line
* **Arrowhead:** None (by default)
* **Connection:**
* Actor ↔ Use Case only

---

## 5. «include» Relationship

* **Line type:** Dashed line
* **Arrowhead:** Open arrow
* **Direction:**
* From base use case → included use case
* **Label:**
* «include» (with guillemets)
* Placed near the line
* **Connection:**
* Use Case → Use Case only

---

## 6. «extend» Relationship

* **Line type:** Dashed line
* **Arrowhead:** Open arrow
* **Direction:**
* From extending use case → base use case
* **Label:**
* «extend»
* **Optional:**
* Extension point name in brackets (rarely shown)

---

## 7. Generalization (Inheritance)

Applies to **actors and use cases**.
* **Line type:** Solid line
* **Arrowhead:** Hollow triangle
* **Direction:**
* Child → Parent
* **Label:** None

---

## 8. Visual Legend (Quick Reference)

| Element | Shape | Line | Arrow |
| -------------- | ------------ | ------ | --------------- |
| Actor | Stick figure | — | — |
| Use Case | Oval | — | — |
| System | Rectangle | — | — |
| Association | — | Solid | None |
| «include» | — | Dashed | Open |
| «extend» | — | Dashed | Open |
| Generalization | — | Solid | Hollow triangle |

---

![image](https://github.com/user-attachments/assets/2eeb91a7-c5ef-4d21-b9af-36358df184d7)

Contributor guide

Open the contributing guide

Research direction

No file, test, or entry point is named. Start by reading the repository's existing diagram-generation APIs and UML-related support, then define a practical structured input format and verify that it can represent the listed actors, use cases, boundaries, and relationships.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.