"Software-related objects are usually represented as groups of text files in a variety of languages, both informal and formal. The links in this network [...] are largely informal and implicit [...]. The programmer typically analyzes and modifies these objects using file-based tools - text editors, string searches, etc. Hence, software testers must map their conceptual universe, a complex network of structured objects, onto a hierarchical file system and use file-based utilities to pursue the conceptual links. The structure mismatch between the conceptual model and the file representation makes it extremely time-consuming to answer even simple questions like "who last modified this function" or "where are the test cases for this program". Overall, the problems are similar to what would be encountered trying to use a bitmap editor like MacPaint as a CAD tool - an array of bits holds all the information, but the information cannot readily be extracted by automated tools." Kotik et. al. in "Automating software analysis and testing using a program transformation system", 1989