Using Cluster Analysis to Improve the Design of Component Interfaces