Logo PTI Logo FedCSIS

Proceedings of the 18th Conference on Computer Science and Intelligence Systems

Annals of Computer Science and Information Systems, Volume 35

Investigating the Effect of Partial and Real-Time Feedback in INMAP Code-To-Architecture Mapping

,

DOI: http://dx.doi.org/10.15439/2023F5070

Citation: Proceedings of the 18th Conference on Computer Science and Intelligence Systems, M. Ganzha, L. Maciaszek, M. Paprzycki, D. Ślęzak (eds). ACSIS, Vol. 35, pages 749758 ()

Full text

Abstract. InMap is an interactive and iterative information retrieval-based automated mapping algorithm that produces code-to-architecture mapping recommendations. In its original form, InMap requires an architect to provide feedback for each code-to-architecture mapping recommendation in a given set produced (complete feedback). However, architects may delay/defer deciding on some of the mapping recommendations provided. This leads us to ask, how would InMap perform if only a subset of the recommendations provided (partial feedback) or only a single recommendation (real-time feedback) is reviewed by the architect? Through carefully designed mapping experiments, we show that an architect giving partial or real-time feedback does not harm the recall and precision of the recommendations produced by InMap. On the contrary, we observed from the results of the systems tested a net increase of 2-5\% (depending on the approach). This shows that in addition to InMap's original complete feedback approach, the two new approaches of collecting feedback presented in this paper, i.e. partial and real-time, create flexibility in how software architecture consistency checking tool developers may choose to collect mapping feedback and how architects may opt-to provide feedback, with no harm to the recall and precision of the results.

References

  1. N. Ali et al, “Architecture Consistency: State of the Practice, Challenges and Requirements,” in Empirical Software Engineering, 23(1), 2018, pp. 224–258, https://doi.org/10.1007/s10664-017-9542-0
  2. M. Bauer, M. Trifu, “Architecture-Aware Adaptive Clustering of OO Systems,” Proceedings – 8th European Conference on Software Maintenance and Reengineering, 2004, pp. 3–14, https://doi.org/10.1109/CSMR.2004.1281401
  3. R.A. Bittencourt et al, “Improving Automated Mapping in Reflexion Models Using Information Retrieval Techniques,” Proceedings – Working Conference on Reverse Engineering, WCRE, 2010, pp. 63–172, http://dx.doi.org/10.1109/WCRE.2010.26
  4. A. Christl et al, “Automated Clustering to Support the Reflexion Method,” in Information and Software Technology, 49(3), 2007, pp. 255–274, https://doi.org/10.1016/j.infsof.2006.10.015
  5. A. Christl et al, “Equipping the Reflexion Method with Automated Clustering,” 12th Working Conference on Reverse Engineering, 2005, https://doi.org/10.1109/WCRE.2005.17
  6. F.A. Fontana et al, “Tool Support for Evaluating Architectural Debt of an Existing System: An Experience Report,” Proceedings of the 31st Annual ACM Symposium on Applied Computing, 2016, pp. 1347–1349, http://dx.doi.org/10.1145/2851613.2851963
  7. N. Medvidovic, R.N. Taylor, “Software Architecture: Foundations, Theory, and Practice”, ACM/IEEE 32nd International Conference on Software Engineering, 2010, pp. 471–472, https://doi.org/10.1145/1810295.1810435
  8. J. Knodel, “Sustainable Structures in Software Implementations by Live Compliance Checking,” Fraunhofer-Verl, Stuttgart, 2011.
  9. J. Knodel, D. Popescu, “A Comparison of Static Architecture Compliance Checking Approaches,” Proceedings of the 6th Working IEEE/IFIP Conference on Software Architecture, 2007, https://doi.org/10.1109/WICSA.2007.1
  10. G.C. Murphy et al, “Software Reflexion Models: Bridging the Gap between Source and High-Level Models,” IEEE Transactions on Software Engineering, 27(4), 2001, pp. 364–380, https://doi.org/10.1109/32.917525
  11. S.M. Naim et al, “Reconstructing and Evolving Software Architectures Using a Coordinated Clustering Framework”, in Automated Software Engineering, 24(3), 2017, pp. 543–572, https://doi.org/10.1007/s10515-017-0211-8
  12. T. Olsson et al, “Semi-Automatic Mapping of Source Code using Naive Bayes,” Proceedings of the 13th European Conference on Software Architecture, 2019, pp. 209–216, https://doi.org/10.1145/3344948.3344984
  13. T. Olsson et al, “Mapping Source Code to Modular Architectures Using Keywords,” Proceedings of European Conference on Software Architecture ECSA, Lecture Notes in Computer Science, 13365, 2022, pp. 65-85, https://doi.org/10.1007/978-3-031-15116-3_4
  14. L. Passos et al, “Static Architecture-Conformance Checking: An Illustrative Overview,” in IEEE Software, 2010, 27(5), pp. 82–89, https://doi.org/10.1109/MS.2009.117
  15. D.E. Perry, A.L. Wolf, “Foundations for the Study of Software Architecture,” in SIGSOFT Softw. Eng. Notes. 17, 4, 1992, pp. 40–5, https://doi.org/10.1145/141874.141884
  16. J. Rosik et al, “Assessing Architectural Drift in Commercial Software Development: A Case Study,” in Software Practice and Experience, 41, 2011, pp. 63–86, https://doi.org/10.1002/spe.999
  17. L. de Silva, D. Balasubramaniam, “Controlling Software Architecture Erosion: A Survey,” in Journal of Systems and Software, 85(1), 2012, pp. 132–151, https://doi.org/10.1016/j.jss.2011.07.036
  18. Z.T. Sinkala, S. Herold, “InMap: Automated Interactive Code-to-Architecture Mapping,” Proceedings of the ACM Symposium on Applied Computing, 2021, pp. 1439–1442, https://doi.org/10.1145/3412841.3442124
  19. Z.T. Sinkala, S. Herold, “InMap: Automated Interactive Code-to-Architecture Mapping Recommendations,” Proceedings – IEEE 18th International Conference on Software Architecture, 2021, pp. 173–183, https://doi.org/10.1109/ICSA51549.2021.00024
  20. Z.T. Sinkala, S. Herold, “Towards Hierarchical Code-to-Architecture Mapping Using Information Retrieval,” Companion Proceedings – IEEE 15th European Conference on Software Architecture, 2021.
  21. Z.T. Sinkala, S. Herold, “Hierarchical Code-to-Architecture Mapping,” in ECSA 2021 Tracks and Workshops – Revised Selected Papers, 2022, https://doi.org/10.1007/978-3-031-15116-3_5
  22. Z.T. Sinkala, S. Herold, “An Integrated Approach to Package and Class Code-to-Architecture Mapping Using InMap,” Proceedings – IEEE 20th International Conference on Software Architecture, 2023, https://doi.org/10.1109/ICSA56044.2023.00023
  23. T.A. Wiggerts, “Using Clustering Algorithms in Legacy Systems Remodularization,” Proceedings of the 4th Working Conference on Reverse Engineering, 1997, pp. 33–43, https://doi.org/10.1109/WCRE.1997.624574