Background -- The software effort estimation research area aims to improve the accuracy of this estimation in software projects and activities. Aims -- This study describes the development and usage of a web application to collect the generated data from the Planning Poker estimation process and the analysis of the collected data to investigate the impact of revising previous estimates when conducting similar new estimates in a Planning Poker context. Method -- Software activities were estimated by UTFPR students, using Planning Poker, with and without revising previous similar activities, storing data regarding the decision-making process. And the collected data was used to investigate the impact that revising similar executed activities have in the software effort estimates' accuracy. Obtained Results -- The UTFPR students were divided into 14 groups. Eight of them showed accuracy increase in more than half of their estimates. Three of them had almost the same accuracy in more than half of their estimates. And only three of them had accuracy decrease in more than half of their estimates. Conclusion -- Reviewing the similar executed software activities, when using Planning Poker, led to more accurate software estimates in most cases, and, because of that, can improve the software development process.
{"title":"Influence of the Review of Executed Activities Utilizing Planning Poker","authors":"André Tissot, M. C. F. P. Emer, L. Bastos","doi":"10.1109/SBES.2015.26","DOIUrl":"https://doi.org/10.1109/SBES.2015.26","url":null,"abstract":"Background -- The software effort estimation research area aims to improve the accuracy of this estimation in software projects and activities. Aims -- This study describes the development and usage of a web application to collect the generated data from the Planning Poker estimation process and the analysis of the collected data to investigate the impact of revising previous estimates when conducting similar new estimates in a Planning Poker context. Method -- Software activities were estimated by UTFPR students, using Planning Poker, with and without revising previous similar activities, storing data regarding the decision-making process. And the collected data was used to investigate the impact that revising similar executed activities have in the software effort estimates' accuracy. Obtained Results -- The UTFPR students were divided into 14 groups. Eight of them showed accuracy increase in more than half of their estimates. Three of them had almost the same accuracy in more than half of their estimates. And only three of them had accuracy decrease in more than half of their estimates. Conclusion -- Reviewing the similar executed software activities, when using Planning Poker, led to more accurate software estimates in most cases, and, because of that, can improve the software development process.","PeriodicalId":329313,"journal":{"name":"2015 29th Brazilian Symposium on Software Engineering","volume":"40 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122768766","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The calculation of test coverage is often unfeasible for large-scale mining software repositories studies, as its computation requires building each project and executing their test suites. Because of that, we have been working on heuristics to calculate code coverage based on static code analysis. However, our results have been disappointing so far. In this paper, we present our approach to the problem and an evaluation involving 18 open source projects (around 2,700 classes) from the Apache Software Foundation. Results show that our approach provides acceptable results for only 50% of all classes. We believe researchers can learn from our mistakes and possibly derive a better approach. We advise researchers who need to use code coverage in their studies to select projects with a well-defined build system, such as Maven.
{"title":"Why Statically Estimate Code Coverage is So Hard? A Report of Lessons Learned","authors":"M. Aniche, G. Oliva, M. Gerosa","doi":"10.1109/SBES.2015.28","DOIUrl":"https://doi.org/10.1109/SBES.2015.28","url":null,"abstract":"The calculation of test coverage is often unfeasible for large-scale mining software repositories studies, as its computation requires building each project and executing their test suites. Because of that, we have been working on heuristics to calculate code coverage based on static code analysis. However, our results have been disappointing so far. In this paper, we present our approach to the problem and an evaluation involving 18 open source projects (around 2,700 classes) from the Apache Software Foundation. Results show that our approach provides acceptable results for only 50% of all classes. We believe researchers can learn from our mistakes and possibly derive a better approach. We advise researchers who need to use code coverage in their studies to select projects with a well-defined build system, such as Maven.","PeriodicalId":329313,"journal":{"name":"2015 29th Brazilian Symposium on Software Engineering","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128334318","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Mutation approaches have been recently applied for feature testing of Software Product Lines (SPLs). The idea is to select products, associated to mutation operators that describe possible faults in the Feature Model (FM). In this way, the operators and mutation score can be used to evaluate and generate a test set, that is a set of SPL products to be tested. However, the generation of test sets to kill all the mutants with a reduced, possible minimum, number of products is a complex task. To solve such problem, this paper introduces a multiobjective approach that includes a representation to the problem, search operators and two objectives related to the number of test cases and dead mutants. The approach was implemented with three representative multi-objective and evolutionary algorithms: NSGA-II, SPEA2 and IBEA. The conducted evaluation analyses the solutions obtained and compares the algorithms. An advantage of this approach is to offer a set of good solutions to the tester with a reduced number of products and high mutation score values, that is, with high probability of revealing faults described by the mutation testing.
{"title":"A Mutation and Multi-objective Test Data Generation Approach for Feature Testing of Software Product Lines","authors":"Rui Angelo Matnei Filho, S. Vergilio","doi":"10.1109/SBES.2015.17","DOIUrl":"https://doi.org/10.1109/SBES.2015.17","url":null,"abstract":"Mutation approaches have been recently applied for feature testing of Software Product Lines (SPLs). The idea is to select products, associated to mutation operators that describe possible faults in the Feature Model (FM). In this way, the operators and mutation score can be used to evaluate and generate a test set, that is a set of SPL products to be tested. However, the generation of test sets to kill all the mutants with a reduced, possible minimum, number of products is a complex task. To solve such problem, this paper introduces a multiobjective approach that includes a representation to the problem, search operators and two objectives related to the number of test cases and dead mutants. The approach was implemented with three representative multi-objective and evolutionary algorithms: NSGA-II, SPEA2 and IBEA. The conducted evaluation analyses the solutions obtained and compares the algorithms. An advantage of this approach is to offer a set of good solutions to the tester with a reduced number of products and high mutation score values, that is, with high probability of revealing faults described by the mutation testing.","PeriodicalId":329313,"journal":{"name":"2015 29th Brazilian Symposium on Software Engineering","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134575673","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Edgar Sarmiento, Julio Cesar Sampaio do Prado Leite, Eduardo Almentero
Requirements analysis plays a key role in the software development process. Scenario-based representation is often used for software requirements specification (SRS). Scenarios written in natural language may be ambiguous, and, sometimes, inaccurate. This problem is partially due to the fact that interactions among scenarios are rarely represented explicitly. As scenarios are used as input to subsequent activities of the software development process (SD), it is very important to enable their analysis, especially to detect flaws or problems due to wrong or missing information. This work proposes a Petri-Net based approach as an effective way to analyze the acquired scenarios. To enable the automated analysis, scenarios are translated into equivalent Place/Transition Petri-Nets. Scenarios and their resulting Petri-Nets can be automatically analyzed to evaluate some properties related to correctness, consistency and completeness. The identified problems can be traced back to the scenarios, allowing their revision. We also discuss how correctness, consistency and completeness of scenario-based SRSs can be decomposed in related properties using the NFR approach. Proposal's workability is demonstrated through two running examples.
{"title":"Analysis of Scenarios with Petri-Net Models","authors":"Edgar Sarmiento, Julio Cesar Sampaio do Prado Leite, Eduardo Almentero","doi":"10.1109/SBES.2015.13","DOIUrl":"https://doi.org/10.1109/SBES.2015.13","url":null,"abstract":"Requirements analysis plays a key role in the software development process. Scenario-based representation is often used for software requirements specification (SRS). Scenarios written in natural language may be ambiguous, and, sometimes, inaccurate. This problem is partially due to the fact that interactions among scenarios are rarely represented explicitly. As scenarios are used as input to subsequent activities of the software development process (SD), it is very important to enable their analysis, especially to detect flaws or problems due to wrong or missing information. This work proposes a Petri-Net based approach as an effective way to analyze the acquired scenarios. To enable the automated analysis, scenarios are translated into equivalent Place/Transition Petri-Nets. Scenarios and their resulting Petri-Nets can be automatically analyzed to evaluate some properties related to correctness, consistency and completeness. The identified problems can be traced back to the scenarios, allowing their revision. We also discuss how correctness, consistency and completeness of scenario-based SRSs can be decomposed in related properties using the NFR approach. Proposal's workability is demonstrated through two running examples.","PeriodicalId":329313,"journal":{"name":"2015 29th Brazilian Symposium on Software Engineering","volume":"83 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124746650","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A software product line (SPL) is a set of software systems that share a common and variable set of components (features). Software metrics provide basic means to quantify several quality aspects of SPL components. However, the effectiveness of the SPL measurement process is directly dependent on the definition of reliable thresholds. If thresholds are not properly defined, it is difficult to actually know whether a given metric value indicates a potential problem in the component implementation. There are several methods to derive thresholds for software metrics. However, there is little understanding about their appropriateness for the context of SPLs. This paper aims to propose a method to derive thresholds in the SPL context. Our method is evaluated in terms of recall and precision using two code smells (God Class and Lazy Class) detection strategies. The evaluation of our method is performed based on a benchmark of 33 SPLs and the results were compared with a method (baseline) with the same purpose used in the context of SPLs (not proposed). The results show that our method has better recall when compared with baseline.
{"title":"A Method to Derive Metric Thresholds for Software Product Lines","authors":"Gustavo Vale, Eduardo Figueiredo","doi":"10.1109/SBES.2015.9","DOIUrl":"https://doi.org/10.1109/SBES.2015.9","url":null,"abstract":"A software product line (SPL) is a set of software systems that share a common and variable set of components (features). Software metrics provide basic means to quantify several quality aspects of SPL components. However, the effectiveness of the SPL measurement process is directly dependent on the definition of reliable thresholds. If thresholds are not properly defined, it is difficult to actually know whether a given metric value indicates a potential problem in the component implementation. There are several methods to derive thresholds for software metrics. However, there is little understanding about their appropriateness for the context of SPLs. This paper aims to propose a method to derive thresholds in the SPL context. Our method is evaluated in terms of recall and precision using two code smells (God Class and Lazy Class) detection strategies. The evaluation of our method is performed based on a benchmark of 33 SPLs and the results were compared with a method (baseline) with the same purpose used in the context of SPLs (not proposed). The results show that our method has better recall when compared with baseline.","PeriodicalId":329313,"journal":{"name":"2015 29th Brazilian Symposium on Software Engineering","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121390771","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Community-based Open Source Software (OSS) projects are usually self-organized and dynamic, receiving contributions from distributed volunteers. These communities' survival, long-term success, and continuity demand a constant influx of newcomers. However, newcomers face many barriers when making their first contribution to an OSS project, leading in many cases to dropouts. Therefore, a major challenge for OSS projects is to provide ways to support newcomers during their first contribution. In this paper, our goal was to evaluate how the newcomers' perceived efficacy is influenced by the use of an environment that organizes the project information for developers who want to place their first contribution to an OSS project. To accomplish this goal, we created FLOSS coach, a portal aiming to support newcomers to OSS projects, which was implemented based on a model of barriers proposed in previous research. Then, we conducted a study, in which 46 students, split in case and control group, were asked to contribute to an OSS project. We assessed the newcomers' self-efficacy by conducting a questionnaire before and after the assignment. We found that presenting the information according to the model of barriers had a positive influence on newcomers' self-efficacy, empowered the newcomers, making them more confident and comfortable during the contribution process. However, there is also some indication that FLOSS coach did not lower the technical barriers.
{"title":"Increasing the Self-Efficacy of Newcomers to Open Source Software Projects","authors":"Igor Steinmacher, I. Wiese, T. Conte, M. Gerosa","doi":"10.1109/SBES.2015.10","DOIUrl":"https://doi.org/10.1109/SBES.2015.10","url":null,"abstract":"Community-based Open Source Software (OSS) projects are usually self-organized and dynamic, receiving contributions from distributed volunteers. These communities' survival, long-term success, and continuity demand a constant influx of newcomers. However, newcomers face many barriers when making their first contribution to an OSS project, leading in many cases to dropouts. Therefore, a major challenge for OSS projects is to provide ways to support newcomers during their first contribution. In this paper, our goal was to evaluate how the newcomers' perceived efficacy is influenced by the use of an environment that organizes the project information for developers who want to place their first contribution to an OSS project. To accomplish this goal, we created FLOSS coach, a portal aiming to support newcomers to OSS projects, which was implemented based on a model of barriers proposed in previous research. Then, we conducted a study, in which 46 students, split in case and control group, were asked to contribute to an OSS project. We assessed the newcomers' self-efficacy by conducting a questionnaire before and after the assignment. We found that presenting the information according to the model of barriers had a positive influence on newcomers' self-efficacy, empowered the newcomers, making them more confident and comfortable during the contribution process. However, there is also some indication that FLOSS coach did not lower the technical barriers.","PeriodicalId":329313,"journal":{"name":"2015 29th Brazilian Symposium on Software Engineering","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131096778","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Bernardo Estácio, R. Oliveira, S. Marczak, Marcos Kalinowski, Alessandro F. Garcia, R. Prikladnicki, C. Lucena
[Context] Collaborative programming is achieved when two or more programmers develop software together. Pair Programming and Coding Dojo Randori are two increasingly adopted practices for collaborative programming. While the former encourages the collaboration in pairs, the latter promotes collaboration in groups. However, there is no broad understanding about the impact of these practices on the acquisition of programming skills. [Goal] In this study, we empirically compare the influence of both collaborative practices on two essential aspects of skill acquisition: motivation and learning. [Method] We conducted a controlled experiment with novice programmers applying solo programming and both collaborative practices to three different programming exercises using a crossed design. [Results] Our results showed that, while both practices outperformed solo programming, they also presented complementary benefits on acquiring programming skills. For instance, the programmers inserted less code anomalies in Coding Dojo Randori sessions than in Pair Programming sessions. On the other hand, the motivation was often considered to be stronger in the latter than in the former. [Conclusions] Our results suggest that the use of collaborative practices is particularly promising for acquiring programming skills, when programmers have little or no practical experience with software development.
{"title":"Evaluating Collaborative Practices in Acquiring Programming Skills: Findings of a Controlled Experiment","authors":"Bernardo Estácio, R. Oliveira, S. Marczak, Marcos Kalinowski, Alessandro F. Garcia, R. Prikladnicki, C. Lucena","doi":"10.1109/SBES.2015.24","DOIUrl":"https://doi.org/10.1109/SBES.2015.24","url":null,"abstract":"[Context] Collaborative programming is achieved when two or more programmers develop software together. Pair Programming and Coding Dojo Randori are two increasingly adopted practices for collaborative programming. While the former encourages the collaboration in pairs, the latter promotes collaboration in groups. However, there is no broad understanding about the impact of these practices on the acquisition of programming skills. [Goal] In this study, we empirically compare the influence of both collaborative practices on two essential aspects of skill acquisition: motivation and learning. [Method] We conducted a controlled experiment with novice programmers applying solo programming and both collaborative practices to three different programming exercises using a crossed design. [Results] Our results showed that, while both practices outperformed solo programming, they also presented complementary benefits on acquiring programming skills. For instance, the programmers inserted less code anomalies in Coding Dojo Randori sessions than in Pair Programming sessions. On the other hand, the motivation was often considered to be stronger in the latter than in the former. [Conclusions] Our results suggest that the use of collaborative practices is particularly promising for acquiring programming skills, when programmers have little or no practical experience with software development.","PeriodicalId":329313,"journal":{"name":"2015 29th Brazilian Symposium on Software Engineering","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116662417","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The flexibility and ease-of-use of spreadsheets allow users with little CS background to build computational solutions to solve their problems. However, inexperienced users may build erroneous spreadsheets. Modeling is commonly used in software development to allow users to visualize, communicate, and validate different aspects of a system before starting its construction. This work proposes a Model-Driven Engineering (MDE) approach that automatically generates spreadsheets from conceptual models aiming to reduce the number of errors introduced by users while using spreadsheets. Initially, we designed and executed an empirical study to identify the most common errors users commit when developing spreadsheets. The results of this study have shown that even users who classify themselves as experienced spreadsheet developers commit a large number of errors while developing a spreadsheet. Also, it has shown that formula-related errors are the most common errors introduced by users (55%). A second study involved humans using a spreadsheet generated by our approach and showed initial evidence that the approach can build spreadsheets that avoid the introduction of several types of errors often present in spreadsheets manually created by users. In this sense, we observed 98% correct answers to 234 questions involving spreadsheet manipulation.
{"title":"Automatic Spreadsheet Generation from Conceptual Models","authors":"Léo Antunes, A. L. Correa, M. Barros","doi":"10.1109/SBES.2015.11","DOIUrl":"https://doi.org/10.1109/SBES.2015.11","url":null,"abstract":"The flexibility and ease-of-use of spreadsheets allow users with little CS background to build computational solutions to solve their problems. However, inexperienced users may build erroneous spreadsheets. Modeling is commonly used in software development to allow users to visualize, communicate, and validate different aspects of a system before starting its construction. This work proposes a Model-Driven Engineering (MDE) approach that automatically generates spreadsheets from conceptual models aiming to reduce the number of errors introduced by users while using spreadsheets. Initially, we designed and executed an empirical study to identify the most common errors users commit when developing spreadsheets. The results of this study have shown that even users who classify themselves as experienced spreadsheet developers commit a large number of errors while developing a spreadsheet. Also, it has shown that formula-related errors are the most common errors introduced by users (55%). A second study involved humans using a spreadsheet generated by our approach and showed initial evidence that the approach can build spreadsheets that avoid the introduction of several types of errors often present in spreadsheets manually created by users. In this sense, we observed 98% correct answers to 234 questions involving spreadsheet manipulation.","PeriodicalId":329313,"journal":{"name":"2015 29th Brazilian Symposium on Software Engineering","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125251048","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A. Freire, Raissa Matias da Silva, M. Perkusich, H. Almeida, A. Perkusich
The Agile Manifesto states that agile projects should focus on individuals and interactions over processes and tools. Agile teams are self-directed and considered one of the most valuable assets of the project. This requires the team members to be collaborative and embrace the concept of whole-team responsibility and commitment. Factors that influence teamwork quality such as team orientation, team leadership, and coordination in addition to highly specialized skills and corresponding division of work are barriers for achieving team effectiveness. To assist on the assessment of agile teamwork quality, in this paper, we present a Bayesian networks-based model. The model considers agile teams principles and industry best practices. We validated the model with simulated scenarios. The results are promising and encourage its usage to assess agile teams teamwork quality to promote continuous improvement.
{"title":"A Bayesian Network Model to Assess Agile Teams' Teamwork Quality","authors":"A. Freire, Raissa Matias da Silva, M. Perkusich, H. Almeida, A. Perkusich","doi":"10.1109/SBES.2015.29","DOIUrl":"https://doi.org/10.1109/SBES.2015.29","url":null,"abstract":"The Agile Manifesto states that agile projects should focus on individuals and interactions over processes and tools. Agile teams are self-directed and considered one of the most valuable assets of the project. This requires the team members to be collaborative and embrace the concept of whole-team responsibility and commitment. Factors that influence teamwork quality such as team orientation, team leadership, and coordination in addition to highly specialized skills and corresponding division of work are barriers for achieving team effectiveness. To assist on the assessment of agile teamwork quality, in this paper, we present a Bayesian networks-based model. The model considers agile teams principles and industry best practices. We validated the model with simulated scenarios. The results are promising and encourage its usage to assess agile teams teamwork quality to promote continuous improvement.","PeriodicalId":329313,"journal":{"name":"2015 29th Brazilian Symposium on Software Engineering","volume":"71 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116473164","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
M. Oliveira, R. Bonifácio, G. N. Ramos, Márcio Ribeiro
The analysis of co-change clusters as an alternative software decomposition can provide insights on different perspectives of modularity. But the usual approach using coarse-grained entities does not provide relevant information, like the conceptual cohesion of the modular abstractions that emerge from co-change clusters. This work presents a novel approach to analyze the conceptual cohesion of the source-code associated with co-change clusters of fine-grained entities. We obtain from the change history information found in version control systems. We describe the use of our approach to analyze six well established and currently active open-source projects from different domains and one of the most relevant systems of the Brazilian Government for the financial domain. The results show that co-change clusters offer a new perspective on the code based on groups with high conceptual cohesion between its entities (up to 69% more than the original package decomposition), and, thus, are suited to detect concepts pervaded on codebases, opening new possibilities of comprehension of source-code by means of the concepts embodied in the co-change clusters.
{"title":"On the Conceptual Cohesion of Co-Change Clusters","authors":"M. Oliveira, R. Bonifácio, G. N. Ramos, Márcio Ribeiro","doi":"10.1109/SBES.2015.16","DOIUrl":"https://doi.org/10.1109/SBES.2015.16","url":null,"abstract":"The analysis of co-change clusters as an alternative software decomposition can provide insights on different perspectives of modularity. But the usual approach using coarse-grained entities does not provide relevant information, like the conceptual cohesion of the modular abstractions that emerge from co-change clusters. This work presents a novel approach to analyze the conceptual cohesion of the source-code associated with co-change clusters of fine-grained entities. We obtain from the change history information found in version control systems. We describe the use of our approach to analyze six well established and currently active open-source projects from different domains and one of the most relevant systems of the Brazilian Government for the financial domain. The results show that co-change clusters offer a new perspective on the code based on groups with high conceptual cohesion between its entities (up to 69% more than the original package decomposition), and, thus, are suited to detect concepts pervaded on codebases, opening new possibilities of comprehension of source-code by means of the concepts embodied in the co-change clusters.","PeriodicalId":329313,"journal":{"name":"2015 29th Brazilian Symposium on Software Engineering","volume":"85 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133168912","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}