ConcurrenteCasoPracticoTema2 / malacatonesUmbrella

0 stars 0 forks source link

Diagramas de la base de datos #7

Open HugoSanchezGallego opened 1 week ago

HugoSanchezGallego commented 1 week ago

image

@startuml entity "Programa" { +INTEGER id +TEXT nombre }

entity "SplashScreen" { +INTEGER id +TEXT estado +INTEGER programa_id }

entity "CSVLoader" { +INTEGER id +TEXT archivo +INTEGER programa_id +void cargarDatos() }

entity "Menu" { +INTEGER id +TEXT opciones +INTEGER programa_id }

entity "Graph" { +INTEGER id +TEXT tipo_grafico +INTEGER menu_id +void aplicarFiltro(TipoFiltro) }

entity "Data" { +INTEGER id +TEXT contenido +INTEGER graph_id }

entity "ExecutorServiceManager" { +INTEGER id +TEXT estado +INTEGER programa_id +void ejecutarConcurrencia() }

entity "DataProcessor" { +INTEGER id +TEXT estado +INTEGER executor_service_manager_id }

entity "SyncManager" { +INTEGER id +TEXT estado +INTEGER data_processor_id }

entity "CountDownLatch" { +INTEGER id +INTEGER cuenta +INTEGER sync_manager_id }

entity "CyclicBarrier" { +INTEGER id +INTEGER cuenta +INTEGER sync_manager_id }

entity "DatabaseService" { +INTEGER id +TEXT estado +INTEGER programa_id +void insertarDatosConcurrentes(datos) }

entity "Usuario" { +INTEGER id +TEXT nombre +TEXT contrasena }

entity "Autenticacion" { +void autenticar() +void crearUsuario() }

entity "Dataset" { +INTEGER rank +TEXT country +INTEGER IQ +FLOAT education_expenditure +FLOAT avg_income +FLOAT avg_temp }

Programa ||--o{ SplashScreen : "pertenece a" Programa ||--o{ CSVLoader : "pertenece a" Programa ||--o{ Menu : "pertenece a" Programa ||--o{ ExecutorServiceManager : "gestiona" Programa ||--o{ DatabaseService : "gestiona"

Menu ||--o{ Graph : "genera"

Graph ||--o{ Data : "contiene"

ExecutorServiceManager ||--o{ DataProcessor : "procesa" DataProcessor ||--o{ SyncManager : "sincroniza" SyncManager ||--o{ CountDownLatch : "usa" SyncManager ||--o{ CyclicBarrier : "usa"

CSVLoader ||--o{ Dataset : "carga"

CSVLoader --|> CountDownLatch : "libera latch cuando finaliza" SplashScreen --|> CountDownLatch : "espera a latch" SplashScreen --> Menu : "ocultar splash cuando CSV termina" DatabaseService --|> ExecutorServiceManager : "ejecuta inserción concurrente" CSVLoader --|> ExecutorServiceManager : "ejecuta en paralelo"

Usuario --|> Autenticacion : "delegar autenticación" Autenticacion --|> Menu : "mostrar menu tras autenticación" Autenticacion --> ExecutorServiceManager : "ejecuta autenticación en paralelo" Usuario --> DatabaseService : "gestiona base de datos de usuarios"

@enduml

HugoSanchezGallego commented 1 week ago

image

@startuml !define RECTANGLE entity skinparam linetype ortho skinparam directionTopDownStrategy vertical_center

RECTANGLE Programa { +INTEGER id +TEXT nombre }

RECTANGLE SplashScreen { +INTEGER id +TEXT estado +INTEGER programa_id }

RECTANGLE CSVLoader { +INTEGER id +TEXT archivo +INTEGER programa_id +void cargarDatos() }

RECTANGLE Menu { +INTEGER id +TEXT opciones +INTEGER programa_id }

RECTANGLE Graph { +INTEGER id +TEXT tipo_grafico +INTEGER menu_id +void aplicarFiltro(TipoFiltro) }

RECTANGLE Data { +INTEGER id +TEXT contenido +INTEGER graph_id }

RECTANGLE ExecutorServiceManager { +INTEGER id +TEXT estado +INTEGER programa_id +void ejecutarConcurrencia() }

RECTANGLE DataProcessor { +INTEGER id +TEXT estado +INTEGER executor_service_manager_id }

RECTANGLE SyncManager { +INTEGER id +TEXT estado +INTEGER data_processor_id }

RECTANGLE CountDownLatch { +INTEGER id +INTEGER cuenta +INTEGER sync_manager_id }

RECTANGLE CyclicBarrier { +INTEGER id +INTEGER cuenta +INTEGER sync_manager_id }

RECTANGLE DatabaseService { +INTEGER id +TEXT estado +INTEGER programa_id +void insertarDatosConcurrentes(datos) }

RECTANGLE Usuario { +INTEGER id +TEXT nombre +TEXT contrasena }

RECTANGLE Autenticacion { +void autenticar() +void crearUsuario() }

RECTANGLE Dataset { +INTEGER rank +TEXT country +INTEGER IQ +FLOAT education_expenditure +FLOAT avg_income +FLOAT avg_temp }

Programa --> SplashScreen : "pertenece a" Programa --> CSVLoader : "pertenece a" Programa --> Menu : "pertenece a" Programa --> ExecutorServiceManager : "gestiona" Programa --> DatabaseService : "gestiona"

Menu --> Graph : "genera" Graph --> Data : "contiene"

ExecutorServiceManager --> DataProcessor : "procesa" DataProcessor --> SyncManager : "sincroniza" SyncManager --> CountDownLatch : "usa" SyncManager --> CyclicBarrier : "usa"

CSVLoader --> Dataset : "carga" CSVLoader --> CountDownLatch : "libera latch" SplashScreen --> CountDownLatch : "espera latch" SplashScreen --> Menu : "ocultar splash" DatabaseService --> ExecutorServiceManager : "inserta concurrentemente"

Usuario --> Autenticacion : "delegar autenticación" Autenticacion --> Menu : "mostrar menu" Autenticacion --> ExecutorServiceManager : "ejecuta autenticación" Usuario --> DatabaseService : "gestiona usuarios"

left to right direction Programa -[hidden]-> SplashScreen CSVLoader -[hidden]-> Dataset ExecutorServiceManager -[hidden]-> DataProcessor

@enduml