International Journal of Advanced Research in Computer Science and Software Engineering (IJARCSSE)
Understanding the intricate relationships that exist between the source code components of a software system can be an arduous task. Frequently, this problem is exacerbated because the design documentation is out of date and the original system architect is no longer available for consultation. While modules do much to improve software development and maintenance, they are insufficient for supporting the design and ongoing maintenance of large systems. Such systems often contain several hundreds of thousands of lines of code that are packaged into a large number of cooperating modules. Fortunately, the authors often find that these systems are organized into identifiable clusters of modules, called subsystems that collaborate to achieve a higher-level system behavior.