Language Independent Software Architecture Recovery ๐Ÿ—“

— Recover and RELAX: Concern-Oriented Software Architecture Recovery


IEEE OC Computer Society
Meeting Date: April 22, 2019
Time: 6:15 PM Networking & Food; 7:00 PM Presentation
Speaker: Daniel Link
Location: Knobbe Martens’ Irvine offices
Cost: (not free) Subway sandwiches, Chips and Soda.
RSVP: requested, through website
Event Details: IEEE vTools

Summary: A more complete title for this talk would be “Recover and RELAX: Concern-Oriented Software Architecture Recovery for Systems Development and Maintenance”, but while correct, it is too long.

The stakeholders of a system are interested in how its architecture reflects their concerns at each point of its life-cycle. Having such knowledge available at all times would enable them to continually adjust their systemsโ€™ structure and reduce the buildup of technical debt. In the usual case, this (actual) architecture is unavailable: architecture recovery provides a way to recover an architectural view of the system. Many different methods and tools exist to provide such a view.

This talk will touch on the architectural recovery methods proposed by researchers but focus on concern-oriented approaches. The design choices forming the bases of most existing recovery methods mean that none of them have a complete set of desirable qualities for the purposes of development/enhancement or maintenance. 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.

After looking at a few case studies of common methods, we introduce RELAX (RELiable Architecture EXtraction), our 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. A tool demo will be part of the presentation.

Bio: Daniel Link
After six years in industry, Daniel Link became a Ph.D Student at the USC Viterbi Computer Science Department and a Research Assistant at the USC Center for Systems and Software Engineering (CSSE). His research interests and publications cover Software Architecture Recovery and Cost Estimation as well as related tools. His six years of industry experience included working for popular media production companies and other areas.