On the Automated Modularisation of Java Programs Using Service Locators

  • Syed Muhammad Ali Shah
  • Jens Dietrich
  • Catherine McCartin
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7306)


Service locator is a popular design pattern that facilitates building modular and reconfigurable systems. We investigate how existing monolithic systems can be automatically refactored using this pattern into more modular architectures, and measure the benefits of doing so. We present an Eclipse plugin we have developed for this purpose.


static analysis architectural antipatterns refactoring Java 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
  2. 2.
    JDepend Dependency Analyser,
  3. 3.
  4. 4.
    Restructure101. Headway software technologies,
  5. 5.
    Bad smell identification for software refactoring (2007),
  6. 6.
    Bach, M., Forster, F., Steimann, F.: Declared Type Generalization Checker: An Eclipse Plug-In for Systematic Programming with More General Types. In: Dwyer, M.B., Lopes, A. (eds.) FASE 2007. LNCS, vol. 4422, pp. 117–120. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  7. 7.
    Bischofberger, W., Kühl, J., Löffler, S.: Sotograph - A Pragmatic Approach to Source Code Architecture Conformance Checking. In: Oquendo, F., Warboys, B.C., Morrison, R. (eds.) EWSA 2004. LNCS, vol. 3047, pp. 1–9. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  8. 8.
    Dietrich, J., McCartin, C.: Scalable motif detection and aggregation. In: Australasian Database Conference, ADC 2012. CRPIT, vol. 124, pp. 31–40. ACS, Melbourne (2012), Google Scholar
  9. 9.
    Dietrich, J., McCartin, C., Tempero, E., Shah, S.M.A.: Barriers to Modularity - An Empirical Study to Assess the Potential for Modularisation of Java Programs. In: Heineman, G.T., Kofron, J., Plasil, F. (eds.) QoSA 2010. LNCS, vol. 6093, pp. 135–150. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  10. 10.
    Dietrich, J., McCartin, C., Tempero, E., Shah, S.M.A.: On the existence of high-impact refactoring opportunities in programs. In: Australasian Computer Science Conference, ACSC, Australia (2012),
  11. 11.
    Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley Longman Publishing Co., Inc., Boston (2002)Google Scholar
  12. 12.
    Fowler, M.: Inversion of control containers and the dependency injection pattern (2004),
  13. 13.
    GoBner, J., Mayer, P., Steimann, F.: Interface utilization in the java development kit. In: Proceedings of the 2004 ACM Symposium on Applied Computing, SAC 2004, pp. 1310–1315. ACM, New York (2004)Google Scholar
  14. 14.
    Martin, R.: Object oriented design quality metrics: An analysis of dependencies. Report on object analysis and design (1994),
  15. 15.
    Mayer, P.: Analyzing the use of interfaces in large OO projects. In: Companion of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2003, pp. 382–383. ACM, New York (2003)CrossRefGoogle Scholar
  16. 16.
    Mayer, P., Meissner, A., Steimann, F.: A visual interface for type-related refactorings. In: WRT 2007, pp. 5–6 (2007)Google Scholar
  17. 17.
    Melton, H., Tempero, E.: Identifying refactoring opportunities by identifying dependency cycles. In: Proceedings of the 29th Australasian Computer Science Conference, ACSC 2006, vol. 48, pp. 35–41. Australian Computer Society, Inc., Darlinghurst (2006)Google Scholar
  18. 18.
    Opdyke, W.F., Johnson, R.E.: Creating abstract superclasses by refactoring. In: Proceedings of the 1993 ACM Conference on Computer Science, CSC 1993, pp. 66–73. ACM, New York (1993)CrossRefGoogle Scholar
  19. 19.
    Riel, A.J.: Object-Oriented Design Heuristics. Addison-Wesley, Boston (1996)Google Scholar
  20. 20.
    Sakkinen, M.: Disciplined Inheritance. In: ECOOP 1989: Proceedings of the 1989 European Conference on Object-Oriented Programming, pp. 39–56 (1989)Google Scholar
  21. 21.
    Steimann, F., Mayer, P., MeiBner, A.: Decoupling classes with inferred interfaces. In: Proceedings of the 2006 ACM Symposium on Applied Computing, SAC 2006, pp. 1404–1408. ACM, New York (2006)Google Scholar
  22. 22.
    Steimann, F., Siberski, W., Kuhne, T.: Towards the systematic use of interfaces in java programming. In: Proceedings of the 2nd International Conference on Principles and Practice of Programming in Java, PPPJ 2003, pp. 13–17. Computer Science Press, Inc., New York (2003)Google Scholar
  23. 23.
    Stevens, W., Myers, G., Constantine, L.: Structured design, pp. 205–232. Yourdon Press, Upper Saddle River (1979)Google Scholar
  24. 24.
    Streckenbach, M., Snelting, G.: Refactoring class hierarchies with kaba. In: Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2004, pp. 315–330. ACM, New York (2004)CrossRefGoogle Scholar
  25. 25.
    Tip, F., Kiezun, A., Bäumer, D.: Refactoring for generalization using type constraints. In: Proceedings of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications, OOPSLA 2003, pp. 13–26. ACM, New York (2003)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Syed Muhammad Ali Shah
    • 1
  • Jens Dietrich
    • 1
  • Catherine McCartin
    • 1
  1. 1.School of Engineering and Advanced TechnologyMassey UniversityPalmerston NorthNew Zealand

Personalised recommendations