Die Vielfalt der für gewöhnlich visualisierten Artefakte, die verschiedenen Abstraktionsgrade dieser Artefakte und die unterschiedlichen Benutzer lassen die Frage aufkommen, wie geeignete Wege zur Visualisierung gefunden werden können. Neben der Vielzahl der Artefakte sind vor allem der Umfang und die Dimensionalität des von ihnen aufgespannten Informationsraumes zu beachten.
Die Zerlegung des Softwaresystems in Subsysteme, Verzeichnisstrukturen, Module, Schnittstellen und sogar einzelne Befehle und Ausdrücke (in abstrakten Syntax-bäumen) kann visualisiert werden, wobei angenommen werden sollte, dass die abstrakten Syntaxbäume nur für interne Debugging-Zwecke visualisiert werden und die Endanwender stattdessen die Darstellung des Quellcodes bevorzugen. Informationen über den Kontrollfluss innerhalb des Systems werden durch Aufrufgraphen und prozedurale Kontrollflussgraphen visualisiert. In Bezug auf den Datenfluss werden variable Referenzen, Nebeneffekte und def-use-Abhängigkeiten dargestellt. Klassen- und Objektmodelle können mit verschiedenen Werkzeugen visualisiert werden, inklusive der Vielzahl unterschiedlicher Beziehungen zwischen Klassen und Objekten, wie z.B. Vererbung, Aufrufen usw. Gleichermaßen stellen Module (vergleichbar mit den Klassen in der prozeduralen Welt) und ihre Abhängigkeiten wichtige, zu visualisierende Artefakte dar. Des weiteren kann das Verhalten eines Softwaresystems unter anderem durch Zustandsgraphen und Collaborations Diagrams repräsentiert werden.
Die am häufigsten visualisierten Artefakte sind jene aus der mittleren Ebene, z.B. Artefakte zwischen der konzeptionellen Architektur und dem Quellcode (Aufrufgraphen, Modulabhängigkeiten, Vererbungsgraphen, Klassendiagramme usw.).