Untitled

 avatar
unknown
plain_text
a month ago
1.4 kB
1
Indexable
import matplotlib.pyplot as plt
import networkx as nx

# Create a new directed graph
G = nx.DiGraph()

# Adding Admin and User as nodes
G.add_node("Admin", pos=(0, 1), role="Actor")
G.add_node("User", pos=(0, -1), role="Actor")

# Adding use cases as nodes for Admin
admin_use_cases = [
    "Train System",
    "Manage User Data",
    "Configure Settings",
    "Monitor System Performance"
]

# Adding use cases as nodes for User
user_use_cases = [
    "Provide Speech Input",
    "Receive Transcriptions",
    "Customize Speech Recognition Model"
]

# Add the use cases to the graph
for use_case in admin_use_cases:
    G.add_node(use_case, pos=(2, 1 - admin_use_cases.index(use_case) * 0.5), role="Use Case")

for use_case in user_use_cases:
    G.add_node(use_case, pos=(2, -1 - user_use_cases.index(use_case) * 0.5), role="Use Case")

# Adding edges between actors and use cases
for use_case in admin_use_cases:
    G.add_edge("Admin", use_case)

for use_case in user_use_cases:
    G.add_edge("User", use_case)

# Draw the diagram with positions set based on 'pos' values
pos = nx.get_node_attributes(G, 'pos')
plt.figure(figsize=(8, 6))
nx.draw(G, pos, with_labels=True, node_size=3000, node_color="lightblue", font_size=10, font_weight="bold", edge_color="gray")
plt.title("Use Case Diagram: Admin and User Privileges")
plt.axis('off')  # Hide axes for better presentation
plt.show()
Editor is loading...
Leave a Comment