Browse > Article
http://dx.doi.org/10.3837/tiis.2022.06.011

AJFCode: An Approach for Full Aspect-Oriented Code Generation from Reusable Aspect Models  

Mehmood, Abid (Department of Management Information Systems, College of Business Administration, King Faisal University)
Jawawi, Dayang N.A. (Department of Software Engineering, Facutly of Computing, Universiti Teknologi Malaysia)
Publication Information
KSII Transactions on Internet and Information Systems (TIIS) / v.16, no.6, 2022 , pp. 1973-1993 More about this Journal
Abstract
Model-driven engineering (MDE) and aspect-oriented software development (AOSD) contribute to the common goal of development of high-quality code in reduced time. To complement each approach with the benefits of the other, various methods of integration of the two approaches were proposed in the past. Aspect-oriented code generation, which targets obtaining aspect-oriented code directly from aspect models, offers some unique advantages over the other integration approaches. However, the existing aspect-oriented code generation approaches do not comprehensively address all aspects of a model-driven code generation system, such as a textual representation of graphical models, conceptual mapping, and incorporation of behavioral diagrams. These problems limit the worth of generated code, especially in practical use. Here, we propose AJFCode, an approach for aspect-oriented model-driven code generation, which comprehensively addresses the various aspects including the graphical models and their text-based representation, mapping between visual model elements and code, and the behavioral code generation. Experiments are conducted to compare the maintainability and reusability characteristics of the aspect-oriented code generated using the AJFCode with the most comprehensive object-oriented code generation approach. AJFCode performs well in terms of all metrics related to maintainability and reusability of code. However, the most significant improvement is noticed in the separation of concerns, coupling, and cohesion. For instance, AJFCode yields significant improvement in concern diffusion over operations (19 vs 51), coupling between components (0 vs 6), and lack of cohesion in operations (5 vs 9) for one of the experimented concerns.
Keywords
aspect-oriented software development (AOSD); AspectJ; automated code generation; model-driven engineering (MDE); software design;
Citations & Related Records
연도 인용수 순위
  • Reference
