digraph SystemModel { rankdir=LR; peripheries=0; /* users */ { node [image="stickman.png", labelloc="b", shape="none"]; player[label="Player"]; host[label="Host"]; spectator[label="Spectator"]; } /* subsystems */ /* if you want to rename any of these, it is probably easiest * to leave the ID the same, and just change the label */ subgraph clusterSystem { label = "System Boundry"; style = filled; node [style=solid]; peerReview[label="Peer Review"]; performance[label="Performance"]; standings[label="Standings"]; gs[label="Game Score"]; search[label="Search"]; pm[label="Private Message"]; alerts[label="Alerts"]; pairings[label="Pairings"]; details[label="Tournament Details"]; backup[label="Backup"]; registration[label="Registration"]; } /* all the relationships */ spectator -> search; standings -> spectator; alerts -> spectator; pairings -> spectator; player -> spectator [arrowhead="onormal"]; player -> peerReview; player -> performance; player -> registration; player -> pm; pm -> player; host->spectator [arrowhead="onormal"]; host->alerts; host->details; host->registration; host -> pm; pm -> host; peerReview -> standings; performance-> standings; gs -> performance; details -> backup; details -> pairings; registration -> pairings; }