This tutorial will present a practical technique for managing the architecture of large software systems using Dependency Models. We will demonstrate that the matrix representation used by these models provides a unique view of the architecture and is highly scalable compared to the directed graph approaches that are common today. We will also show a variety of matrix algorithms that can be applied to analyze and organize the system into a form that reflects key architectural patterns and highlights problematic dependencies.