An important system design task is the partitioning of system functionality for implementation among multiple system components, including partitions among hardware and software components. We present a set of closeness metrics to aid such partitioning. These metrics can be used by a designer or by automated algorithms, to cluster together functional objects that should be implemented on the same component. We summarize experiments for determining the best combination of metrics for particular uses, and we demonstrate the advantages of clustering with the closeness metrics before applying hardware or hardware/software partitioning.
Frank Vahid, Daniel D. Gajski