Patent ID: 8018471

Claim:
A method for merging components comprising the steps of: using a processing unit coupled to a memory, receiving input from a user to add a plurality of components to a design surface; using the processing unit, programmatically analyzing the components to determine if at least one set of the components can be merged, analyzing the components comprising: calculating a quantity of paths into each component; calculating a quantity of paths coming out of each component; generating a list of incoming paths into each component; generating a list of paths coming out of each component; obtaining an actual clause or other value of each component; using the calculated quantity of paths into each component, calculated quantity of paths out of each component, generated list of incoming paths into each component, generated list of paths coming out of each component and obtained actual clause of other value of each component, traversing each of a plurality of paths into the components simultaneously to determine if a same component exists on a different path at a same level; if the analysis reveals that the at least one set of components can be merged, then merging the at least one set of components to reduce a number of components present on the design surface; and providing an undo feature to allow the user to undo the merging of the at least one set of components.