One of the things you do when you design software is draw UML diagrams.