@article {ZaidmanJSME2008, title = {Automatic Identification of Key Classes in a Software System Using Webmining Techniques}, journal = {International Journal on Software Maintenance: Research and Practice}, volume = {20}, number = {6}, year = {2008}, note = {[SCI impact factor 0.457, ranked 60 / 79]}, pages = {387-417}, publisher = {John Wiley \& Sons}, abstract = {Software engineers new to a project are often stuck sorting through hundreds of classes in order to find those few classes that offer a significant insight into the inner workings of the software project. To help stimulate this process, we propose a technique which can identify the most important classes in a system, or the key classes of that system. Software engineers can use these classes to focus their understanding efforts when starting to work on a new software project. Those \emph{key classes} are typically characterized with having a lot of {\textquoteleft}{\textquoteleft}control{\textquoteright}{\textquoteright} within the application. In order to find these controlling classes, we present a detection approach that is based on dynamic coupling and webmining. We demonstrate the potential of our technique using two open source software systems, which have a rich documentation set. During the case studies we use dynamically gathered coupling information and vary between a number of coupling metrics. The case studies show that we are able to retrieve 90\% of the classes deemed important by the orginal maintainers of the systems, while maintaining a level of precision of around 50\%.}, doi = {http://dx.doi.org/10.1002/smr.370}, author = {Andy Zaidman and Serge Demeyer} }