Architectural tactics identification in source code based on a semantic approach
Subject Areas :Ehsan Sharifi 1 , Ahmad عبداله زاده بارفروش 2
1 - Amir Kabir University
2 - Amirkabir
Keywords: Architectural tactic, Microtactic, ontology, semantic model,
Abstract :
Software systems are alive as long as they can be changed and used. Changing the source code without considering the consequences can lead to the architectural erosion of software systems. Architectural erosion gradually makes the system unchangeable and moves it towards deterioration. Architectural decisions in the source code are usually made using architectural tactics. These tactics are fine-grained decisions that are made to achieve a certain quality attribute. Recognizing these tactics in the source code, allows developers to change the code while knowing the implementation location of these decisions. This slows the architectural erosion process and delays the system's movement towards deterioration. Thus, this paper introduces a method based on semantic web for recognizing the architectural tactics presented in the source code. Based on this approach, the new concept of microtactic is introduced that increases the possibility of recognizing architectural tactics using a semantic web and ontological approach. The evaluation results show that this method in comparison with other similar methods recognizes the tactics with higher precision and quality.
M. Mirakhorli, “Preventing erosion of architectural tactics through their strategic implementation, preservation, and visualization,” in 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE), Nov. 2013, pp. 762–765. doi: 10.1109/ASE.2013.6693152.
N. B. Harrison and P. Avgeriou, “How do architecture patterns and tactics interact? A model and annotation,” Journal of Systems and Software, vol. 83, no. 10, pp. 1735–1758, Oct. 2010, doi: 10.1016/j.jss.2010.04.067.
M. Mirakhorli, A. Fakhry, A. Grechko, M. Wieloch, and J. Cleland-Huang, “Archie: A Tool for Detecting, Monitoring, and Preserving Architecturally Significant Code,” in Proceedings of the 22Nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, New York, NY, USA, 2014, pp. 739–742. doi: 10.1145/2635868.2661671.
J. Ryoo, P. Laplante, and R. Kazman, “A Methodology for Mining Security Tactics from Security Patterns,” in 2010 43rd Hawaii International Conference on System Sciences, Jan. 2010, pp. 1–5. doi: 10.1109/HICSS.2010.18.
M. Mirakhorli, P. Mäder, and J. Cleland-Huang, “Variability points and design pattern usage in architectural tactics,” in Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, New York, NY, USA, Nov. 2012, pp. 1–11. doi: 10.1145/2393596.2393657.
M. Mirakhorli and J. Cleland-Huang, “Detecting, Tracing, and Monitoring Architectural Tactics in Code,” IEEE Transactions on Software Engineering, vol. 42, no. 3, pp. 205–220, Mar. 2016, doi: 10.1109/TSE.2015.2479217.
D. E. Krutz and M. Mirakhorl, “Architectural clones: toward tactical code reuse,” in Proceedings of the 31st Annual ACM Symposium on Applied Computing, New York, NY, USA, Apr. 2016, pp. 1480–1485. doi: 10.1145/2851613.2851787.
I. J. Mujhid, J. C. S. Santos, R. Gopalakrishnan, and M. Mirakhorli, “A search engine for finding and reusing architecturally significant code,” Journal of Systems and Software, vol. 130, pp. 81–93, Aug. 2017, doi: 10.1016/j.jss.2016.11.034.
J. Keim, A. Kaplan, A. Koziolek, and M. Mirakhorli, “Does BERT Understand Code? – An Exploratory Study on the Detection of Architectural Tactics in Code,” in Software Architecture, Cham, 2020, pp. 220–228. doi: 10.1007/978-3-030-58923-3_15.
B. Milhem and H. A. Ismail, “Evaluating Software Architecture Based on Their Implemented Patterns and Tactics,” Thesis, Université d’Ottawa / University of Ottawa, 2020. doi: 10.20381/ruor-25057.
M. Zanoni, F. Arcelli Fontana, and F. Stella, “On applying machine learning techniques for design pattern detection,” Journal of Systems and Software, vol. 103, no. Supplement C, pp. 102–117, May 2015, doi: 10.1016/j.jss.2015.01.037.
J. (Yossi) Gil and I. Maman, “Micro Patterns in Java Code,” in Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, New York, NY, USA, 2005, pp. 97–116. doi: 10.1145/1094811.1094819.
S. Maggioni, “Design pattern detection and software architecture reconstruction: an integrated approach based on software micro-structures,” Università degli Studi di Milano-Bicocca, 2010.
R. Studer, V. R. Benjamins, and D. Fensel, “Knowledge engineering: Principles and methods,” Data & Knowledge Engineering, vol. 25, no. 1, pp. 161–197, Mar. 1998, doi: 10.1016/S0169-023X(97)00056-6.
A. Barforoush and A. Rahnama, “Ontology Learning: Revisited,” Journal of Web Engineering (JWE), vol. 11, pp. 269–289, Dec. 2012.
N. Noy and D. Mcguinness, “Ontology Development 101: A Guide to Creating Your First Ontology,” Knowledge Systems Laboratory, vol. 32, Jan. 2001.
S. Ehsan and D. Mahmood, “AN APPLICABLE METHOD FOR COMPREHENSIVE CORPUS GATHERING NEEDS FOR FUZZY DOMAIN ONTOLOGY GENERATION,” ELECTRONIC INDUSTRIES, vol. 7, no. 1, pp. 89–103, Jan. 2016.
R. Y. K. Lau, D. Song, Y. Li, T. C. H. Cheung, and J.-X. Hao, “Toward a Fuzzy Domain Ontology Extraction Method for Adaptive e-Learning,” IEEE Transactions on Knowledge and Data Engineering, vol. 21, no. 6, pp. 800–813, Jun. 2009, doi: 10.1109/TKDE.2008.137.
M. Atzeni and M. Atzori, “CodeOntology: RDF-ization of Source Code,” in The Semantic Web – ISWC 2017, Cham, 2017, pp. 20–28. doi: 10.1007/978-3-319-68204-4_2.
S. Kim, D.-K. Kim, L. Lu, and S. Park, “Quality-driven architecture development using architectural tactics,” Journal of Systems and Software, vol. 82, no. 8, pp. 1211–1231, Aug. 2009, doi: 10.1016/j.jss.2009.03.102.
S. Paydar and M. Kahani, “A semantic web enabled approach to reuse functional requirements models in web engineering,” Autom Softw Eng, vol. 22, no. 2, pp. 241–288, Jun. 2015, doi: 10.1007/s10515-014-0144-4.