A software tool for optimal class-hierarchy design based on the use-relationship among functions and variables