Please use this identifier to cite or link to this item: https://open.uns.ac.rs/handle/123456789/20134
DC FieldValueLanguage
dc.contributor.authorRakić Gordana-
dc.contributor.authorTóth Melinda-
dc.contributor.authorBudimac Zoran-
dc.date.accessioned2020-12-13T14:25:38Z-
dc.date.available2020-12-13T14:25:38Z-
dc.date.issued2020-
dc.identifier.issn0950-5849-
dc.identifier.urihttps://open.uns.ac.rs/handle/123456789/20134-
dc.description.abstractContext: Software developers spend a significant amount of time on reading, comprehending, and debugging of source code. Numerous software metrics can give us awareness of incomprehensible functions or of flaws in their collaboration. Invocation chains, especially recursive ones, affect solution complexity, readability, and understandability. Even though decomposed and recursive solutions are characterized as short and clear in comparison with iterative ones, they hide the complexity of the observed problem and solution. As the collaboration between functions can strongly depend on context, difficulties are usually detected in debugging, testing or by static analysis, while metrics support is still very weak.Objective: We introduce a new complexity metric, called Overall Path Complexity (OPC), which is aware of (recursive) call chains in the observed source code. As invocations are basic collaboration mechanism and recursions are broadly accepted, the OPC metric is intended to be applicable independently on programming language and paradigm.Method: We propose four different versions of the OPC calculation algorithm and explore and discuss their suitability. We have validated proposed metrics based on a Framework specially designed for evaluation and validation of software complexity metrics and accordingly performed theoretical, empirical and practical validation. Practical validation was performed on toy examples and industrial cases (47012 LOCs, 2899 functions, and 758 recursive paths) written in Erlang.Result: Based on our analysis we selected the most suitable (of 4 proposed) OPC calculation formula, and showed that the new metric expresses advanced properties of the software in comparison with other available metrics that was confirmed by low correlation.Conclusion: We introduced the OPC metric calculated on the Overall Control Flow Graph as an extension of Cyclomatic Complexity by adding awareness of (recursive) invocations. The values of the new metric can lead us to find the problematic fragments of the code or of the execution paths.en
dc.language.isoen-
dc.relation.ispartofInformation and Software Technologyen
dc.sourceCRIS UNS-
dc.source.urihttp://cris.uns.ac.rs-
dc.subjectSoftware maintainabilitySource code readabilitySource code comprehensionDebuggingSource code complexityComplexity metricsen
dc.titleToward recursion aware complexity metricsen
dc.typeJournal/Magazine Articleen
dc.identifier.doi10.1016/j.infsof.2019.106203-
dc.identifier.urlhttps://www.cris.uns.ac.rs/record.jsf?recordId=113336&source=BEOPEN&language=enen
dc.relation.volume118-
dc.identifier.externalcrisreference(BISIS)113336-
item.grantfulltextnone-
item.fulltextNo Fulltext-
crisitem.author.deptPrirodno-matematički fakultet, Departman za matematiku i informatiku-
crisitem.author.deptPrirodno-matematički fakultet, Departman za matematiku i informatiku-
crisitem.author.orcid0000-0001-7366-5159-
crisitem.author.orcid0000-0001-5688-6320-
crisitem.author.parentorgPrirodno-matematički fakultet-
crisitem.author.parentorgPrirodno-matematički fakultet-
Appears in Collections:PMF Publikacije/Publications
Show simple item record

Page view(s)

30
Last Week
10
Last month
0
checked on May 10, 2024

Google ScholarTM

Check

Altmetric


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.