  The stakeholders of a system are legitimately interested in whether and how
its architecture reflects their respective concerns at each point of its
development and maintenance processes. Having such knowledge available at all
times would enable them to continually adjust their systems structure at each
juncture and reduce the buildup of technical debt that can be hard to reduce
once it has persisted over many iterations. Unfortunately, software systems
often lack reliable and current documentation about their architecture. In
order to remedy this situation, researchers have conceived a number of
architectural recovery methods, some of them concern-oriented. However, the
design choices forming the bases of most existing recovery methods make it so
none of them have a complete set of desirable qualities for the purpose stated
above. Tailoring a recovery to a system is either not possible or only through
iterative experiments with numeric parameters. Furthermore, limitations in
their scalability make it prohibitive to apply the existing techniques to large
systems. Finally, since several current recovery methods employ
non-deterministic sampling, their inconsistent results do not lend themselves
well to tracking a systems course over several versions, as needed by its
stakeholders. RELAX (RELiable Architecture EXtraction), a new concern-based
recovery method that uses text classification, addresses these issues
efficiently by (1) assembling the overall recovery result from smaller,
independent parts, (2) basing it on an algorithm with linear time complexity
and (3) being tailorable to the recovery of a single system or a sequence
thereof through the selection of meaningfully named, semantic topics. An
intuitive, informative architectural visualization rounds out RELAX's
contributions. RELAX is illustrated on a number of existing open-source systems
and compared to other recovery methods.
