Abstract
This paper proposes the use of Interactive Genetic Algorithms (IGAs) to integrate developer’s knowledge in a re-modularization task. Specifically, the proposed algorithm uses a fitness composed of automatically-evaluated factors—accounting for the modularization quality achieved by the solution—and a human-evaluated factor, penalizing cases where the way re-modularization places components into modules is considered meaningless by the developer.
The proposed approach has been evaluated to re-modularize two software systems, SMOS and GESA. The obtained results indicate that IGA is able to produce solutions that, from a developer’s perspective, are more meaningful than those generated using the full-automated GA. While keeping feedback into account, the approach does not sacrifice the modularization quality, and may work requiring a very limited set of feedback only, thus allowing its application also for large systems without requiring a substantial human effort.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Anquetil, N., Lethbridge, T.: Experiments with clustering as a software remodularization method. In: WCRE, pp. 235–255 (1999)
Bavota, G., De Lucia, A., Marcus, A., Oliveto, R.: Software re-modularization based on structural and semantic metrics. In: WCRE, pp. 195–204 (2010)
Coello Coello, C.A.: Theoretical and numerical constraint-handling techniques used with evolutionary algorithms: A survey of the state of the art. Computer Methods in Applied Mechanics and Engineering 191(11-12) (2002)
Conover, W.J.: Practical Nonparametric Statistics, 3rd edn. Wiley (1998)
Deb, K.: Multi-Objective Optimization Using Evolutionary Algorithms. Wiley (2001)
Di Penta, M., Neteler, M., Antoniol, G., Merlo, E.: A language-independent software renovation framework. JSS 77(3), 225–240 (2005)
Doval, D., Mancoridis, S., Mitchell, B.S.: Automatic clustering of software systems using a genetic algorithm. In: STEP, pp. 73–82 (1999)
Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional (1999)
Grissom, R.J., Kim, J.J.: Effect sizes for research: A broad practical approach, 2nd edn. Lawrence Earlbaum Associates (2005)
Mancoridis, S., Mitchell, B.S., Rorres, C., Chen, Y.F., Gansner, E.R.: Using automatic clustering to produce high-level system organizations of source code. In: IWPC, pp. 45–53 (1998)
Maqbool, O., Babri, H.A.: Hierarchical clustering for software architecture recovery. IEEE TSE 33(11), 759–780 (2007)
Mitchell, B.S.: A Heuristic Search Approach to Solving the Software Clustering Problem. Ph.D. thesis, Drexel University, Philadelphia (2002)
Mitchell, B.S., Mancoridis, S.: On the automatic modularization of software systems using the bunch tool. IEEE TSE 32(3), 193–208 (2006)
Praditwong, K., Harman, M., Yao, X.: Software module clustering as a multi-objective search problem. IEEE TSE 37(2), 264–282 (2011)
Siff, M., Reps, T.W.: Identifying modules via concept analysis. IEEE TSE 25(6), 749–768 (1999)
Simons, C.L., Parmee, I.C., Gwynllyw, R.: Interactive, Evolutionary Search in Upstream Object-Oriented Class Design. IEEE TSE 36(6), 798–816 (2010)
Takagi, H.: Interactive evolutionary computation: Fusion of the capacities of EC optimization and human evaluation. Proceedings of the IEEE 89(9), 1275–1296 (2001)
Tonella, P., Susi, A., Palma, F.: Using interactive GA for requirements prioritization. In: SSBSE, pp. 57–66 (2010)
Wen, Z., Tzerpos, V.: An effectiveness measure for software clustering algorithms. In: IWPC, pp. 194–203 (2004)
Wiggerts, T.A.: Using clustering algorithms in legacy systems re-modularization. In: WCRE, p. 33. IEEE Computer Society (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bavota, G., Carnevale, F., De Lucia, A., Di Penta, M., Oliveto, R. (2012). Putting the Developer in-the-Loop: An Interactive GA for Software Re-modularization. In: Fraser, G., Teixeira de Souza, J. (eds) Search Based Software Engineering. SSBSE 2012. Lecture Notes in Computer Science, vol 7515. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-33119-0_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-33119-0_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-33118-3
Online ISBN: 978-3-642-33119-0
eBook Packages: Computer ScienceComputer Science (R0)