This document discusses reverse architecting software by extracting relationships from source code using relation algebra. It describes extracting relations from code without compiling or linking, storing them in a database, and applying relation algebra operations like join and inverse to abstract the relations. The abstracted relations can then be visualized as graphs or tables to understand aspects of the software architecture like inter-task communication and message queue usage. Reverse architecting is challenging but relation algebra can help reformulate many analysis questions and filter irrelevant data to meet analysis goals.
Related topics: