{"title":"How Often does a Source Code Unit Change within a Release Window?","authors":"Joseph F. Shobe, Md Yasser Karim, Huzefa H. Kagdi","doi":"10.1145/2723742.2723759","DOIUrl":"https://doi.org/10.1145/2723742.2723759","url":null,"abstract":"To form a training set for a source-code change prediction model, e.g., using the association rule mining or machine learning techniques, commits from the source code history are needed. The traceability between releases and commits would facilitate a systematic choice of history in units of the project evolution scale (i.e., commits that constitute a software release). For example, the major release 25.0 in Chrome is mapped to the earliest revision 157687 and latest revision 165096 in the trunk. Using this traceability, an empirical study is reported on the frequency distribution of file changes for different release windows. In Chrome, the majority (50%) of the committed files change only once between a pair of consecutive releases. This trend is reversed after expanding the window size to at least 10. That is, the majority (50%) of the files change multiple times when commits constituting 10 or greater releases are considered. These results suggest that a training set of at least 10 releases is needed to provide a prediction coverage for majority of the files.","PeriodicalId":288030,"journal":{"name":"Proceedings of the 8th India Software Engineering Conference","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-02-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125797331","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 Profile Guided Approach to Optimize Branch Divergence While Transforming Applications for GPUs","authors":"S. Sarkar, Sayantan Mitra","doi":"10.1145/2723742.2723760","DOIUrl":"https://doi.org/10.1145/2723742.2723760","url":null,"abstract":"GPUs offer a powerful bulk synchronous programming model for exploiting data parallelism; however, branch divergence amongst executing warps can lead to serious performance degradation due to execution serialization. We propose a novel profile guided approach to optimize branch divergence while transforming a serial program to a data-parallel program for GPUs. Our approach is based on the observation that branches inside some data parallel loops although divergent, exhibit repetitive regular patterns of outcomes. By exploiting such patterns, loop iterations can be aligned so that the corresponding iterations traverse the same branch path. These aligned iterations when executed as a warp in a GPU, become convergent. We propose a new metric based on the repetitive pattern characteristics that indicates whether a data-parallel loop is worth restructuring. When tested our approach on the well-known Rodinia benchmark, we found that it is possible to achieve upto 48% performance improvement by loop restructuring suggested by the patterns and our metrics.","PeriodicalId":288030,"journal":{"name":"Proceedings of the 8th India Software Engineering Conference","volume":"54 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-02-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124062977","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":"Reengineering Enterprise Wide Legacy BFSI Systems: Industrial case study","authors":"Prabhakar Cherukupalli, Y. R. Reddy","doi":"10.1145/2723742.2723746","DOIUrl":"https://doi.org/10.1145/2723742.2723746","url":null,"abstract":"Financial services sector typically known as BFSI (Banking Financial Services and Insurance) invest substantial amount of their developmental and maintenance budget in Information Technology (IT). Client servicing, regulatory/compliance requirements, effective risk monitoring among others necessitate such expenditure. A large amount of time and IT expenditure in BFSI sector is spent in reengineering the legacy systems. Successful execution of these reengineering programs is critical to the firm as well as the financial markets and regulators. In this paper, we present a report of the study done on reengineering three legacy systems in BFSI sector. The focus of the paper is on challenges and issues faced, practices followed, actual data collected by Mercury Quality Center during reengineering of these systems. Our study uses key metrics, client feedback, usage of these systems, document, process repository artifacts and discussion results from the interaction with key stakeholders involved in the reengineering of the three systems. We compile the best practices, lessons learnt and provide insights that can potentially avoid some of the issues encountered in large-scale reengineering programs in BFSI sector.","PeriodicalId":288030,"journal":{"name":"Proceedings of the 8th India Software Engineering Conference","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-02-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129152356","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":"Automating Crash Report Analysis Using 'Exception-based Patterns' & 'Reference Assembly mapping'","authors":"Venkata Krishnan Paila, Jaile Sebes","doi":"10.1145/2723742.2723749","DOIUrl":"https://doi.org/10.1145/2723742.2723749","url":null,"abstract":"When a complex real-world application is deployed post-release, a number of crash reports are generated. As the number of clients using the product increases, so do the crash reports. Typically, the approach followed in many software organizations is to manually analyze a crash report to identify the erroneous module responsible for the crash. Naturally, when a large number of crash reports are generated daily, the development team requires a substantial amount of time to analyze all these reports. This in turn increases the turn-around time for crash report analysis which often leaves customers unhappy. In order to address this problem, we have developed an automated method to analyze a crash report and identify the erroneous module. This method is based on a novel algorithm that searches for exception-based patterns in crash reports and maps reference assemblies. We have applied this method to several thousand crash reports across four sub-systems of an industrial automation application. Results indicate that the algorithm not only achieves a high accuracy in finding the erroneous module and subsystem behind a crash, but also significantly reduces the turn-around time for crash report analysis.","PeriodicalId":288030,"journal":{"name":"Proceedings of the 8th India Software Engineering Conference","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-02-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128196831","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":"Measuring Inheritance Patterns in Object Oriented Systems: the Dynamic Inheritance Ratio Metric","authors":"Mihnea Niculescu, P. Dugerdil, Blanco M. Canedo","doi":"10.1145/2723742.2723755","DOIUrl":"https://doi.org/10.1145/2723742.2723755","url":null,"abstract":"Among the code structuration mechanisms in object oriented systems, class hierarchies based on the generalization relationship play a prominent role. Indeed it is used to represent and code hierarchies of abstractions supposed to help with code understanding, maintenance and extension. But it is common to see class hierarchies and the associated inheritance mechanism be diverted from this noble role to become a mere code sharing mechanism. In this case, rather than helping, the inheritance mechanism confuses the understanding of the code. Hence, we have developed a metric to analyze the inheritance mechanism at work in a running system, what we have called the inheritance pattern. Although the metrics measuring inheritance are numerous, our approach is original since it observes the actual inheritance in the running code at the class level as well as among the packages (i.e. among the classes through package). In some sense, this metric measures how well the inheritance mechanism has been leveraged in the software. But interpreting raw numbers can be hard. Then we developed a visual and hierarchical representation of the metric values at the scale of a whole system. This helps to assess the quality of the code from the point of view of code abstraction.","PeriodicalId":288030,"journal":{"name":"Proceedings of the 8th India Software Engineering Conference","volume":"29 12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-02-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125691717","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":"Compositional Software Language Engineering","authors":"Bernhard Rumpe","doi":"10.1145/2723742.2723766","DOIUrl":"https://doi.org/10.1145/2723742.2723766","url":null,"abstract":"We examine the current state and problems of modeling enterprises as well as software systems and discuss a number of approaches to tackle those. In particular, we discuss how to make use of models in large development projects, where a set of heterogenous models of different languages needs is developed and needs to fit together e.g. describing high-level structures of the organization, business processes, data structures, automatically executable functions, constraints and so on. A model based development process (both with UML as well as a domain specific modeling language (DSML)) heavily relies on modeling core parts individually and composing those through generators to early and repeatedly cut code and tests from these models. We in detail discuss compositionality on models and heterogeneous modeling languages and how it supports agile evolution of such infrastructures.","PeriodicalId":288030,"journal":{"name":"Proceedings of the 8th India Software Engineering Conference","volume":"40 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-02-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117271375","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":"Impact of Feature Selection Techniques on Bug Prediction Models","authors":"Muthu Kasinathan, Akhila Rallapalli, Lalita Bhanu Murthy Neti","doi":"10.1145/2723742.2723754","DOIUrl":"https://doi.org/10.1145/2723742.2723754","url":null,"abstract":"Several change metrics and source code metrics have been introduced and proved to be effective features in building bug prediction models. Researchers performed comparative studies of bug prediction models built using the individual metrics as well as combination of these metrics. In this paper, we investigate whether the prediction accuracy of bug prediction models is improved by applying feature selection techniques. We explore if there is one algorithm amongst ten popular feature selection algorithms that consistently fares better than others across sixteen bench marked open source projects. We also study whether the metrics in best feature subset are consistent across projects.","PeriodicalId":288030,"journal":{"name":"Proceedings of the 8th India Software Engineering Conference","volume":"174 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-02-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120946054","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 Automated approach for Bug Categorization using Fuzzy Logic","authors":"Indu Chawla, S. Singh","doi":"10.1145/2723742.2723751","DOIUrl":"https://doi.org/10.1145/2723742.2723751","url":null,"abstract":"Various automated techniques built to benefit software developers, bug triagers, stakeholders and users in open source systems, utilize information placed in issue tracking systems. The success of these techniques depends largely on the quality of information present in the issue reports. Assigning correct label to issue reports is one of the quality concerns. Previous empirical studies conducted on the issue reports show that most issues are either mislabeled or are not labeled at all. Thus, in order to enhance quality of issue reports, there is a strong need to propose an automated and accurate bug labeling approach. A label can be a bug, feature enhancement or other request. In this paper, we propose an automated approach to label an issue either as bug or other request based on fuzzy set theory. Experiments are conducted on issue repository of three open source software systems: HTTPClient, Jackrabbit and Lucene. We have achieved an accuracy of 87%, 83.5% and 90.8% and F-Measure score of 0.83, 0.79 and 0.84 respectively. This is a considerable improvement as compared to the earlier reported work on these three datasets using topic modeling approach.","PeriodicalId":288030,"journal":{"name":"Proceedings of the 8th India Software Engineering Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-02-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129696274","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":"Proceedings of the 8th India Software Engineering Conference","authors":"","doi":"10.1145/2723742","DOIUrl":"https://doi.org/10.1145/2723742","url":null,"abstract":"","PeriodicalId":288030,"journal":{"name":"Proceedings of the 8th India Software Engineering Conference","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133624938","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}