1 J. D. Bennett, "An approach to aspect-oriented model-driven code generation using graph transformation. MS Thesis," MS, The University of Texas at Dallas, 2007.
2 T. T. Bartolomei, A. Garcia, C. Sant'Anna, and E. Figueiredo, "Towards a unified coupling framework for measuring aspect-oriented programs," in Proc. of the 3rd international workshop on Software quality assurance, Portland, Oregon, pp. 46-53, 2006.
3 C. Sant'anna, A. Garcia, C. Chavez, C. Lucena, and A. von Staa, "On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework," in Proc. of XVII Brazilian Symposium on Software Engineering, 2003.
4 T. B. l. Fosse, Z. Cheng, J. Rocheteau, and J. M. Mottu, "Model-Driven Engineering of Monitoring Application for Sensors and Actuators Networks," in Proc. of 2020 46th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), pp. 553-560, 2020.
5 F. Moreno, S. Uribe, F. Alvarez, and J. M. Menendez, "Extending Aspect-Oriented Programming for Dynamic User's Activity Detection in Mobile App Analytics," IEEE Consumer Electronics Magazine, vol. 9, no. 2, pp. 57-63, 2020.   DOI
6 L. Fuentes and P. Sanchez, "Dynamic Weaving of Aspect-Oriented Executable UML Models," in Transactions on Aspect-Oriented Software Development VI, pp. 1-38, 2009.
7 A. Stavrou and G. A. Papadopoulos, "Automatic Generation of Executable Code from Software Architecture Models," in Information Systems Development, pp. 447-458, 2009.
8 M. Kramer and J. Kienzle, "Mapping Aspect-Oriented Models to Aspect-Oriented Code," in Proc. of MODELS 2010: Models in Software Engineering, pp. 125-139, 2011.
9 J. Bennett, K. Cooper, and L. Dai, "Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach," Science of Computer Programming, vol. 75, no. 8, pp. 689-725, 2010.   DOI
10 P. Papotti, A. Prado, W. Souza, C. Cirilo, and L. Pires, "A Quantitative Analysis of Model-Driven Code Generation through Software Experimentation," in Proc. of CAiSE 2013: Advanced Information Systems Engineering, pp. 321-337, 2013.
11 N. Cacho, C. Sant'Anna, E. Figueiredo, A. Garcia, T. Batista, and C. Lucena, "Composing design patterns: a scalability study of aspect-oriented programming," in Proc. of the 5th international conference on Aspect-oriented software development, Bonn, Germany, pp. 109-121, 2006.
12 J. Kienzle, W. Al Abed, F. Fleurey, J.-M. Jezequel, and J. Klein, "Aspect-Oriented Design with Reusable Aspect Models," in Transactions on Aspect-Oriented Software Development VII, pp. 272-320, 2010.
13 M. V. Hecht, E. K. Piveta, M. S. Pimenta, and R. T. Price, "Aspect-oriented Code Generation," in Proc. of the XX Brazilian Conference on Software Engineering, 2005.
14 S. Maoz and D. Harel, "From multi-modal scenarios to code: compiling LSCs into aspectJ," in Proc. of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, Portland, Oregon, USA, pp. 219-230, 2006.
15 I. Groher and S. Schulze, "Generating aspect code from UML models," in Proc. of The Third International Workshop on Aspect-Oriented Modeling, 2003.
16 S. Haitao, S. Zhumei, and Z. Shixiong, "Mapping Aspect-Oriented Domain-Specific Model to Code for Real Time System," in Proc. of The Sixth World Congress on Intelligent Control and Automation, vol. 2, pp. 6426-6431, 2006.
17 M. Afonso, R. Vogel, and J. Teixeira, "From code centric to model centric software engineering: practical case study of MDD infusion in a systems integration company," in Proc. of Model-Based Development of Computer-Based Systems and Model-Based Methodologies for Pervasive and Embedded Software, Fourth and Third International Workshop on, p.10(pp.-134), 2006.
18 B. Karakostas and Y. Zorgios, Engineering Service Oriented Systems: A Model Driven Approach, IGI Global, 2008.
19 E. Rodrigues, L. Montecchi, and A. Ceccarelli, "Model-Driven Fault Injection in Java Source Code," in Proc. of 2020 IEEE 31st International Symposium on Software Reliability Engineering (ISSRE), pp. 414-425, 2020.
20 M. Ziaei, B. Zamani, and A. Bohlooli, "A Model-Driven Approach for IoT-Based Monitoring Systems in Industry 4.0," in Proc. of 2020 4th International Conference on Smart City, Internet of Things and Applications (SCIOT), pp. 99-105, 2020.
21 S. A. Vidal and C. A. Marcos, "Toward automated refactoring of crosscutting concerns into aspects," Journal of Systems and Software, vol. 86, no. 6, pp. 1482-1497, 2013.   DOI
22 L. Silva and D. Lopes, "Model Driven Engineering for Performance Testing in Mobile Applications," in Proc. of 2020 5th South-East Europe Design Automation, Computer Engineering, Computer Networks and Social Media Conference (SEEDA-CECNSM), pp. 1-7, 2020.
23 T. Gorski and J. Bednarski, "Applying Model-Driven Engineering to Distributed Ledger Deployment," IEEE Access, vol. 8, pp. 118245-118261, 2020.   DOI
24 A. Hovsepyan, R. Scandariato, S. V. Baelen, Y. Berbers, and W. Joosen, "From aspect-oriented models to aspect-oriented code?: the maintenance perspective," in Proc. of the 9th International Conference on Aspect-Oriented Software Development, Rennes and Saint-Malo, France, pp. 85-96, 2010.
25 W. M. Ma and W. S. Chao, "Structure-Behavior Coalescence Abstract State Machine for Metamodel-Based Language in Model-Driven Engineering," IEEE Systems Journal, vol. 15, no. 3, pp. 4105-4115, 2021.   DOI
26 S. Clarke and E. Baniassad, Aspect-Oriented Analysis and Design: The Theme Approach, Addison Wesley Object Technology, 2005.
27 K. Hoffman and P. Eugster, "Trading obliviousness for modularity with cooperative aspect-oriented programming," ACM Trans. Softw. Eng. Methodol., vol. 22, no. 3, pp. 1-46, 2013.
28 J. Evermann, A. Fiech, and F. E. Alam, "A platform-independent UML profile for aspect-oriented development," in Proc. of The Fourth International C Conference on Computer Science and Software Engineering, Montreal, Quebec, Canada, pp. 25-34, 2011.
29 L. Dai, "Formal design analysis framework: an aspect-oriented architectural framework," University of Texas at Dallas, Ph.D. Dissertation, 2005.
30 A. Jackson, N. Casey, and S. Clarke, "Mapping design to implementation," AOSD-Europe TDCD111..
31 I. A. Niaz, "Automatic Code Generation From UML Class and Statechart Diagrams," PhD Thesis, Graduate School of Systems and Information Engineering., University of Tsukuba, Ph.D. Thesis., 2005.
32 P. Greenwood et al., "On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study," in Proc. of ECOOP 2007 - Object-Oriented Programming, pp. 176-200, 2007.
33 S. J. Mellor and M. Balcer, Executable UML: A Foundation for Model-Driven Architectures, Addison-Wesley Longman Publishing Co., Inc., pp. 368, 2002.
34 A. Derezinska and R. Pilitowski, "Correctness issues of UML class and state machine models in the C# code generation and execution framework," in Proc. of International Multiconference on Computer Science and Information Technology, pp. 517-524, 2008.
35 J. Kienzle, W. A. Abed, and J. Klein, "Aspect-oriented multi-view modeling," in Proc. of the 8th ACM international conference on Aspect-oriented software development, Charlottesville, Virginia, USA, pp. 87-98, 2009.
36 A. Mehmood, D. N. A. Jawawi, and F. Zeshan, "An Approach for Mapping the Aspect State Models to Aspect-Oriented Code," in Proc. of 2019 International Conference on Engineering and Emerging Technologies (ICEET), pp. 1-6, 2019.
37 I. A. Niaz and J. Tanaka, "Code Generation from UML Statecharts," in Proc. of 7th IASTED International Conf. on Software Engineering and Application (SEA 2003), Marina Del Rey, USA, pp. 315-321, 2003.
38 I. A. Niaz and J. Tanaka, "An Object-Oriented Approach to Generate Java Code from UML Statecharts," International Journal of Computer & Information Science, vol. 6, no. 2, 2005.
39 A. Garcia, C. Sant'Anna, E. Figueiredo, U. Kulesza, C. Lucena, and A. v. Staa, "Modularizing design patterns with aspects: a quantitative study," in Proc. of the 4th international conference on Aspect-oriented software development, Chicago, Illinois, pp. 3-14, 2005.
40 I. Sommerville, Software Engineering, Pearson, 2010.
41 M. Miroshnyk, A. Shkil, E. Kulak, D. Rakhlis, I. Filippenko, and A. Miroshnyk, "Verification of FPGA control systems by analyzing the correctness of state diagrams," in Proc. of 2020 IEEE 11th International Conference on Dependable Systems, Services and Technologies (DESSERT), pp. 85-89, 2020.
42 P. Berta and V. Vranic, "Synergy of Organizational Patterns and Aspect-Oriented Programming," in Proc. of 2019 IEEE 15th International Scientific Conference on Informatics, pp. 000439-000444, 2019.
43 C. Hung, K. Chen, and C. Liao, "Modularizing Cross-Cutting Concerns with Aspect-Oriented Extensions for Solidity," in Proc. of 2019 IEEE International Conference on Decentralized Applications and Infrastructures (DAPPCON), pp. 176-181, 2019.
44 T. Cottenier, A. v. d. Berg, and T. Elrad, "Motorola WEAVR: Aspect Orientation and Model-Driven Engineering," Journal of Object Technology, vol. 6, no. 7, pp. 51-88, 2007.   DOI
45 J. Whittle, P. Jayaraman, A. Elkhodary, A. Moreira, and J. Araujo, "MATA: A Unified Approach for Composing UML Aspect Models Based on Graph Transformation," in Transactions on Aspect-Oriented Software Development VI, pp. 191-237, 2009.
46 E. K. Piveta, A. Moreira, M. S. Pimenta, J. Araujo, P. Guerreiro, and R. T. Price, "An empirical study of aspect-oriented metrics," Science of Computer Programming, vol. 78, no. 1, pp. 117-144, 11/1/ 2012.   DOI
47 J. Araujo and J. Whittle, "Aspect-Oriented Compositions for Dynamic Behavior Models," in Aspect-Oriented Requirements Engineering, 2013, pp. 45-60.
48 S. Loukil, S. Kallel, B. Zalila, and M. Jmaiel, "AO4AADL: Aspect oriented extension for AADL," Open Computer Science, vol. 3, no. 2, pp. 43-68, 2013/06/01 2013.   DOI
49 P. Tarr, H. Ossher, W. Harrison, and J. Stanley M. Sutton, "N degrees of separation: multi-dimensional separation of concerns," in Proc. of the 21st international conference on Software engineering, Los Angeles, California, USA, pp. 107-119, 1999.
50 J. Evermann, "A meta-level specification and profile for AspectJ in UML," in Proc. of the 10th international workshop on Aspect-oriented modeling, Vancouver, Canada, pp. 21-27, 2007.
51 A. Mehmood and D. N. A. Jawawi, "Aspect-Oriented Code Generation for Integration of Aspect Orientation and Model-Driven Engineering," International Journal of Software Engineering and Its Applications, vol. 7, no. 2, pp. 207-218, 2013.
52 S. V. S, "Introducing Aspect-Oriented Programming in Improving the Modularity of Middleware for Internet of Things," in Proc. of 2020 Advances in Science and Engineering Technology International Conferences (ASET), pp. 1-5, 2020.
53 R. Pilitowski and A. Derezinska, "Code Generation and Execution Framework for UML 2.0 Classes and State Machines," Innovations and Advanced Techniques in Computer and Information Sciences and Engineering, pp. 421-427, 20007.
54 A. Mehmood, "Aspect-Oriented Model-Driven Code Generation Approach For Improving Code Reusability And Maintainability," Ph.D. Thesis, Department of Software Engineering, Faculty of Computing, Universiti Teknologi Malaysia (UTM), Ph.D. Thesis, 2014.
55 V. S. E and P. Samuel, "Automatic Code Generation From UML State Chart Diagrams," IEEE Access, vol. 7, pp. 8591-8608, 2019.   DOI
56 A. Mehmood and D. N. A. Jawawi, "A Text-based Implementation Model for Reusable Aspect Models," Journal of Theoretical and Applied Information Technology, vol. 55, no. 2 pp. 209-224, 2013.
57 I. A. Niaz and J. Tanaka, "Mapping UML Statecharts to Java Code," in Proc. of IASTED International Conf. on Software Engineering (SE 2004), Innsbruck, Austria, pp. 111-116, 2004.
58 T. Elrad, O. Aldawud, and A. Bader, "Aspect-Oriented Modeling: Bridging the Gap between Implementation and Design " in Proc. of Generative Programming and Component Engineering, pp. 189-201, ACM SIGPLAN/SIGSOFT Conference, GPCE 2002, Pittsburgh, PA, USA, October 6-8, 2002.