P. Bhattacharya, Liudmila Ulanova, Iulian Neamtiu, S. C. Koduru
{"title":"An Empirical Analysis of Bug Reports and Bug Fixing in Open Source Android Apps","authors":"P. Bhattacharya, Liudmila Ulanova, Iulian Neamtiu, S. C. Koduru","doi":"10.1109/CSMR.2013.23","DOIUrl":"https://doi.org/10.1109/CSMR.2013.23","url":null,"abstract":"Smartphone platforms and applications (apps) have gained tremendous popularity recently. Due to the novelty of the smartphone platform and tools, and the low barrier to entry for app distribution, apps are prone to errors, which affects user experience and requires frequent bug fixes. An essential step towards correcting this situation is understanding the nature of the bugs and bug-fixing processes associated with smartphone platforms and apps. However, prior empirical bug studies have focused mostly on desktop and server applications. Therefore, in this paper, we perform an in-depth empirical study on bugs in the Google Android smartphone platform and 24 widely-used open-source Android apps from diverse categories such as communication, tools, and media. Our analysis has three main thrusts. First, we define several metrics to understand the quality of bug reports and analyze the bug-fix process, including developer involvement. Second, we show how differences in bug life-cycles can affect the bug-fix process. Third, as Android devices carry significant amounts of security-sensitive information, we perform a study of Android security bugs. We found that, although contributor activity in these projects is generally high, developer involvement decreases in some projects, similarly, while bug-report quality is high, bug triaging is still a problem. Finally, we observe that in Android apps, security bug reports are of higher quality but get fixed slower than non-security bugs. We believe that the findings of our study could potentially benefit both developers and users of Android apps.","PeriodicalId":309343,"journal":{"name":"2013 17th European Conference on Software Maintenance and Reengineering","volume":"71 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133727018","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. Waseem Asghar, A. Marchetto, Angelo Susi Fondazione, Bruno Kessler, G. Scanniello
{"title":"Maintainability-Based Requirements Prioritization by Using Artifacts Traceability and Code Metrics","authors":"M. Waseem Asghar, A. Marchetto, Angelo Susi Fondazione, Bruno Kessler, G. Scanniello","doi":"10.1109/CSMR.2013.62","DOIUrl":"https://doi.org/10.1109/CSMR.2013.62","url":null,"abstract":"Requirements prioritization is a fundamental activity during software system maintenance. Prioritize requirements, in fact, means to determine the ordering in which requirements have to be considered in a given planning or maintenance activity. Most of the existing requirements prioritization techniques and tools focus on user and non/functional requirements, while only few attempt exists to consider how requirements are actually implemented, if they are implemented. In this demonstration paper, we present a tool that prioritizes (change) requirements by using artifacts traceability information, to locate the requirements implementation, and a set of code-based metrics, to measure several properties (e.g., coupling, size, scattering) of the requirements implementation. The tool, hence, determines the requirement ordering with respect to how these requirements are implemented in a subject software system.","PeriodicalId":309343,"journal":{"name":"2013 17th European Conference on Software Maintenance and Reengineering","volume":"201 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134224019","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}
{"title":"An Early Investigation on the Contribution of Class and Sequence Diagrams in Source Code Comprehension","authors":"G. Scanniello, C. Gravino, G. Tortora","doi":"10.1109/CSMR.2013.51","DOIUrl":"https://doi.org/10.1109/CSMR.2013.51","url":null,"abstract":"We report the preliminary results of a controlled experiment conducted to analyze whether the combined use of UML class and sequence diagrams better supports source code comprehension with respect to the use of class and sequence diagrams alone. We also investigated which notation between class and sequence diagrams provides a better support in the execution of comprehension tasks on source code. The results suggest that it is better to use class and sequence diagrams together with respect to using either class or sequence diagrams alone. The difference in the source code comprehension is statistically significant with respect to the use of class diagrams alone, while is not statistically significant with respect to the sequence diagrams alone.","PeriodicalId":309343,"journal":{"name":"2013 17th European Conference on Software Maintenance and Reengineering","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131999946","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}
{"title":"Co-evolution of the Eclipse SDK Framework and Its Third-Party Plug-Ins","authors":"John Businge","doi":"10.1109/CSMR.2013.64","DOIUrl":"https://doi.org/10.1109/CSMR.2013.64","url":null,"abstract":"Today, when constructing a new software system, many developers build their systems on top of frameworks. Eclipse framework is one such popular and widely adopted framework that has been evolving for over a decade. Like many other evolving software systems, the Eclipse SDK framework has both stable and supported APIs (good interfaces) and unstable, discouraged and unsupported non-APIs (bad interfaces). However, despite being discouraged by Eclipse, in our experience, the usage of bad interfaces is not uncommon. In this thesis, by means of a series of empirical studies, we quantify/qualify some the challenges faced by Eclipse third-party plug-in developers in using the interfaces provided by the Eclipse SDK framework. Furthermore, we propose solutions to the identified challenges, like changes in development strategy to both interface providers and interface users. In particular, the lessons learned from this study can provide valuable information in particular to the interface providers, i.e., Eclipse SDK developers, and the interface uses, i.e., ETP developers, in co-evolving the Eclipse framework. In general, the lessons learned can be transferable to other framework ecosystem.","PeriodicalId":309343,"journal":{"name":"2013 17th European Conference on Software Maintenance and Reengineering","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128256258","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}
Theodoros Polychniatis, Jurriaan Hage, S. Jansen, Eric Bouwers, Joost Visser
{"title":"Detecting Cross-Language Dependencies Generically","authors":"Theodoros Polychniatis, Jurriaan Hage, S. Jansen, Eric Bouwers, Joost Visser","doi":"10.1109/CSMR.2013.47","DOIUrl":"https://doi.org/10.1109/CSMR.2013.47","url":null,"abstract":"In order to evaluate large, heterogeneous information systems (i.e., comprising modules developed in diverse programming languages) a method to detect dependencies among these modules is needed. Although there is a variety of methods that can detect dependencies within a single programming language, the available cross-language detection methods use extensive language specific information to parse and analyse modules written in different languages. In this paper, a new method for detecting cross-language dependencies is proposed. This method is generic, yet accurate and can support new languages with minimal effort. To evaluate the method, a tool was created and a series of experiments was conducted on a small case study for which dependencies had been extracted manually. The evaluation shows that the method is effective, extensible and easily explainable.","PeriodicalId":309343,"journal":{"name":"2013 17th European Conference on Software Maintenance and Reengineering","volume":"216 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115067515","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}
Venkata Krishna Suhas Nerella, S. Madria, T. Weigert
{"title":"An Approach for Optimization of Object Queries on Collections Using Annotations","authors":"Venkata Krishna Suhas Nerella, S. Madria, T. Weigert","doi":"10.1109/CSMR.2013.36","DOIUrl":"https://doi.org/10.1109/CSMR.2013.36","url":null,"abstract":"Object oriented programming languages have raised the level of abstraction by supporting the object querying on collections. Programming languages can execute first class query constructs, using query optimization techniques from the database field, for run time optimizations. Existing approaches, however, such as Java Query Language (JQL), which executes such query constructs on collections have high run time overhead. Therefore, we propose an approach to reduce the burden of run time overhead by performing most of the query optimization for object queries on collections at compile time. This approach both analyzes the source code and obtains the metadata provided through annotations. It relies on building histograms from the metadata information. Then, the predicate and join selectivity estimates within a query are computed from these histograms. The selectivity estimates are maintained accurate with the incremental maintenance of histograms to the data changes in the program at run time. Next, both the selection and join optimizations are applied on the queries. The optimizations help in skipping and eliminating the execution of some of the predicates and joins based on the collected metadata. Finally, a query plan is generated at the compile time through the proposed selectivity cost heuristic. The query itself is executed at run time according to the determined query plan. But, in cases of inaccurate metadata and significant data changes in the source code, the query plan is modified at run time according to the correct selectivity estimates obtained from the updated histograms. Our experimental results demonstrate that our approach reduces the run time overhead of a program with collections more than the earlier approaches such as JQL.","PeriodicalId":309343,"journal":{"name":"2013 17th European Conference on Software Maintenance and Reengineering","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116914147","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}
Ricardo Pérez-Castillo, I. G. D. Guzmán, M. Piattini
{"title":"MIMOS, System Model-Driven Migration Project","authors":"Ricardo Pérez-Castillo, I. G. D. Guzmán, M. Piattini","doi":"10.1109/CSMR.2013.68","DOIUrl":"https://doi.org/10.1109/CSMR.2013.68","url":null,"abstract":"The volatile IT industry often tempts companies to replace legacy information systems with new ones. However, legacy systems cannot always be completely discarded because they gradually store a significant amount of valuable business knowledge as a result of progressive maintenance over time. Most migration techniques are proposed and applied in an ad hoc way. As a result, most migration techniques have a lack of automation and formalization, which makes it difficult to reuse such techniques to large, complex legacy information systems. This paper introduces MIMOS, a third-year project aimed at developing a methodological and technological modernization framework to facilitate the migration of legacy systems based on high-level design models. The work in progress during the first year mainly focused on the definition of a business process mining technique to retrieve the business knowledge embedded in source code so that it can be reused in the target system.","PeriodicalId":309343,"journal":{"name":"2013 17th European Conference on Software Maintenance and Reengineering","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128008302","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}
{"title":"Predicting Reassignments of Bug Reports - An Exploratory Investigation","authors":"Ahmed Lamkanfi, S. Demeyer","doi":"10.1109/CSMR.2013.42","DOIUrl":"https://doi.org/10.1109/CSMR.2013.42","url":null,"abstract":"Bug tracking systems play an important role in the software development process since they allow users to report bugs they have encountered. Unfortunately, the information provided in the bug reports may contain errors since the reporter is not always acquainted with the technical nature of the software project. It remains a manual process left to the bug triager to correct reports with erroneous information. Consequently, this results in a delay of the resolution time of a bug. In this study, we propose to use data-mining techniques to make early predictions of which particular reported bugs are assigned to the incorrect component. This way, bug triagers are assisted in their task of identifying reported bugs where the \"component\" field contains an incorrect value. By using open-source cases like Mozilla and Eclipse, we demonstrate the possibility of predicting which particular bug is likely to be reassigned to a different \"component\".","PeriodicalId":309343,"journal":{"name":"2013 17th European Conference on Software Maintenance and Reengineering","volume":"100 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132430901","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}
{"title":"Linking E-Mails and Source Code with LASCO","authors":"L. Mazzeo, Anna Tolve, R. Branda, G. Scanniello","doi":"10.1109/CSMR.2013.63","DOIUrl":"https://doi.org/10.1109/CSMR.2013.63","url":null,"abstract":"Many of the approaches for recovering links between e-mails and software artifacts are based on text search or text retrieval. They reformulate the link recovery as a document retrieval problem. We refine and improve such solutions by leveraging the parts of which an e-mail is composed of: header, current message, and previous messages. The relevance of these parts is weighted by a probabilistic approach based on text retrieval. We implemented our novel solution exploiting the BM25F model. The approach has been implemented in an Eclipse plug-in named LASCO (Linking e-mAils and Source Code). We present that plug-in in this tool demonstration paper.","PeriodicalId":309343,"journal":{"name":"2013 17th European Conference on Software Maintenance and Reengineering","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130481467","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}
{"title":"A Pilot Study on Software Quality Practices in Belgian Industry","authors":"Javier Pérez, T. Mens, Flora Kamseu","doi":"10.1109/CSMR.2013.57","DOIUrl":"https://doi.org/10.1109/CSMR.2013.57","url":null,"abstract":"In the context of an ERDF-funded project portfolio, we have carried out a survey to assess the state-of-the-practice in software quality in Belgian companies. With this survey, we wish to find out what are the most common industry practices (processes, techniques and tools) with respect to software quality, and how these practices vary across companies. Companies could use the results of this study to improve upon their current software quality practices compared to other companies. Researchers could use it to develop better techniques and tools for aspects that have not found sufficient take-up by industry. Teachers may use it to adapt their courses to become more directly relevant to industry practices.","PeriodicalId":309343,"journal":{"name":"2013 17th European Conference on Software Maintenance and Reengineering","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-03-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123806872","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}