Nothing Special   »   [go: up one dir, main page]

Skip to main content

Advertisement

Log in

Towards semantically enhanced detection of emerging quality-related concerns in source code

  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

Quality concerns defined by ISO/IEC 9126 that focus on the quality aspect of the product, such as efficiency, usability, and security, among other, tend to be neglected until they are retrofitted later at the implementation level. This retrofitted strategy poses a major challenge and hinders developers from efficiently detecting and understanding quality concerns because they are frequently implemented with no particular structure and are bound to low cohesion (qualities scattered across the codebase). To address these problems, we propose an alternative approach for detecting scattered quality-related content in the codebase. We introduce SoftQualDetector, a lightweight framework that combines three unsupervised techniques for extracting a rich set of logical text units from the code from the context of semantics, importance, and textual features to detect quality-related classes and generate short keyword summaries pertaining to quality-related classes. SoftQualDetector also provides a 3D visualization for monitoring automated detected quality-related concerns across the codebase so that developers can easily locate the emerging quality concerns and the associated classes. Our evaluation of 1248 annotated Java classes shows that SoftQualDetector outperforms several state-of-the-art methods.

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

Similar content being viewed by others

Data availability

We have used the dataset from existing publications Rath et al. (2017). However, we have expanded the data with human annotations and the visualization source: https://doi.org/10.5281/zenodo.7489950

