1. A method of determining node similarity for component substitution, the method carried out by program code stored on non-transient computer-readable medium and executed by a processor, the method comprising: estimating a normalized similarity metric between the plurality of nodes in the system tree and nodes in other trees; assigning a similarity score to each compared node using at least one of: domain based rules, attribute based similarity metrics, and machine learning; and combining results for cluster analysis.