DOI QR코드

DOI QR Code

A GUI-based Approach to Software Modularization

  • 투고 : 2018.02.07
  • 심사 : 2018.04.11
  • 발행 : 2018.04.30

초록

Software maintenance activities have always been important issues in many domains of the software industry. In order to help to resolve this issue, software modularization approaches have been studied to build adequate modules with high cohesion and low coupling; such modular structures can help the comprehension and maintenance of complex systems. In this paper, we propose a GUI-based automated approach for software modularization based on GUI structure analysis. GUI is a principal manner to allow users to access the overall functionalities of a software system; in particular, GUI is closely related to software functionalities, which makes it a promising tool to identify and understand the entire software system. We also implement a software tool to support our approach and evaluate it with a case study using an open source software.

키워드

참고문헌

  1. K. H. Bennett, and V. T. Rajlich, "Software maintenance and evolution: a roadmap," Proceedings of the Conference on The Future of Software Engineering, pp. 73-87, 2000.
  2. Ian Sommerville, "Software Engineering(10th Edition)," Pearson, 2015.
  3. B. S. Mitchell, and S. Mancoridis, "On the automatic modularization of software systems using the bunch tool," IEEE Transactions on Software Engineering, Vol. 32, No. 3, pp. 193-208, 2006. https://doi.org/10.1109/TSE.2006.31
  4. U. Erdemir, and F. Buzluca, "A learning-based module extraction method for object-oriented systems," Journal of Systems and Software, Vol. 97, pp. 156-188, 2014. https://doi.org/10.1016/j.jss.2014.07.038
  5. K. Praditwong, M. Harman, and X. Yao, "Software module clustering as a multi-objective search problem," IEEE Transactions on Software Engineering, Vol. 37, No. 2, pp. 264-282, 2011. https://doi.org/10.1109/TSE.2010.26
  6. G. Bavota, F. Carnevale, A.D. Lucia, M.D. Penta, and R. Oliveto, "Putting the developer in-the-loop: an inter active GA for software remodularization," Proceedings of the International Symposium on Search Based Software Engineering, pp. 75-89, 2012.
  7. W. Mkaouer, M. Kessentini, A. Shaout, P. Koligheu, S. Bechikh, K. Deb, and A. Ouni, "Many-objective software remodularization using NSGA-III," ACM Transactions on Software Engineering and Methodology, Vol. 24, No. 3, pp. 1-45, 2015.
  8. A. Prajapati, and J.K. Chhabra, "Improving package struc ture of object-oriented software using multi-objective optimization and weighted class connections," Journal of King Saud University - Computer and Information Sciences, Vol. 29, No. 3, pp. 349-364, 2017. https://doi.org/10.1016/j.jksuci.2015.09.004
  9. O. Maqbool, and H. A. Babri, "The weighted combined algorithm: a linkage algorithm for software clustering," Proceedings of the 8th European Conference Software Maintenance and Reengineering, pp. 15-24, 2004.
  10. D. Doval, S. Mancoridis, and B. S. Mitchell, "Automatic clustering of software systems using a genetic algorithm," Proceedings of the Software Technology and Engineering Practice, pp. 73-81, 1999.
  11. G. Santos, M. T. Valente, and N. Anquetil, "Remodu larization analysis using semantic clustering," Proceedings of the IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering, pp. 224-233, 2014.
  12. G. Scanniello, A. DAmico, C. DAmico, and T. DAmico, "Using the kleinberg algorithm and vector space model for software system clustering," Proceedings of the international conference on program comprehension, pp. 180-189, 2010.
  13. A. Corazza, S.D. Martino, V. Maggio, and G. Scanniello, "Investigating the use of lexical information for software system clustering," Proceedings of the 15th European Conference on Software Maintenance and Reengineering, pp. 35-44, 2011.
  14. A. Corazza, S.D. Martino, V. Maggio, and G. Scanniello, "Weighing lexical information for software clustering in the context of architecture recovery," Empirical Software Engineering, Vol. 21, No. 1, pp. 72-103, 2016. https://doi.org/10.1007/s10664-014-9347-3
  15. M. Risi, G. Scanniello, and G. Tortora, "Using fold-in and fold-out in the architecture recovery of software systems," Formal Aspects of Computing, Vol. 24, No. 3, pp. 307-330, 2012. https://doi.org/10.1007/s00165-011-0199-y
  16. TerpPaint, http://terppaint.sourceforge.net/download/