Skip to main content

Putting the Developer in-the-Loop: An Interactive GA for Software Re-modularization

  • Conference paper
Book cover Search Based Software Engineering (SSBSE 2012)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7515))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Anquetil, N., Lethbridge, T.: Experiments with clustering as a software remodularization method. In: WCRE, pp. 235–255 (1999)

    Google Scholar 

  2. Bavota, G., De Lucia, A., Marcus, A., Oliveto, R.: Software re-modularization based on structural and semantic metrics. In: WCRE, pp. 195–204 (2010)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. Conover, W.J.: Practical Nonparametric Statistics, 3rd edn. Wiley (1998)

    Google Scholar 

  5. Deb, K.: Multi-Objective Optimization Using Evolutionary Algorithms. Wiley (2001)

    Google Scholar 

  6. Di Penta, M., Neteler, M., Antoniol, G., Merlo, E.: A language-independent software renovation framework. JSS 77(3), 225–240 (2005)

    Google Scholar 

  7. Doval, D., Mancoridis, S., Mitchell, B.S.: Automatic clustering of software systems using a genetic algorithm. In: STEP, pp. 73–82 (1999)

    Google Scholar 

  8. Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional (1999)

    Google Scholar 

  9. Grissom, R.J., Kim, J.J.: Effect sizes for research: A broad practical approach, 2nd edn. Lawrence Earlbaum Associates (2005)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. Maqbool, O., Babri, H.A.: Hierarchical clustering for software architecture recovery. IEEE TSE 33(11), 759–780 (2007)

    Google Scholar 

  12. Mitchell, B.S.: A Heuristic Search Approach to Solving the Software Clustering Problem. Ph.D. thesis, Drexel University, Philadelphia (2002)

    Google Scholar 

  13. Mitchell, B.S., Mancoridis, S.: On the automatic modularization of software systems using the bunch tool. IEEE TSE 32(3), 193–208 (2006)

    Google Scholar 

  14. Praditwong, K., Harman, M., Yao, X.: Software module clustering as a multi-objective search problem. IEEE TSE 37(2), 264–282 (2011)

    Google Scholar 

  15. Siff, M., Reps, T.W.: Identifying modules via concept analysis. IEEE TSE 25(6), 749–768 (1999)

    Google Scholar 

  16. Simons, C.L., Parmee, I.C., Gwynllyw, R.: Interactive, Evolutionary Search in Upstream Object-Oriented Class Design. IEEE TSE 36(6), 798–816 (2010)

    Google Scholar 

  17. Takagi, H.: Interactive evolutionary computation: Fusion of the capacities of EC optimization and human evaluation. Proceedings of the IEEE 89(9), 1275–1296 (2001)

    Article  Google Scholar 

  18. Tonella, P., Susi, A., Palma, F.: Using interactive GA for requirements prioritization. In: SSBSE, pp. 57–66 (2010)

    Google Scholar 

  19. Wen, Z., Tzerpos, V.: An effectiveness measure for software clustering algorithms. In: IWPC, pp. 194–203 (2004)

    Google Scholar 

  20. Wiggerts, T.A.: Using clustering algorithms in legacy systems re-modularization. In: WCRE, p. 33. IEEE Computer Society (1997)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics