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.




















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.
References
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)
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)
AspectJ Compiler 1.9.4. https://www.eclipse.org/aspectj/ (2019). Accessed April 2019
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)
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)
Bolte, F., Bruckner, S.: Vis-a-vis: visual exploration of visualization source code evolution. IEEE Trans. Vis. Comput. Graph. 27(7), 3153–3167 (2020)
Card, S.K., Mackinlay, J.D., Shneiderman, B.: Readings in Information Visualization: Using Vision to Think. Morgan Kaufmann, San Francisco (1999)
Caserta, P., Zendra, O.: Visualization of the static aspects of software: a survey. IEEE Trans. Vis. Comput. Graph. 17(7), 913–933 (2011)
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)
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)
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)
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)
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)
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)
Fabry, J., Kellens, A., Denier, S., Ducasse, S.: Aspectmaps: extending moose to visualize AOP software. Sci. Comput. Prog. 79, 6–22 (2014)
Fittkau, F., Krause, A., Hasselbring, W.: Software landscape and application visualization for system comprehension with explorviz. Inf. Softw. Technol. 87, 259–277 (2017)
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)
Horie, M., Chiba, S.: Aspectscope: an outline viewer for aspectj programs. J. Obj. Technol. 6(9), 341–361 (2007)
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)
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)
Knight, C., Munro, M.: Virtual but visible software. In: IEEE International Conference on Information Visualization, 2000. Proceedings, pp. 198–205. IEEE (2000)
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)
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)
Laddad, R.: AspectJ In Action: Practical Aspect-Oriented Programming. Manning Publications Co., Shelter Island (2003)
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)
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)
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)
Merino, L., Ghafari, M., Anslow, C., Nierstrasz, O.: A systematic literature review of software visualization evaluation. J. Syst. Softw. 144, 165–180 (2018)
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)
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)
Przybyłek, A.: An empirical study on the impact of aspectj on software evolvability. Empir. Softw. Eng. 23, 1–33 (2017)
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)
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)
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)
The AspectJ Developement Tools (AJDT) for Eclipse. https://www.eclipse.org/ajdt/. (2018)
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)
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)
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)
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)
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)
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)
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)
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)
Zhang, K.: Software Visualization: From Theory to Practice, vol. 734. Springer, New York (2012)
Funding
Not applicable.
Author information
Authors and Affiliations
Corresponding author
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
About this article
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10586-022-03639-7