@startuml class SpaceObject { x y radius color update() draw() } class Star { name planets add_planet() set_position() update() draw() } class Planet { star orbit_number orbit_radius angle speed direction calculate_position() update() draw_orbit() draw() } class SolarSystem { stars show_orbits paused create_system() resize() update() draw() toggle_pause() toggle_orbits() } class SolarApp { system handle_events() draw_panel() run() } SpaceObject <|-- Star SpaceObject <|-- Planet Star "1" o-- "many" Planet SolarSystem "1" o-- "2" Star SolarApp --> SolarSystem @enduml