Skip to main content
Log in

Visualization of aspect-oriented programs using city transportation metaphor

  • Published:
Cluster Computing Aims and scope Submit manuscript

Abstract

Aspect-oriented software development is a programming paradigm that supports the modularization of crosscutting concerns. The paradigm introduces a new concept, call aspect, along with other concepts and components to capture crosscutting concerns. However, introducing aspects adds difficulties in understanding the structure of program, especially at the maintenance phase. In order to increase understandability of aspect-oriented programs, we propose a visualization approach that uses city transportation system as a metaphor for viewing the structure of aspect-oriented programs. Additionally, we built a prototype tool, called AspectCity, that implements the presented approach. We demonstrated how AspectCity can be used to visualize aspect-oriented programs using two examples. The demonstration shows that the proposed approach can help in understanding aspect-oriented programs. Moreover, the concepts used in AspectCity facilitate ease of communication and do not require effort from the reader to understand the approach due to the use of real life metaphors. AspectCity is a promising approach that can help in solving understandability problem of aspect-oriented programs and decrease their maintenance cost. The approach used in AspectCity can be further extended to be used in visualizing software that contains complex relations between its components.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20

Similar content being viewed by others

Data availability

Not applicable.

Code availability

The tool developed for this research can be obtained using the git link: https://github.com/wedyanf/AspectCity.git.

Notes

  1. http://jakarta.apache.org/bcel/.

