An Approach for Graphical User Interface External Bad Smells Detection

  • J. C. Silva
  • J. C. Campos
  • J. Saraiva
  • J. L. Silva
Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 276)


In the context of an effort to develop methodologies to support the evaluation of interactive system, this paper investigates an approach to detect graphical user interface external bad smells. Our approach consists in detecting user interface external bad smells through model-based reverse engineering from source code. Models are used to define which widgets are present in the interface, when can particular graphical user interface (GUI) events occur, under which conditions, which system actions are executed, and which GUI state is generated next. From these models we obtain metrics that can later be used to identify the smells.


GUI Reverse Engineering Bad Smells 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Myers, B.A.: Separating Application Code from Toolkits: Eliminating the Spaghetti of Call-backs, School of Computer Science. Carnegie Mellon University (1999)Google Scholar
  2. 2.
    Memon, A.M.: A Comprehensive Framework for Testing Graphical User Interfaces. PhD thesis, Department of Computer Science, University of PittsBurgh (July 2001)Google Scholar
  3. 3.
    Berard, B.: Systems and Software Verification. Springer (2001)Google Scholar
  4. 4.
    Silva, J.C., Campos, J.C., Saraiva, J.: A generic library for GUI reasoning and testing. In: 24th Annual ACM Symposium on Applied Computing, USA (March 2009)Google Scholar
  5. 5.
    Moore, M.M.: Rule-based detection for reverse engineering user interfaces. In: Proceedings of the Third Working Conference on Reverse Engineering, Monterey, CA, pp. 42–48 (November 1996)Google Scholar
  6. 6.
    Stamelos, I., Angelis, L., Oikonomou, A., Bleris, G.L.: Code quality analysis in open source software development. Information Systems Journal 12, 43–60 (2002)CrossRefGoogle Scholar
  7. 7.
    Yoon, Y.S., Yoon, W.C.: Development of quantitative metrics to support ui designer decision-making in the design process. In: Jacko, J.A. (ed.) Human-Computer Interaction, Part I, HCII 2007. LNCS, vol. 4550, pp. 316–324. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  8. 8.
    Thimbleby, H., Gow, J.: Applying graph theory to interaction design, pp. 501–519 (2008)Google Scholar
  9. 9.
    Miller, S.P., Tribble, A.C., Whalen, M.W., Heimdahl, M.P.E.: Proving the shalls early validation of requirements through formal methods (2004)Google Scholar
  10. 10.
    Nielsen, J.: Usability Engineering. Academic Press, San Diego (1993)MATHGoogle Scholar
  11. 11.
    Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston (1999)Google Scholar
  12. 12.
    Mantyla, M., Vanhanen, J., Lassenius, C.: A taxonomy and an initial empirical study of bad smells in code. In: Proceedings of the International Conference on Software Maintenance, ICSM 2003, pp. 381–384. IEEE Computer Society, Washington, DC (2003)CrossRefGoogle Scholar
  13. 13.
    Paiva, A.C.R., Faria, J.C.P., Mendes, P.M.C.: Reverse Engineered Formal Models for GUI Testing. In: Leue, S., Merino, P. (eds.) FMICS 2007. LNCS, vol. 4916, pp. 218–233. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  14. 14.
    Chen, J., Subramaniam, S.: A GUI environment for testing guibased applications in Java. In: Proceedings of the 34th Hawaii International Conferences on System Sciences (2001)Google Scholar
  15. 15.
    Systa, T.: Dynamic reverse engineering of Java software. Technical report, University of Tampere, Finland (2001)Google Scholar
  16. 16.
    Kataoka, Y., Imai, T., Andou, H., Fukaya, T.: A quantitative evaluation of maintainability enhancement by refactoring. In: Proceedings of International Conference on Software Maintenance (ICSM 2002), Montral, Canada, pp. 576–585. IEEE Computer Society (October 2002), doi:10.1109/ICSM.2002.1167822Google Scholar
  17. 17.
    Tahvildari, L., Kontogiannis, K.: A metric-based approach to enhance design quality through meta-pattern transformations. In: Proceedings of the Seventh European Conference on Software Maintenance and Reengineering, Benevento, Italy, pp. 183–192 (March 2003), doi:10.1109/CSMR.2003.1192426.Google Scholar
  18. 18.
    Fontana, F.A., Spinelli, S.: Impact of refactoring on quality code evaluation. In: Proceeding of the 4th Workshop on Refactoring Tools, WRT 2011 (Workshop Held in Conjunction with ICSE 2011), Waikiki, Honolulu, HI, USA, pp. 37–40. ACM (2011), doi:10.1145/1984732.1984741.Google Scholar
  19. 19.
    Berkhin, P.: A survey on pagerank computing. Internet Mathematics 2, 73–120 (2005)CrossRefMATHMathSciNetGoogle Scholar
  20. 20.
    Shu, Y.S., et al.: Fast centrality approximation in modular networks (2009)Google Scholar
  21. 21.
    Garrido, A., Rossi, G., Distante, D.: Refactoring for Usability in Web Applications. IEEE Software 28(3), 60 (2011)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • J. C. Silva
    • 1
  • J. C. Campos
    • 2
  • J. Saraiva
    • 2
  • J. L. Silva
    • 3
  1. 1.Dep. TecnologiasInstituto Politécnico do Cávado e do AveBarcelosPortugal
  2. 2.Dep. InformáticaUniversidade do Minho and HASLab / INESC TECBragaPortugal
  3. 3.Madeira-ITIUniversidade da MadeiraFunchalPortugal

Personalised recommendations