metrosim/docs/architecture/simulator/pre-day_model_component.puml

39 lines
1.8 KiB
Plaintext

@startuml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml
Container(manager, "Manager", "Python", "Converts input data to Python models, initializes variables, runs the main loop")
ContainerQueue(events, "Events", "Python", "Decisions taken by agents (e.g., departure from origin, boarding and alighting, turn at intersections)")
Person(contributor, "Contributor", "Developer improving or extending MetroSim")
ContainerDb(network_conditions, "Predicted Network Conditions", "Python", "Predicted values for relevant network conditions (e.g., travel time by car, vehicle occupancy)")
Container_Boundary(preday_model, "Pre-Day Model") {
Component(mode_choice, "Route Choice", "Python", "Computes chosen route and associated departure time")
Component(route_evaluation, "Route Evaluation", "Python", "Computes the chosen departure time for a given route and associated utility")
Component(car, "Car", "Python", "Defines how utility of car routes is computed")
Component(public_transit, "Public Transit", "Python", "Defines how utility of public-transit routes is computed")
Component(generic_mode, "Generic Mode", "Python", "Defines how utility of a given mode is computed")
}
Rel(manager, mode_choice, "Calls")
Rel(mode_choice, events, "Writes")
Rel(contributor, generic_mode, "Develops")
Rel(mode_choice, route_evaluation, "Requests utility and departure time")
Rel(route_evaluation, car, "Requests utility")
Rel(route_evaluation, public_transit, "Requests utility")
Rel(route_evaluation, generic_mode, "Requests utility")
Rel(car, network_conditions, "Reads")
Rel(public_transit, network_conditions, "Reads")
Rel(generic_mode, network_conditions, "Reads")
SHOW_DYNAMIC_LEGEND()
@enduml