References

  1. Ahmed, R.A.M., Aboutabl, A.E., Mostafa, M.-S.M.: Extending unified modeling language to support aspect-oriented software development. Int. J. Adv. Comput. Sci. Appl. 8(1), 208–215 (2017)

    Google Scholar 

  2. AlKhatib, A.A.A., Sawalha, T., AlZu’bi, S.: Load balancing techniques in software-defined cloud computing: an overview. In: 2020 Seventh International Conference on Software Defined Systems (SDS), pp. 240–244. IEEE (2020)

  3. AspectJ Compiler 1.9.4. https://www.eclipse.org/aspectj/ (2019). Accessed April 2019

  4. Balzer, M., Noack, A., Deussen, O., Lewerentz, C.: Software landscapes: visualizing the structure of large software systems. In: VisSym 2004, Symposium on Visualization, pp. 261—266. IEEE (2004)

  5. Baum, D., Schilbach, J., Kovacs, P., Eisenecker, U., Müller, R.: Getaviz: generating structural, behavioral, and evolutionary views of software systems for empirical evaluation. In: 2017 IEEE Working Conference on Software Visualization (VISSOFT), pp. 114–118. IEEE (2017)

  6. Bolte, F., Bruckner, S.: Vis-a-vis: visual exploration of visualization source code evolution. IEEE Trans. Vis. Comput. Graph. 27(7), 3153–3167 (2020)

    Article  Google Scholar 

  7. Card, S.K., Mackinlay, J.D., Shneiderman, B.: Readings in Information Visualization: Using Vision to Think. Morgan Kaufmann, San Francisco (1999)

    Google Scholar 

  8. Caserta, P., Zendra, O.: Visualization of the static aspects of software: a survey. IEEE Trans. Vis. Comput. Graph. 17(7), 913–933 (2011)

    Article  Google Scholar 

  9. Charters, S.M., Knight, C., Thomas, N., Munro, M.: Visualisation for informed decision making; from code to components. In: Proceedings of the 14th International Conference on Software Engineering and Knowledge Engineering, pp. 765–772. ACM (2002)

  10. Coelho, W., Murphy, G.C: Presenting crosscutting structure with active models. In: Proceedings of the 5th International Conference on Aspect-Oriented Software Development, pp. 158–168. ACM (2006)

  11. Elbes, M., Alrawashdeh, T., Almaita, E., AlZu’bi, S., Jararweh, Y.: A platform for power management based on indoor localization in smart buildings using long short-term neural networks. Trans. Emerg. Telecommun. Technol. 33, e3867 (2020)

    Google Scholar 

  12. Erra, U., Scanniello, G., Capece, N.: Visualizing the evolution of software systems using the forest metaphor. In: 2012 16th International Conference on Information Visualisation, pp. 87–92. IEEE (2012)

  13. Fabry, J., De Roover, C., Jonckers, V.: Aspectual source code analysis with GASR. In: 2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM), pp. 53–62. IEEE (2013)

  14. Fabry, J., De Roover, C., Noguera, C., Zschaler, S., Rashid, A., Jonckers, V.: Aspectj code analysis and verification with GASR. J. Syst. Soft. 117, 528–544 (2016)

    Article  Google Scholar 

  15. Fabry, J., Kellens, A., Denier, S., Ducasse, S.: Aspectmaps: extending moose to visualize AOP software. Sci. Comput. Prog. 79, 6–22 (2014)

    Article  Google Scholar 

  16. Fittkau, F., Krause, A., Hasselbring, W.: Software landscape and application visualization for system comprehension with explorviz. Inf. Softw. Technol. 87, 259–277 (2017)

    Article  Google Scholar 

  17. Fittkau, F., Waller, J., Wulf, C., Hasselbring, W.: Live trace visualization for comprehending large software landscapes: the explorviz approach. In: 2013 First IEEE Working Conference on Software Visualization (VISSOFT), pp. 1–4. IEEE (2013)

  18. Horie, M., Chiba, S.: Aspectscope: an outline viewer for aspectj programs. J. Obj. Technol. 6(9), 341–361 (2007)

    Article  Google Scholar 

  19. Hsu, K.-H., Tsai, C.-Y.: From early aspect to aspect-oriented programming: a state-based join point model approach. J. Inf. Sci. Eng. 34(3) (2018)

  20. Kastner, C., Apel, S., Batory, D.: A case study implementing features using aspectj. In: 11th International on Software Product Line Conference, 2007. SPLC 2007, pp. 223–232. IEEE (2007)

  21. Knight, C., Munro, M.: Virtual but visible software. In: IEEE International Conference on Information Visualization, 2000. Proceedings, pp. 198–205. IEEE (2000)

  22. Kobayashi, K., Kamimura, M., Kato, K., Yano, K., Matsuo, A.: Feature-gathering dependency-based software clustering using dedication and modularity. In: 2012 28th IEEE International Conference on Software Maintenance (ICSM), pp. 462–471. IEEE (2012)

  23. Kobayashi, K., Kamimura, M., Yano, K., Kato, K., Matsuo, A.: Sarf map: Visualizing software architecture from feature and layer viewpoints. In: 2013 IEEE 21st International Conference on Program Comprehension (ICPC), pp. 43–52. IEEE (2013)

  24. Laddad, R.: AspectJ In Action: Practical Aspect-Oriented Programming. Manning Publications Co., Shelter Island (2003)

    Google Scholar 

  25. Liu, H., Tao, Y., Qiu, Y., Huang, W., Lin, H.: Visual exploration of software evolution via topic modeling. J. Vis. 24(4), 827–844 (2021)

    Article  Google Scholar 

  26. Marcus, A., Feng, L., Maletic, J.I.: 3d representations for software visualization. In: Proceedings of the 2003 ACM symposium on Software visualization, pp. 27–ff. ACM (2003)

  27. Merino, L., Bergel, A., Nierstrasz, O.: overcoming issues of 3d software visualization through immersive augmented reality. In: 2018 IEEE Working Conference on Software Visualization (VISSOFT), pp. 54–64. IEEE (2018)

  28. Merino, L., Ghafari, M., Anslow, C., Nierstrasz, O.: A systematic literature review of software visualization evaluation. J. Syst. Softw. 144, 165–180 (2018)

    Article  Google Scholar 

  29. Panas, T., Berrigan, R., Grundy, J.: A 3d metaphor for software production visualization. In: Seventh International Conference on Information Visualization, 2003. IV 2003. Proceedings, pp. 314–319. IEEE (2003)

  30. Pfeiffer, J., Gurd, J.R. et al.: Visualisation-based tool support for the development of aspect-oriented programs. In: Proceedings of the 5th International Conference on Aspect-Oriented Software Development, pp. 146–157. ACM (2006)

  31. Przybyłek, A.: An empirical study on the impact of aspectj on software evolvability. Empir. Softw. Eng. 23, 1–33 (2017)

    Google Scholar 

  32. Romano, S., Capece, N., Erra, U., Scanniello, G., Lanza, M.: On the use of virtual reality in software visualization: the case of the city metaphor. Inf. Softw. Technol. 114, 92–106 (2019)

    Article  Google Scholar 

  33. Schreiber, A., Nafeie, L., Baranowski, A., Seipel, P., Misiak, M.: Visualization of software architectures in virtual reality and augmented reality. In: 2019 IEEE Aerospace Conference, pp. 1–12 (2019)

  34. Storey, M.-A.D., Fracchia, F.D.: Cognitive design elements to support the construction of a mental model during software exploration. J. Syst. Softw. 44(3), 171–185 (1999)

    Article  Google Scholar 

  35. The AspectJ Developement Tools (AJDT) for Eclipse. https://www.eclipse.org/ajdt/. (2018)

  36. von Kurnatowski, L., Heidrich, D., Güden, N., Schreiber, A., Polzin, H., Stangl, C.: Analysing and visualizing large aerospace software systems. In: ASCEND: Accelerating Space Commerce. Exploration, and New Discovery. AIAA, pp. 2021–4082 (2021)

  37. Walker, R.J., Baniassad, E.L.A., Murphy, G.C: An initial assessment of aspect-oriented programming. In: Proceedings of the 1999 International Conference on Software Engineering, pp. 120–130. IEEE (1999)

  38. Wedyan, F., Ghosh, S.: A joinpoint coverage measurement tool for evaluating the effectiveness of test inputs for aspectj programs. In: 19th International Symposium on Software Reliability Engineering, 2008. ISSRE 2008, pp. 207–212. IEEE (2008)

  39. Wedyan, F., Ghosh, S.: A dataflow testing approach for aspect-oriented programs. In: 2010 IEEE 12th International Symposium on High-Assurance Systems Engineering (HASE), pp. 64–73. IEEE (2010)

  40. Wedyan, F., Ghosh, S., Vijayasarathy, L.R: An approach and tool for measurement of state variable based data-flow test coverage for aspect-oriented programs. Inf. Softw. Technol. 59, 233–254 (2015)

    Article  Google Scholar 

  41. Wettel, R., Lanza, M.: Visualizing software systems as cities. In: 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis, 2007. VISSOFT 2007, pp. 92–99. IEEE (2007)

  42. Wimmer, M., Schauerhuber, A., Kappel, G., Retschitzegger, W., Schwinger, W., Kapsammer, E.: A survey on uml-based aspect-oriented design modeling. ACM Comput. Surv. 43(4), 1–33 (2011)

    Article  Google Scholar 

  43. Zhang, D., Duala-Ekoko, E., Hendren, L.: Impact analysis and visualization toolkit for static crosscutting in aspectj. In: IEEE 17th International Conference on Program Comprehension, 2009. ICPC’09, pp. 60–69. IEEE (2009)

  44. Zhang, K.: Software Visualization: From Theory to Practice, vol. 734. Springer, New York (2012)

    Google Scholar 

Download references

Funding

Not applicable.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Fadi Wedyan.

Ethics declarations

Conflict of interest

The authors declare that they have no conflict of interest.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Wedyan, F., Freihat, R. & Hammad, M. Visualization of aspect-oriented programs using city transportation metaphor. Cluster Comput 25, 3993–4008 (2022). https://doi.org/10.1007/s10586-022-03639-7

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10586-022-03639-7

Keywords