To aid software analysis and maintenance tasks, a number of software clustering algorithms have been proposed to automatically partition a software system into meaningful subsyste...
Reusing software components (e.g. classes or modules) improves software quality and developer’s productivity. Unfortunately, developers may miss many reusing opportunities since...
We have developed software tools that aim to support the cooperative software engineering tasks and promote an awareness of social dependencies that is essential to successful coo...
As software systems continue to grow and evolve, locating code for maintenance and reuse tasks becomes increasingly difficult. Existing static code search techniques using natura...
Agile development methodologies have been gaining acceptance in the mainstream software development community. While there are numerous studies of Agile development in academic an...