  To facilitate understanding the architecture of a software system, we
developed SArF Map technique that visualizes software architecture from feature
and layer viewpoints using a city metaphor. SArF Map visualizes implicit
software features using our previous study, SArF dependency-based software
clustering algorithm. Since features are high-level abstraction units of
software, a generated map can be directly used for high-level decision making
such as reuse and also for communications between developers and non-developer
stakeholders. In SArF Map, each feature is visualized as a city block, and
classes in the feature are laid out as buildings reflecting their software
layer. Relevance between features is represented as streets. Dependency links
are visualized lucidly. Through open source and industrial case studies, we
show that the architecture of the target systems can be easily overviewed and
that the quality of their packaging designs can be quickly assessed.
