@startuml frame "Entities" { [Entities] as E } frame "Interactors" { [Player Interactors] as IP [Developer Interactors] as ID [Functional Tests Interactors] as IF } E <-- IP E <-- ID E <-- IF frame "Controllers" { [Player Controllers] as CP [Developer Controllers] as CD [Functional Tests Controllers] as CF } IP <-- CP ID <-- CD IF <-- CF frame "Presenters" { [Player Presenters] as PP [Developer Presenters] as PD [Functional Tests Presenters] as PF } IP <-- PP ID <-- PD IF <-- PF frame "Persistence" { [Data Access] as DA [Data Storage] as DS } IP <-- DA ID <-- DA IF <-- DA DS <-- DA frame "Views" { [Player Views] as VP [Developer Views] as VD [Functional Tests Views] as VF } PP <-- VP PD <-- VD PF <-- VF frame "Main" { [Main] as M } note bottom of M Main uses all the components end note @enduml