Um Diskussionen über die Struktur, das Verhalten und spezielle Probleme eines komplexen Softwaresystems führen zu können, muss die Architektur des Systems sichtbar und verständlich dokumentiert werden.
Häufig werden Probleme oder Lösungsalternativen erst offenbar, wenn das System unter Verwendung einer entsprechenden Notation (z.B. UML) beschrieben wird und alle Beteiligten anhand konkreter Darstellungen argumentieren können.