References

  • Abran, A., Khelifi, A., Suryn, W., & Seffah, A. (2003). Usability Meanings and Interpretations in ISO Standards. Software Quality Journal, 11(4), 325–338.

    Article  Google Scholar 

  • Agrawal, A., Fu, W., & Menzies, T. (2018). What is Wrong with Topic Modeling? And How to Fix it Using Search-based Software Engineering, Information and Software Technology, 98, 74–88.

    Google Scholar 

  • Ahmad, A., Feng, C., Li, K., Asim, S. M., & Sun, T. (2019). Toward Empirically Investigating Non-Functional Requirements of IOS Developers on Stack Overflow. IEEE Access, 7, 61145–61169.

  • Aho, A. V., Lam M. S., Sethi, R., & Ullman, J. D. (2007). Compilers: Principles, Techniques, & Tools. Pearson Education India.

  • Allamanis, M., Tarlow, D., Gordon, A., & Wei, Y. (2015). Bimodal Modelling of Source Code and Natural Language. In International Conference on Machine Learning, pp. 2123–2132.

  • Allamanis, M., Peng, H., & Sutton, C. (2016). A Convolutional Attention Network for Extreme Summarization of Source Code. In International Conference on Machine Learning, pp. 2091–2100.

  • Allamanis, M., Brockschmidt, M., & Khademi, M. (2017). Learning to Represent Programs with Graphs, arXiv preprint arXiv:1711.00740

  • Allamanis, M., Barr, E. T., Devanbu, P., & Sutton, C. (2018). A Survey of Machine Learning for Big Code and Naturalness. ACM Computing Surveys, 51(4), 81.

    Google Scholar 

  • Alshamari, M. (2016). A Review of Gaps between Usability and Security/Privacy. International Journal of Communications, Network and System Sciences, 9(10), 413–429.

    Article  Google Scholar 

  • Ameller, D., & Franch, X. (2010). How do Software Architects Consider Non-Functional Requirements: A Survey, in International Working Conference on Requirements Engineering: Foundation for Software Quality. Springer, pp. 276–277.

  • Ameller, D., Ayala, C., Cabot, J., & Franch, X. (2012a). How do Software Architects Consider Non-Functional Requirements: An Exploratory Study, in 2012 20th IEEE International Requirements Engineering Conference (RE). IEEE, pp. 41–50.

  • Ameller, D., Ayala, C., Cabot, J., & Franch, X., (2012b). Non-Functional Requirements in Architectural Decision Making. IEEE Software, 30(2), 61–67.

  • Ameller, D., Franch, X., Gómez, C., Martínez-Fernández, S., Araújo, J., Biffl, S., Cabot, J., Cortellessa, V., Fernández, D. M., Moreira, A., et al. (2019). Dealing with Non-Functional Requirements in Model-Driven Development: A Survey. IEEE Transactions on Software Engineering, 47(4), 818–835.

    Article  Google Scholar 

  • Anquetil, N., & Lethbridge, T. (1998). Assessing the Relevance of Identifier Names in a Legacy Software System. In Proceedings of the 1998 Conference of the Centre for Advanced Studies on Collaborative Research. IBM Press, p.4.

  • Bavota, G., Gethers, M., Oliveto, R., Poshyvanyk, D., & Lucia, A. d. (2014). Improving Software Modularization via Automated Analysis of Latent Topics and Dependencies. ACM Transactions on Software Engineering and Methodology (TOSEM), 23(1), 4.

  • Baysal, O., & Malton, A. J. (2007). Correlating Social Interactions to Release History during Software Evolution. In Mining Software Repositories, 2007. ICSE Workshops MSR’07. Proceeding of the Fourth International Working Conference on Software Engineering (ICSE). IEEE, pp. 7–7.

  • Biggerstaff, T. J., Mitbander, B. G., & Webster, D. (1993). The Concept Assignment Problem in Program Understanding. In 15th International Conference on Software Engineering. IEEE Computer Society Press, pp. 482–498.

  • Binkley, D., Hearn, M., & Lawrie, D. (2011). Improving Identifier Informativeness using Part of Speech Information. In 8th International Conference on Mining Software Repositories (MSR), pp. 203–206.

  • Blanco, R., & Lioma, C. (2012). Graph-Based Term Weighting for Information Retrieval. Information Retrieval, 15(1), 54–92.

    Article  Google Scholar 

  • Boehm, B. W., Brown, J. R., & Lipow, M. (1976). Quantitative Evaluation of Software Quality. In Proceedings of the 2nd International Conference on Software Engineering, pp. 592–605.

  • Bordoloi, M., Chatterjee, P. C., Biswas, S. K., & Purkayastha, B. (2020). Keyword Extraction using Supervised Cumulative TextRank. Multimedia Tools and Applications, 79(41), 31467–31496.

  • Braubach, L., Jander, K., & Pokahr, A. (2014). A Middleware for Managing Non-Functional Requirements in Cloud Paas. In 2014 International Conference on Cloud and Autonomic Computing. IEEE, pp. 83–92.

  • Brockschmidt, M., Allamanis, M., Gaunt, A. L., & Polozov, O. (2018). Generative Code Modeling with Graphs, arXiv preprint arXiv:1805.08490

  • Burges, C. J. (2010). From Ranknet to Lambdarank to Lambdamart: An Overview. Learning, 11(23–581), 81.

    Google Scholar 

  • Burges, C. J., Ragno, R., & Le, Q. V. (2007). Learning to Rank with Nonsmooth Cost Functions. In Advances in Neural Information Processing Systems, pp. 193–200.

  • Buse, R. P., & Weimer, W. R. (2008). Automatic Documentation Inference for Exceptions. In Proceedings of the 2008 International Symposium on Software Testing and Analysis. ACM, pp. 273–282.

  • Buse, R. P. L., & Weimer, W. R. (2010). Automatically Documenting Program Changes. In IEEE/ACM International Conference on Automated Software Engineering (ASE). ACM, pp. 33–42.

  • Campos, R., Mangaravite, V., Pasquali, A., Jorge, A., Nunes, C., & Jatowt, A. (2020). YAKE! Keyword Extraction from Single Documents using Multiple Local Features. Information Sciences, 509, 257–289.

  • Cartwright, M. (2001). Book Review: Experimentation in Software Engineering: An Introduction. By Claes Wohlin, Per Runeson, Martin Höst, Magnus C. Ohlsson, Björn Regnell and Anders Wesslén. Kluwer Academic Publishers, 1999, ISBN 0-7923-8682-5. Software Testing, Verification and Reliability, 11(3), 198–199.

  • Catolino, G., Palomba, F., Zaidman, A., & Ferrucci, F. (2019). Not all Bugs are the Same: Understanding, Characterizing, and Classifying Bug Types. Journal of Systems and Software, 152, 165–181.

    Article  Google Scholar 

  • Chen, H. -H., & Ku, L. -W. (2002). An NLP and IR Approach to Topic Detection. In Topic Detection and Tracking. Springer, pp. 243–264.

  • Chiticariu, L., Li, Y., & Reiss, F. (2013). Rule-Based Information Extraction is Dead! Long Live Rule-Based Information Extraction Systems. In Proceedings of the 2013 Conference on Empirical Methods in Natural Language Processing, pp. 827–832.

  • Chung, L., & Nixon, B. A. (1995). Dealing with Non-Functional Requirements: Three Experimental Studies of a Process-Oriented Approach. In 17th International Conference on Software Engineering. IEEE, pp. 25–25.

  • Cortés-Coy, L. F., Linares-Vásquez, M., Aponte, J., & Poshyvanyk, D. (2014). On Automatically Generating Commit Messages via Summarization of Source Code Changes. In 14th International Working Conference on Source Code Analysis and Manipulation (SCAM). IEEE, pp. 275–284.

  • Daneva, M., Buglione, L., & Herrmann, A. (2013). Software Architects’ Experiences of Quality Requirements: What We Know and What We Do Not Know? In International Working Conference on Requirements Engineering: Foundation for Software Quality. Springer, pp. 1–17.

  • Davis, A. M. (1993). Software Requirements: Objects, Functions, and States. Prentice-Hall, Inc.

  • Deissenboeck, F., & Pizka, M. (2006). Concise and Consistent Naming. Software Quality Journal, 14(3), 261–282.

    Article  Google Scholar 

  • Dela Torre, F., & Kanade, T. (2005). Multimodal Oriented Discriminant Analysis. In Proceedings of the 22nd International Conference on Machine learning, pp. 177–184.

  • Eick, S. G., Graves, T. L., Karr, A. F., Marron, J. S., & Mockus, A. (2001). Does Code Decay? Assessing the Evidence from Change Management Data, IEEE Transactions on Software Engineering, 27(1), 1–12.

    Article  Google Scholar 

  • Egyed, A., & Grünbacher, P. (2003). Towards Understanding Implications of Trace Dependencies among Quality Requirements. In 2nd International Workshop Traceability in Emerging Forms of Software Engineering.

  • Egyed, A., & Grunbacher, P. (2004). Identifying Requirements Conflicts and Cooperation: How Quality Attributes and Automated Traceability Can Help. IEEE Software, 21(6), 50–58.

    Article  Google Scholar 

  • Etikan, I., & Bala, K. (2017). Sampling and Sampling Methods. Biometrics, Biostatistics International Journal, 5(6).

  • Falessi, D., Briand, L. C., Cantone, G., Capilla, R., & Kruchten, P. (2013). The Value of Design Rationale Information. ACM Transactions on Software Engineering and Methodology (TOSEM), 22(3), 1–32.

    Article  Google Scholar 

  • Fan, X., Yue, Y., Sarkar, P., & Wang, Y. R. (2020). On Hyperparameter Tuning in General Clustering Problems. In International Conference on Machine Learning. PMLR, pp. 2996–3007.

  • Fellbaum, C., et al. (1998). Wordnet: An Electronic Lexical Database MIT Press. Cambridge: Massachusetts.

    Book  MATH  Google Scholar 

  • Feurer, M., & Hutter, F. (2019). Hyperparameter Optimization, in Automated Machine Learning (pp. 3–33). Cham: Springer.

    Book  Google Scholar 

  • Figueiredo, E., Galvão, I., Khan, S. S., Garcia, A., Sant’Anna, C., Pimentel, A., Medeiros, A. L., Fernandes, L., Batista, T., Ribeiro, R., et al. (2009). Detecting Architecture Instabilities with Concern Traces: An Exploratory Study. In 2009 Joint International Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture. IEEE, pp. 261–264.

  • Fleiss, J. L. (1971). Measuring Nominal Scale Agreement among Many Raters. Psychological Bulletin, 76(5), 378.

    Article  Google Scholar 

  • Fowkes, J., Chanthirasegaran, P., Ranca, R., Allamanis, M., Lapata, M., & Sutton, C. (2016). TASSAL: Autofolding for Source Code Summarization. In IEEE/ACM International Conference on Software Engineering Companion (ICSE-C). IEEE, pp. 649–652.

  • Fowkes, J., Chanthirasegaran, P., Ranca, R., Allamanis, M., Lapata, M., & Sutton, C. (2017). Autofolding for Source Code Summarization. IEEE Transactions on Software Engineering, 43(12), 1095–1109.

    Article  Google Scholar 

  • Ghaleb, T. A., Alturki, M. A., & Aljasser, K. (2018). Program Comprehension through Reverse-Engineered Sequence Diagrams: A Systematic Review. Journal of Software: Evolution and Process, 30(11), e1965.

  • Granka, L. A., Joachims, T., & Gay, G. (2004). Eye-Tracking Analysis of User Behavior in WWW Search. In Proceedings of the 27th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, pp. 478–479.

  • Grant, S., Cordy, J. R., & Skillicorn, D. (2008). Automated Concept Location using Independent Component Analysis. In 15th Working International Conference on Reverse Engineering. IEEE, pp. 138–142.

  • GundagathiManjunath, S. (2011). Towards Comment Generation for MPI Programs, Ph.D. dissertation, University of Delaware.

  • Gupta, S., Malik, S., Pollock, L., & Vijay-Shanker, K. (2013). Part-of-Speech Tagging of Program Identifiers for Improved Text-Based Software Engineering Tools. In 2013 21st International Conference on Program Comprehension (ICPC). IEEE, pp. 3–12.

  • Haiduc, S., Aponte, J., Moreno, L., & Marcus, A. (2010). On the Use of Automated Text Summarization Techniques for Summarizing Source Code. In 17th Working Conference on Reverse Engineering (WCRE). IEEE, pp. 35–44.

  • Han, S., Wallace, D. R., & Miller, R. C. (2009). Code Completion from Abbreviated Input. In 24th International Conference Automated Software Engineering (ASE). IEEE, pp. 332–343.

  • Herzig, K., Just, S., & Zeller, A. (2013). It’s Not a Bug, It’s a Feature: How Misclassification Impacts Bug Prediction. In 2013 35th International Conference on Software Engineering (ICSE). IEEE, pp. 392–401.

  • Hill, E., Pollock, L., & Vijay-Shanker, K. (2009). Automatically Capturing Source Code Context of NL-Queries for Software Maintenance and Reuse. In Proceedings of the 31st International Conference on Software Engineering. IEEE Computer Society, pp. 232–242.

  • Hindle, A., Godfrey, M. W., & Holt, R. C. (2009). What’s Hot and What’s Not: Windowed Developer Topic Analysis, in 2009 IEEE International Conference on Software Maintenance. IEEE, pp. 339–348.

  • Hindle, A., Ernst, N. A., Godfrey, M. W., & Mylopoulos, J. (2011). Automated Topic Naming to Support Cross-Project Analysis of Software Maintenance Activities. In 8th Working Conference on Mining Software Repositories. ACM, pp. 163–172.

  • Hoskinson, C. (2011). Army’s Faulty Computer System Hurts Operations. Politico.

  • Howard, M. J., Gupta, S., Pollock, L., & Vijay-Shanker, K. (2013). Automatically Mining Software-Based, Semantically-Similar Words from Comment-Code Mappings. In 10th Working Conference on Mining Software Repositories (MSR). IEEE Press, pp. 377–386.

  • Jelodar, H., Wang, Y., Yuan, C., Feng, X., Jiang, X., Li, Y., & Zhao, L. (2019). Latent Dirichlet Allocation (LDA) and Topic Modeling: Models, Applications, A Survey, Multimedia Tools and Applications, 78(11), 15169–15211.

  • Jha, N., & Mahmoud, A. (2019). Mining Non-Functional Requirements from App Store Reviews. Empirical Software Engineering, 24(6), 3659–3695.

    Article  Google Scholar 

  • Jin, W., & Srihari, R. K. (2007). Graph-Based Text Representation and Knowledge Discovery. In Proceedings of the 2007 ACM Symposium on Applied Computing, pp. 807–811.

  • Kawaguchi, S., Garg, P. K., Matsushita, M., & Inoue, K. (2006). Mudablue: An Automatic Categorization System for Open Source Repositories. Journal of Systems and Software, 79(7), 939–953.

    Article  Google Scholar 

  • Khanzode, K. C. A., & Sarode, R. D. (2020). Advantages and Disadvantages of Artificial Intelligence and Machine Learning: A Literature Review. International Journal of Library & Information Science (IJLIS), 9(1), 3.

    Google Scholar 

  • Koch, P., Golovidov, O., Gardner, S., Wujek, B., Griffin, J., & Xu, Y. (2018). Autotune: A Derivative-Free Optimization Framework for Hyperparameter Tuning. In Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, pp. 443–452.

  • Krasniqi, R. (2020). Detecting Emerging Quality-Related Concerns across Evolving Software Artifacts, Master’s thesis, University Of Notre Dame.

  • Krasniqi, R., & Agrawal, A. (2021). Analyzing and Detecting Emerging Quality-Related Concerns across OSS Defect Report Summaries. In 2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, pp. 12–23.

  • Krasniqi, R., & Cleland-Huang, J. (2020). Enhancing Source Code Refactoring Detection with Explanations from Commit Messages, in 27th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, pp. 512–516.

  • Krasniqi, R. (2021a). Extractive Summarization of Related Bug-fixing Comments in Support of Bug Repair, in 2021 IEEE/ACM International Workshop on Automated Program Repair (APR). IEEE, pp. 31–32.

  • Krasniqi, R. (2021b). Recommending Bug-fixing Comments from Issue Tracking Discussions in Support of Bug Repair, in 45th Annual Computers, Software, and Applications Conference (COMPSAC). IEEE, pp. 812–823.

  • Kuhn, A., Ducasse, S., & Gírba, T. (2007). Semantic Clustering: Identifying Topics in Source Code. Information and Software Technology, 49(3), 230–243.

    Article  Google Scholar 

  • Levenshtein, V.I., et al. (1966). Binary Codes Capable of Correcting Deletions, Insertions, and Reversals. In Soviet, 10, 707–710. Soviet.

  • L’heureux, A., Grolinger, K., Elyamany, H. F., & Capretz, M. A. (2017). Machine Learning with Big Data: Challenges and Approaches. IEEE Access, 5, 7776–7797.

  • Lidwell, W., Holden, K., & Butler, J. (2010). Universal Principles of Design, Revised and Updated: 125 Ways to Enhance Usability, Influence Perception. Increase Appeal: Make Better Design Decisions, and Teach through Design. Rockport Pub.

    Google Scholar 

  • Linares-Vásquez, M., Cortés-Coy, L. F., Aponte, J., & Poshyvanyk, D. (2015). Changescribe: A Tool for Automatically Generating Commit Messages. In Proceedings of the 37th International Conference on Software Engineering. IEEE, pp. 709–712.

  • Linstead, E., Rigor, P., Bajracharya, S., Lopes, C., & Baldi, P. (2007). Mining Concepts from Code with Probabilistic Topic Models. In 22nd IEEE/ACM international conference on Automated software engineering (ASE). ACM, pp. 461–464.

  • Linstead, E., Lopes, C., & Baldi, P. (2008). An Application of Latent Dirichlet Allocation to Analyzing Software Evolution. In 7th International Conference on Machine Learning and Applications, (ICMLA). IEEE, pp. 813–818.

  • Lu, M., & Liang, P. (2017). Automatic Classification of Non-Functional Requirements from Augmented App User Reviews. In 21st International Conference on Evaluation and Assessment in Software Engineering, pp. 344–353.

  • Lukins, S. K., Kraft, N. A., & Etzkorn, L. H. (2010). Bug Localization using Latent Dirichlet Allocation. Information and Software Technology, 52(9), 972–990.

    Article  Google Scholar 

  • Lutowski, R. (2016). Software Requirements: Encapsulation, Quality, and Reuse. CRC Press.

    Book  MATH  Google Scholar 

  • Maalej, W., & Nabil, H. (2015). Bug Report, Feature Request, or Simply Praise? On Automatically Classifying App Reviews. In 23rd International Requirements Engineering Conference (RE). IEEE, pp. 116–125.

  • Mairiza, D., & Zowghi, D. (2010a). Constructing a Catalogue of Conflicts among Non-Functional Requirements. In International Conference on Evaluation of Novel Approaches to Software Engineering. Springer, pp. 31–44.

  • Mairiza, D., & Zowghi, D. (2010b). An Ontological Framework to Manage the Relative Conflicts between Security and Usability Requirements. In 3rd International Workshop on Managing Requirements Knowledge, pp. 1–6.

  • Mairiza, D., Zowghi, D., & Gervasi, V. (2013). Conflict Characterization and Analysis of Non-Functional Requirements: An Experimental Approach. In 12th International Conference on Intelligent Software Methodologies, Tools and Techniques (SoMeT). IEEE, pp. 83–91.

  • Marcus, A., Sergeyev, A., Rajlich, V., & Maletic, J. I. (2004). An Information Retrieval Approach to Concept Location in Source Code. In 11th Working Conference on Reverse Engineering. IEEE, pp. 214–223.

  • Maskeri, G., Sarkar, S., & Heafield, K. (2008). Mining Business Topics in Source Code using Latent Dirichlet Allocation. In 1st India Software Engineering Conference. ACM, pp. 113–120.

  • McCall, J. A., Richards, P. K., & Walters, G. F. (1977). Factors in Software Quality: Preliminary Handbook on Software Quality for An Acquisition Manager. GE, 1, 3.

    Google Scholar 

  • Meditskos, G., & Bassiliades, N. (2009). Rule-based Owl Ontology Reasoning Systems: Implementations, Strengths, and Weaknesses, in Handbook of Research on Emerging Rule-Based Languages and Technologies: Open Solutions and Approaches. IGI, pp. 124–148.

  • Mihalcea, R., & Tarau, P. (2004). TextRank: Bringing Order into Text. In Conference on Empirical Methods in Natural Language Processing.

  • Mizuyama, H., Yamashita, K., Hitomi, K., & Anse, M. (2013). A Prototype Crowdsourcing Approach for Document Summarization Service. In IFIP International Conference on Advances in Production Management Systems. Springer, pp. 435–442.

  • Mo, Y., Kontonatsios, G., & Ananiadou, S. (2015). Supporting Systematic Reviews using LDA-Based Document Representations. Systematic Reviews, 4(1), 1–12.

    Article  Google Scholar 

  • Moreno, L., Bavota, G., DiPenta, M., Oliveto, R., Marcus, A., & Canfora, G. (2014). Automatic Generation of Release Notes. In 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM, pp. 484–495.

  • Nazar, N., Jiang, H., Gao, G., Zhang, T., Li, X., & Ren, Z. (2016). Source Code Fragment Summarization with Small-Scale Crowdsourcing Based Features. Frontiers of Computer Science, 10(3), 504–517.

    Article  Google Scholar 

  • Nuseibeh, B. (2001). Weaving Together Requirements and Architectures. Computer, 34(3), 115–119.

    Article  Google Scholar 

  • Ohba, M., & Gondow, K. (2005). Toward Mining Concept Keywords from Identifiers in Large Software Projects. In ACM SIGSOFT Software Engineering Notes, 30, 1–5. ACM.

  • Omar, M., On, B. -W., Lee, I., Choi, G. S., & Topics, L. D. A. (2015). Representation and Evaluation. Journal of Information Science, 41(5), 662–675.

    Article  Google Scholar 

  • Ortu, M., Destefanis, G., Adams, B., Murgia, A., Marchesi, M., & Tonelli, R. (2015). The JIRA Repository Dataset: Understanding Social Aspects of Software Development. In Proceedings of the 11th International Conference on Predictive Models and Data Analytics in Software Engineering, pp. 1–4.

  • Page, L., Brin, S., Motwani, R., & Winograd, T. (1999). The PageRank Citation Ranking: Bringing Order to the Web. Stanford InfoLab: Tech. Rep.

    Google Scholar 

  • Paleyes, A., Urma, R. -G., & Lawrence, N. D. (2020). Challenges in Deploying Machine Learning: A Survey of Case Studies. ACM Computing Surveys (CSUR).

  • Panichella, S. (2018). Summarization Techniques for Code, Change, Testing, and User Feedback, in 2018 IEEE Workshop on Validation, Analysis and Evolution of Software Tests (VST). IEEE, pp. 1–5.

  • Panichella, A., Dit, B., Oliveto, R., DiPenta, M., Poshynanyk, D., & DeLucia, A. (2013). How to Effectively Use Topic Models for Software Engineering Tasks? An Approach Based on Genetic Algorithms. In International Conference on Software Engineering. IEEE, pp. 522–531.

  • Paucar, L. H. G., & Bencomo, N. (2016). The Reassessment of Preferences of Non-Functional Requirements for Better Informed Decision-Making in Self-Adaptation, in 2016 IEEE 24th International Requirements Engineering Conference Workshops (REW). IEEE, pp. 32–38.

  • Poshyvanyk, D., & Marcus, A. (2007). Combining Formal Concept Analysis with Information Retrieval for Concept Location in Source Code, in null. IEEE, pp. 37–48.

  • Poshyvanyk, D., Gueheneuc, Y. -G., Marcus, A., Antoniol, G., & Rajlich, V. (2007). Feature Location using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval. IEEE Transactions on Software Engineering, 33(6).

  • Rajput, S., Gahoi, A., Reddy, M., & Sharma, D. M. (2020). N-Grams TextRank: A Novel Domain Keyword Extraction Technique. In 17th International Conference on Natural Language Processing, p.9.

  • Rastkar, S., & Murphy, G. C. (2013). Why Did this Code Change? In 35th International Conference on Software Engineering (ICSE). IEEE, pp. 1193–1196.

  • Rath, M., Rempel, P., & Mäder, P. (2017). The Ilmseven Dataset, in 2017 IEEE 25th International Requirements Engineering Conference (RE). IEEE, pp. 516–519.

  • Rath, M., Tomova, M. T., & Mäder, P. (2019). Selecting Open Source Projects for Traceability Case Studies. In International Working Conference on Requirements Engineering: Foundation for Software Quality. Springer, pp. 229–242.

  • Riaz, M., Sulayman, M., & Naqvi, H. (2009). Architectural Decay during Continuous Software Evolution and Impacts of Design for Changes on Software Architecture. In International Conference on Software Engineering and Applications. Springer, pp. 119–126.

  • Robertson, S., & Robertson, J. (2012). Mastering the Requirements Process: Getting Requirements Right. Addison-wesley.

  • Robillard, M. P., & Murphy, G. C. (2007). Representing Concerns in Source Code. ACM Transactions on Software Engineering and Methodology, 16(1):3–es.

  • Sadana, V., & Liu, X. F. (2007). Analysis of Conflicts among Non-Functional Requirements using Integrated Analysis of Functional and Non-Functional Requirements. In 31st International Computer Software and Applications Conference, 1, 215–218. IEEE.

  • Salton, G., & Buckley, C. (1988). Term-Weighting Approaches in Automatic Text Retrieval. Information Processing and Management, 24(5), 513–523.

    Article  Google Scholar 

  • Savage, T., Dit, B., Gethers, M., & Poshyvanyk, D. (2010). Topic XP: Exploring Topics in Source Code using Latent Dirichlet Allocation, in International Conference on Software Maintenance. IEEE, pp. 1–6.

  • Shah, U., Patel, S., & Jinwala, D. C. (2021). Detecting Intra-Conflicts in Non-Functional Requirements. International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, 29(03), 435–461.

    Article  MathSciNet  Google Scholar 

  • Shahbazian, A., Lee, Y. K., Le, D., Brun, Y., & Medvidovic, N. (2018). Recovering Architectural Design Decisions. In 2018 IEEE International Conference on Software Architecture (ICSA). IEEE, pp. 95–9509.

  • Sharma, P., & Dhir, S. (2016). Functional & Non-functional Requirement Elicitation and Risk Assessment for Agile Processes. International Journal of Theory and Applications, 9(18), 9005–9010.

    Google Scholar 

  • Siegmund, J., & Schumann, J. (2015). Confounding Parameters on Program Comprehension: A Literature Survey. Empirical Software Engineering, 20(4), 1159–1192.

    Article  Google Scholar 

  • Souza, G., & Castro, J. (2004). Improving the Separation of Non-Functional Concerns in Requirements Artifacts. In 12th IEEE International Requirements Engineering Conference. Citeseer.

  • Sridhara, G., Hill, E., Muppaneni, D., Pollock, L., & Vijay-Shanker, K. (2010). Towards Automatically Generating Summary Comments for Java Methods. In IEEE/ACM International Conference on Automated Software Engineering. ACM, pp. 43–52.

  • Sridhara, G., Pollock, L., & Vijay-Shanker, K. (2011a). Generating Parameter Comments and Integrating with Method Summaries. In 19th International Conference on Program Comprehension (ICPC). IEEE, pp. 71–80.

  • Sridhara, G., Pollock, L., & Vijay-Shanker, K. (2011b). Automatically Detecting and Describing High Level Actions within Methods, in 33rd International Conference on Software Engineering. ACM, pp. 101–110.

  • Sulír, M. (2015). Program Comprehension: A Short Literature Review. In SCYR 2015: 15th Scientific Conference of Young Researchers, pp. 283–286.

  • Sullivan, G. M., & Feinn, R. (2012). Using Effect Size-or Why the P Value is Not Enough. Journal of Graduate Medical Education, 4(3), 279–282.

    Article  Google Scholar 

  • Tabassum, M. R., Siddik, M. S., Shoyaib, M., & Khaled, S. M. (2014). Determining Interdependency among Non-Functional Requirements to Reduce Conflict. In International Conference on Informatics, Electronics and Vision (ICIEV). IEEE, pp. 1–6.

  • Taherdoost, H. (2016). Sampling Methods in Research Methodology. How to Choose a Sampling Technique for Research: How to Choose a Sampling Technique for Research.

    Google Scholar 

  • Thomas, S. W., Adams, B., Hassan, A. E., & Blostein, D. (2010). Validating the use of Topic Models for Software Evolution. In 10th IEEE Working Conference on Source Code Analysis and Manipulation (SCAM). IEEE, pp. 55–64.

  • Trifu, M. (2008). Using Dataflow Information for Concern Identification in Object-Oriented Software Systems. In 12th European Conference on Software Maintenance and Reengineering. IEEE, pp. 193–202.

  • van der Ven, J. S., Jansen, A. G., Nijhuis, J. A., & Bosch, J. (2006). Design Decisions: The Bridge Between Rationale and Architecture. In Rationale Management in Software Engineering. Springer, pp. 329–348.

  • Vanciu, R., & Rajlich, V. (2010). Hidden Dependencies in Software Systems. In 2010 IEEE International Conference on Software Maintenance. IEEE, pp. 1–10.

  • Waltl, B., Bonczek, G., & Matthes, F. (2018). Rule-Based Information Extraction: Advantages, Limitations, and Perspectives. Jusletter IT (02 2018).

  • Wang, Y., Zhang, D., Yuan, Y., Liu, Q., & Yang, Y. (2018). Improvement of TF-IDF Algorithm Based on Knowledge Graph. In 16th International Conference on Software Engineering Research, Management and Applications. IEEE, pp. 19–24.

  • Wang, Z., Feng, Y., & Li, F. (2016). The Improvements of Text Rank for Domain-Specific Key Phrase Extraction. International Journal of Simulation Systems, Science & Technology, 17(20), 11–1.

    Google Scholar 

  • Wettel, R., & Lanza, M. (2007). Program Comprehension through Software Habitability. In 15th International Conference on Program Comprehension (ICPC). IEEE, pp. 231–240.

  • Wettel, R., & Lanza, M. (2008). Codecity: 3D Visualization of Large-Scale Software. In Companion Proceeding of the 30th International Conference on Software Engineering. ACM, pp. 921–922.

  • Wettel, R., Lanza, M., & Robbes, R. (2011). Software Systems as Cities: A Controlled Experiment. In 33rd International Conference on Software Engineering (ICSE). IEEE, pp. 551–560.

  • Wood, J., Tan, P., Wang, W., & Arnold, C. (2017). Source-LDA: Enhancing Probabilistic Topic Models using Prior Knowledge Sources, in 33rd International Conference on Data Engineering). IEEE, pp. 411–422.

  • Yang, J., & Tan, L. (2012). Inferring Semantically Related Words from Software Context. In 9th International Working Conference on Mining Software Repositories (MSR). IEEE, pp. 161–170.

  • Yao, L., Pengzhou, Z., & Chi, Z. (2019). Research on News Keyword Extraction Technology Based on TF-IDF and TextRank. In 18th International Conference on Computer and Information Science. IEEE, pp. 452–455.

  • Ye, X., Bunescu, R., & Liu, C. (2015). Mapping Bug Reports to Relevant Files: A Ranking Model. A Fine-Grained Benchmark, and Feature Evaluation, IEEE Transactions on Software Engineering, 42(4), 379–402.

    Google Scholar 

  • Ying, A. T., & Robillard, M. P. (2013). Code Fragment Summarization. In 9th Joint Meeting on Foundations of Software Engineering. ACM, pp. 655–658.

  • Yu, Z., & Rajlich, V. (2001). Hidden Dependencies in Program Comprehension and Change Propagation. In 9th International Workshop on Program Comprehension (IWPC). IEEE, pp. 293–299.

  • Zhang, S., Zhang, C., & Ernst, M. D. (2011). Automated Documentation Inference to Explain Failed Tests. In 26th International Conference on Automated Software Engineering (ASE). IEEE, pp. 63–72.

  • Zhang, X., & Wang, X. (2019). Tradeoff Analysis for Conflicting Software Non-Functional Requirements. IEEE Access, 7, 156463–156475.

  • Zhang, C., Wang, J., Zhou, Q., Xu, T., Tang, K., Gui, H., & Liu, F. (2022). A Survey of Automatic Source Code Summarization. Symmetry, 14(3), 471.

    Article  Google Scholar 

  • Zhao, F., Zhu, Y., Jin, H., & Yang, L. T. (2016). A Personalized Hashtag Recommendation Approach using LDA-based Topic Model in Microblog Environment. Future Generation Computer Systems, 65, 196–206.

    Article  Google Scholar 

  • Zhou, J., & Cui, X. (2019). Keyword Extraction Method Based on Word Vector and TextRank. Application Research of Computers, 36(5).

  • Zhu, Y., & Pan, M. (2019). Automatic Code Summarization: A Systematic Literature Review, arXiv preprint arXiv:1909.04352

  • Zou, J., Xu, L., Guo, W., Yan, M., Yang, D., & Zhang, X. (2015). Which Non-Functional Requirements Do Developers Focus On? An Empirical Study on Stack Overflow Using Topic Analysis, in 12th IEEE International Conference on Mining Software Repositories (MSR). IEEE, pp. 446–449.

  • Zou, J., Xu, L., Yang, M., Zhang, X., & Yang, D. (2017). Towards Comprehending the Non-functional Requirements through Developers’ Eyes: An Exploration of Stack Overflow using Topic Analysis. SE, 84, 19–32.

    Google Scholar 

Download references

Acknowledgements

The authors would like to thank senior software engineers who have spent a significant amount of time and intellectual effort for annotating the dataset used in the study.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Rrezarta Krasniqi.

Ethics declarations

Conflict of interest

The declare no competing interests.

Additional information

Publisher’s Note

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

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Krasniqi, R., Do, H. Towards semantically enhanced detection of emerging quality-related concerns in source code. Software Qual J 31, 865–915 (2023). https://doi.org/10.1007/s11219-023-09614-8

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-023-09614-8

Keywords

Navigation