{"title":"Calculating Preconditions for Parallel Workflows","authors":"Chen-Wei Wang","doi":"10.1109/APSEC.2012.124","DOIUrl":"https://doi.org/10.1109/APSEC.2012.124","url":null,"abstract":"We study the problems of race condition and process synchronization, commonly found in concurrent programming, in the context of information systems. These systems hold large quantities of business data constrained by complex structural and semantic rules. We assume that operations are equipped with guards against any violation of the data integrity, and that workflows (i.e. complex patterns of interactions) operate upon a shared, sequential data component. Updates via parallel workflows, through interleaving their operations, may lead to a state where the integrity is maintained but a goal property is not satisfied. Given workflows to be run in parallel, we calculate a precondition for establishing a state property upon their termination. Our calculation is efficient, using dynamic programming, and is based on the weakest precondition semantics of individual operations, we prove its correctness via a structural induction on the data structure: a 2-dimensional matrix.","PeriodicalId":364411,"journal":{"name":"2012 19th Asia-Pacific Software Engineering Conference","volume":"144 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-12-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116371977","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":"Mining Software Revision History Using Advanced Social Network Analysis","authors":"Bharath Cheluvaraju, K. Nagal, A. Pasala","doi":"10.1109/APSEC.2012.113","DOIUrl":"https://doi.org/10.1109/APSEC.2012.113","url":null,"abstract":"In this paper, we propose a novel method to investigate relationship between the files that are committed together by applying advanced social network analysis to a \"network\" of source files that are committed together. The source files constitute the nodes of the network and an edge is created between files which are committed together in the same revision. We present our findings with recommendations on how mining revision histories from a social network analysis perspective can be used to build inferences on change propagation, evaluate impact analysis, and extract cross-programming-language relationships. We performed empirical analysis on revision histories of a well-known open-source web application testing system, 'Selenium' and results are reported.","PeriodicalId":364411,"journal":{"name":"2012 19th Asia-Pacific Software Engineering Conference","volume":"66 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-12-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125925035","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":"Model-Based Software Architecture Evolution and Evaluation","authors":"Ana Dragomir, H. Lichter","doi":"10.1109/APSEC.2012.118","DOIUrl":"https://doi.org/10.1109/APSEC.2012.118","url":null,"abstract":"The architecture of software systems should be well documented and up to date. Knowledge about the software architecture of a software system enables reasoning regarding the software's qualities such as modifiability, extensibility, security, etc. However, very often the architecture is only described during the initial phases of a software project and then undergoes progressive degradation. A degenerated architecture description cannot be used for reasoning regarding the qualities of the software, even if it possibly conveys the required functionality. This paper proposes an approach for a continuous model-based monitoring and semi-automatic evaluation of software architectures, meant to support the architecture-based evolution of software systems at various abstraction levels.","PeriodicalId":364411,"journal":{"name":"2012 19th Asia-Pacific Software Engineering Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-12-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128911043","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":"Software Development Team Dynamics in SPI: A VSE Context","authors":"S. Basri, Rory V. O'Connor","doi":"10.1109/APSEC.2012.26","DOIUrl":"https://doi.org/10.1109/APSEC.2012.26","url":null,"abstract":"Teams of software engineers working together in a collaborative manner to execute a software development process complete most software development work. Whilst there is much literature examining the software process and how to improve the software process, less attention has been paid to the issues of team working and specifically the impact of team dynamics on the software development process. Teamwork is more effective with the existence of positive team dynamic, as it encourages a better working environment with satisfied, fulfilled employees who will in turn be more productive. However, achieving and maintaining positive team dynamics in Very Small Entities (VSEs) is particularly challenging given the unique characteristics of VSE and limited resources in particular. This paper discusses the dynamics of software development teams (structure, process, communication, learning and sharing) and its impact on Software Process Improvement (SPI) in software VSEs based on empirical data collected in a groups of software VSEs. This paper shows that VSEs have a high level of team dynamics although their SPI initiatives are conducted on a small scale and in an informal and indirect manner. The results also indicated that this situation occurs due to the following factors in a team: working and social relationship, willingness to share, having a good interpersonal skill, and work closely with each other.","PeriodicalId":364411,"journal":{"name":"2012 19th Asia-Pacific Software Engineering Conference","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-12-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130544623","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":"Comparison of Seven Bug Report Types: A Case-Study of Google Chrome Browser Project","authors":"Sangeeta Lal, A. Sureka","doi":"10.1109/APSEC.2012.54","DOIUrl":"https://doi.org/10.1109/APSEC.2012.54","url":null,"abstract":"Bug reports submitted to an issue tracking system can belong to different categories such as crash, regression, security, cleanup, polish, performance and usability. A deeper understanding of the properties and features of various categories of bug reports can have implications in improving software maintenance processes, tools and practices. We identify several metrics and characteristics serving as dimensions on which various types of bug reports can be compared. We perform a case-study on Google Chromium Browser open-source project and conduct a series of experiments to calculate various metrics. We present a characterization study comparing different types of bug reports on metrics such as: statistics on close-time, number of stars, number of comments, discriminatory and frequent words for each class, entropy across reporters, entropy across component, opening and closing trend, continuity and debugging efficiency performance characteristics. The calculated metrics shows the similarities and differences on various dimensions for seven different types of bug reports.","PeriodicalId":364411,"journal":{"name":"2012 19th Asia-Pacific Software Engineering Conference","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-12-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132027114","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}
P. Darke, Mayur Khanzode, Arun Nair, U. Shrotri, R. Venkatesh
{"title":"Precise Analysis of Large Industry Code","authors":"P. Darke, Mayur Khanzode, Arun Nair, U. Shrotri, R. Venkatesh","doi":"10.1109/APSEC.2012.97","DOIUrl":"https://doi.org/10.1109/APSEC.2012.97","url":null,"abstract":"Static analysis of code is very effective in finding common programmer errors but it comes at a price - a large number of false positives. Model checking, on the other hand, is very precise but does not scale up. We have developed a tool that combines both techniques and also implements a novel loop abstraction. The tool was run on 2 million lines of embedded code to analyze for two properties - division by zero and array index out of bounds. In other experiments we compared the precision of our tool to that achieved by tools implementing abstract interpretation. This paper presents details of the tool and the results of evaluations that we have carried out to measure the scalability and to compare the precision of our method on industry code against other static analysis tools.","PeriodicalId":364411,"journal":{"name":"2012 19th Asia-Pacific Software Engineering Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-12-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129220619","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":"Factorising the Multiple Fault Localization Problem: Adapting Single-Fault Localizer to Multi-fault Programs","authors":"Cheng Gong, Zheng Zheng, Yunqian Zhang, Zhenyu Zhang, Yunzhi Xue","doi":"10.1109/APSEC.2012.22","DOIUrl":"https://doi.org/10.1109/APSEC.2012.22","url":null,"abstract":"Software failures are not rare and fault localizations always an important but laborious activity. Since there is no guarantee that no more than one fault exists in a faulty program, the approach to locate all the faults is necessary. Spectrum-based fault localization techniques collect dynamic program spectra as well as test results of program runs, and estimate the extent of program elements being related to fault(s). A popular solution into generate a ranked list of suspicious candidates, which are checked in order, stopping whenever a fault is found. Such single fault localizers locate one fault in one checking round, terminate, and wait to be triggered by the regression testing to validate the fixing of the located fault. In this paper, we study the manifestation of multiple faults in a program and propose an effective mechanism to indicate their presence. When a fault is reached during the checking round, we use it to interpret the failures observed, and update the indicator to judge whether there remain other faults in the program. Our indicator serves as a stopping criterion of checking the ranked list of suspicious candidates. Our work factories the multiple fault localization problem into developing single-fault localizers and adapting them to multi-fault programs. It both improves the fault localization efficiencies of single-fault localizers, and avoids the ineffective efforts of thoroughly abandoning the many single-fault localizers to develop multi-fault localizers.","PeriodicalId":364411,"journal":{"name":"2012 19th Asia-Pacific Software Engineering Conference","volume":"55 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-12-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116119760","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":"DRE-specific Wikis for Distributed Requirements Engineering: A Review","authors":"Rong Peng, Han Lai","doi":"10.1109/APSEC.2012.72","DOIUrl":"https://doi.org/10.1109/APSEC.2012.72","url":null,"abstract":"Wikis, as typical well-known knowledge management tools that support collaborative work, are adopted by more and more practitioners and researchers as the basis to develop Distributed Requirements Engineering (DRE) tools. Thus, many wikis which are enhanced specially for supporting various activities in Distributed Requirements Engineering (namely DRE-specific wikis) are developed. The main goal of this study is to discover all the available DRE-specific wikis, gain an insight into how and to what degree current DRE-specific wikis can support the DRE activities, and identify the future research directions. We adopt the methodology of systematic literature review to find DRE-specific wikis, analyze the features embodied in them, identify DRE activities supported by them, and cluster the users' feedbacks from their literatures. The results show that 1) distributed requirements elicitation is the most popular DRE activity supported by current DRE-specific wikis, 2) enhanced features are mainly designed for this phase, 3) the well recognized advantage for using DRE-specific wikis is that they can facilitate the collaborative work, and the disadvantages mainly lie in the organization of the content and the usability. Based on the findings of this review, the possible future research directions of DRE-specific wikis have been pointed out, especially in distributed requirements elicitation, negotiation, validation, and management. The importance of cross-over studies and empirical research are both emphasized at the end of the paper.","PeriodicalId":364411,"journal":{"name":"2012 19th Asia-Pacific Software Engineering Conference","volume":"182 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-12-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116140662","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":"Towards Generating Local High-Coverage Tests for Evolving Software","authors":"Yi Zhou, Mengxiang Lin, Yang Lu, Xiaomei Hou","doi":"10.1109/APSEC.2012.85","DOIUrl":"https://doi.org/10.1109/APSEC.2012.85","url":null,"abstract":"Test suite augmentation techniques focus on identifying test requirements or creating new tests to adequately exercise the effects of program changes. To reveal the effects of changes as much as possible, this paper propose a test suite augmentation approach, a technique that aims at covering as many as possible longer dependence chains related to the changes in a cost-effective way. In particular, the scope of thorough dependence checking is limited to the changed function of the program under test. A test generation approach that covers the specified function in the program under test at a local high-level coverage is designed. Preliminary experiments show that our approach can reveal most effects of changes with fewer tests.","PeriodicalId":364411,"journal":{"name":"2012 19th Asia-Pacific Software Engineering Conference","volume":"57 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-12-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125130783","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 Empirical Analysis of the Impact of Comment Statements on Fault-Proneness of Small-Size Module","authors":"Hirohisa Aman","doi":"10.1109/APSEC.2012.108","DOIUrl":"https://doi.org/10.1109/APSEC.2012.108","url":null,"abstract":"Code size metrics are commonly useful in predicting fault-prone modules, and the larger module tends to be more faulty. In other words, small-size modules are considered to have lower risks of fault. However, since the majority of modules in a software are often small-size, many ``small but faulty'' modules have been found in the real world. Hence, another fault-prone module prediction method, intended for small-size module, is also required. Such a new method for small-size module should use metrics other than code size since all modules are small size. This paper focuses on ``comments'' written in the source code from a novel perspective of size-independent metrics, comments have not been drawn much attention in the field of fault-prone module prediction. The empirical study collects 11,512 small-size modules, whose LOC are less than the median, from three major open source software, and analyzes the relationship between the lines of comments and the fault-proneness in the set of small-size modules. The empirical results show the followings: 1) A module in which some comments are written is more likely to be faulty than non-commented ones, the fault rate of commented modules is about 1.8-3.5 times higher than that of non-commented ones. 2) Writing one to four lines of comments would be thresholds of the above tendency.","PeriodicalId":364411,"journal":{"name":"2012 19th Asia-Pacific Software Engineering Conference","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-12-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122660213","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}