André L. Ferreira, R. J. Machado, Jose G. Silva, Rui F. Batista, Lino A. Costa, M. Paulk
{"title":"An approach to improving software inspections performance","authors":"André L. Ferreira, R. J. Machado, Jose G. Silva, Rui F. Batista, Lino A. Costa, M. Paulk","doi":"10.1109/ICSM.2010.5609700","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609700","url":null,"abstract":"Software inspections allow finding and removing defects close to their point of injection and are considered a cheap and effective way to detect and remove defects. A lot of research work has focused on understanding the sources of variability and improving software inspections performance. In this paper we studied the impact of inspection review rate in process performance. The study was carried out in an industrial context effort of bridging the gap from CMMI level 3 to level 5. We supported a decision for process change and improvement based on statistical significant information. Study results led us to conclude that review rate is an important factor affecting code inspections performance and that the applicability of statistical methods was useful in modeling and predicting process performance.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"63 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114637750","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 practical tutorial on refactoring for parallelism","authors":"Danny Dig","doi":"10.1109/ICSM.2010.5609708","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609708","url":null,"abstract":"For several decades, programmers have relied on Moore's Law to improve the performance of their software applications. From now on, programmers need to program the multicores if they want to deliver efficient code. In the multicore era, a major maintenance task will be to make sequential programs more parallel. What are the most common transformations to retrofit parallelism into sequential programs? This tutorial equips today's programmers to be ready for tomorrow's task. It presents the process for parallelizing sequential applications and presents several refactorings for (i) making programs thread-safe, (ii) threading sequential applications, and (iii) improving scalability of parallel programs. The tutorial also presents the state of the practice libraries for parallelism in the desktop computing, and helps programmers understand the trade-offs between programmability, scalability, and portability of parallel programs. Participants get hands-on experience on parallelizing realistic applications, and get a preview of the state of the art refactoring tools for parallelism.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131876473","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":"Using multivariate time series and association rules to detect logical change coupling: An empirical study","authors":"G. Canfora, M. Ceccarelli, L. Cerulo, M. D. Penta","doi":"10.1109/ICSM.2010.5609732","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609732","url":null,"abstract":"In recent years, techniques based on association rules discovery have been extensively used to determine change-coupling relations between artifacts that often changed together. Although association rules worked well in many cases, they fail to capture logical coupling relations between artifacts modified in subsequent change sets.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"82 19","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131879113","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":"iFL: An interactive environment for understanding feature implementations","authors":"Shinpei Hayashi, Katsuyuki Sekine, M. Saeki","doi":"10.1109/ICSM.2010.5609669","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609669","url":null,"abstract":"We propose iFL, an interactive environment that is useful for effectively understanding feature implementation by application of feature location (FL). With iFL, the inputs for FL are improved incrementally by interactions between users and the FL system. By understanding a code fragment obtained using FL, users can find more appropriate queries from the identifiers in the fragment. Furthermore, the relevance feedback obtained by partially judging whether or not a fragment is relevant improves the evaluation score of FL. Users can then obtain more accurate results. Case studies with iFL show that our interactive approach is feasible and that it can reduce the understanding cost more effectively than the non-interactive approach.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124842750","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 cross-browser web application testing tool","authors":"Shauvik Roy Choudhary, Husayn Versee, A. Orso","doi":"10.1109/ICSM.2010.5609728","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609728","url":null,"abstract":"Web applications have gained increased popularity in the past decade due to the ubiquity of the web browser across platforms. With the rapid evolution of web technologies, the complexity of web applications has also grown, making maintenance tasks harder. In particular, maintaining cross-browser compliance is a challenging task for web developers, as they must test their application on a variety of browsers and platforms. Existing tools provide some support for this kind of test, but developers are still required to identify and fix cross-browser issues mainly through manual inspection. Our WEBDIFF tool addresses the limitations of existing tools by (1) automatically comparing the structural and visual characteristics of web pages when they are rendered in different browsers, and (2) reporting potential differences to developers. When used on nine real web pages, WEBDIFF automatically identified 121 issues, out of which 100 were actual problems. In this demo, we will present WEBDIFF, its underlying technology, and several examples of its use on real applications.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130318693","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":"Modernizing legacy software using a System Grokking technology","authors":"Y. Dajsuren, M. Goldstein, Dany Moshkovich","doi":"10.1109/ICSM.2010.5609711","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609711","url":null,"abstract":"Reverse engineering is an essential part of the modernization process that enables the evolution of existing software assets. The extraction of state machines out of existing code is an important aspect of the reverse engineering process. However, none of the reverse engineering tools fully support an automatic extraction of state machines.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127268725","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":"Using clone detection to identify bugs in concurrent software","authors":"Kevin Jalbert, J. S. Bradbury","doi":"10.1109/ICSM.2010.5609529","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609529","url":null,"abstract":"In this paper we propose an active testing approach that uses clone detection and rule evaluation as the foundation for detecting bug patterns in concurrent software. If we can identify a bug pattern as being present then we can localize our testing effort to the exploration of interleavings relevant to the potential bug. Furthermore, if the potential bug is indeed a real bug, then targeting specific thread interleavings instead of examining all possible executions can increase the probability of the bug being detected sooner.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126491578","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 longitudinal analysis of the dependency concentration in smaller modules for open-source software products","authors":"Mohammed Aziz Parande, Güneş Koru","doi":"10.1109/ICSM.2010.5609568","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609568","url":null,"abstract":"Our recent studies on single releases of multiple open-source software (OSS) products showed a higher concentration of dependencies in smaller modules. For one of the products, it was observed that an isolatable and observable refactoring initiative exacerbated this concentration inequality. In this paper, we empirically investigate the dependency concentration in smaller modules from a longitudinal perspective: (1) whether this concentration inequality always exists over product life time; (2) how it changes. We hypothesize that the concentration inequality should either remain at same levels or increase over time. This is because large-scale and long-lived software products usually go through some degree of continuous and intermittent refactoring. Our results show that dependencies concentrate in smaller classes in all releases, and this concentration inequality generally increases over successive releases. We suggest that software practitioners continuously pay a higher QA attention to smaller modules. We also recommend increasing such QA focus as a product matures and goes through refactoring activities.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124293618","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":"Certifying software robustness using program slicing","authors":"M. Abdallah, M. Munro, K. Gallagher","doi":"10.1109/ICSM.2010.5609755","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609755","url":null,"abstract":"Robustness of a program is the degree of system correctness of all parts. Measuring robustness is a goal for many researchers. In this paper, program slicing is used to build a robustness hierarchy, where this hierarchy will be used to test, and build a robust program.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"454 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122807563","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":"Combining micro-blogging and IDE interactions to support developers in their quests","authors":"Anja Guzzi, M. Pinzger, A. Deursen","doi":"10.1109/ICSM.2010.5609683","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609683","url":null,"abstract":"Software engineers spend a considerable amount of time on program comprehension. Although vendors of Integrated Development Environments (IDEs) and analysis tools address this challenge, current support for reusing and sharing program comprehension knowledge is limited. As a consequence, developers have to go through the time-consuming program understanding phase multiple times, instead of recalling knowledge from their past or other's program comprehension activities. In this paper, we present an approach to making the knowledge gained during the program comprehension process accessible, by combining micro-blog messages with interaction data automatically collected from the IDE. We implemented the approach in an Eclipse plugin called James and performed a first evaluation of the underlying approach effectiveness, assessing the nature and usefulness of the collected messages, as well as the added benefit of combining them with interaction data.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"22 5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126670502","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}