4,951 papers · page 89 of 248
Guoxin Su, David S. Rosenblum
Probabilistic model checking is a quantitative verification technology for computer systems and has been the focus of intense research for over a decade. While in many circumstances of probabilistic model checking it is reasonable to anticipate a possible discrepancy between a st…
Siddharth Subramanian, Laura Inozemtseva, Reid Holmes
Application Programming Interfaces (APIs) provide powerful abstraction mechanisms that enable complex functionality to be used by client programs. However, this abstraction does not come for free: understanding how to use an API can be difficult. While API documentation can help,…
Keerthi Thomas, Arosha K. Bandara, Blaine A. Price, Bashar Nuseibeh
As mobile computing applications have become commonplace, it is increasingly important for them to address end-users’ privacy requirements. Privacy requirements depend on a number of contextual socio-cultural factors to which mobility adds another level of contextual variation. H…
Paolo Tonella, Roberto Tiella, Duy Cu Nguyen
Models - in particular finite state machine models - provide an invaluable source of information for the derivation of effective test cases. However, models usually approximate part of the program semantics and capture only some of the relevant dependencies and constraints. As a …
Jason Tsay, Laura Dabbish, James D. Herbsleb
Open source software is commonly portrayed as a meritocracy, where decisions are based solely on their technical merit. However, literature on open source suggests a complex social structure underlying the meritocracy. Social work environments such as GitHub make the relationship…
Mohsen Vakilian, Ralph E. Johnson
Modern Integrated Development Environments (IDEs) support many refactorings. Yet, programmers greatly underuse automated refactorings. Recent studies have applied traditional usability testing methodologies such as surveys, lab studies, and interviews to find the usability proble…
Jérôme Vouillon, Mehdi Dogguy, Roberto Di Cosmo
Modern software systems are built by composing components drawn from large repositories, whose size and complexity increase at a fast pace. Maintaining and evolving these software collections is a complex task, and a strict qualification process needs to be enforced. We studied i…
Patrick Wagstrom, Subhajit Datta
Distributed software development allows firms to leverage cost advantages and place work near centers of competency. This distribution comes at a cost -- distributed teams face challenges from differing cultures, skill levels, and a lack of shared working hours. In this paper we …
Lu Xiao, Yuanfang Cai, Rick Kazman
In this paper, we investigate software architecture as a set of overlapping design rule spaces, formed by one or more structural or evolutionary relationships and clustered using our design rule hierarchy algorithm. Considering evolutionary coupling as a special type of relations…
Qi Xuan, Vladimir Filkov
In distributed software development synchronized actions are important for completion of complex, interleaved tasks that require the abilities of multiple people. Synchronous development is manifested when file commits by two developers are close together in time and modify the s…
Guowei Yang, Sarfraz Khurshid, Suzette Person, Neha Rungta
This paper introduces iProperty, a novel approach that facilitates incremental checking of programs based on a property differencing technique. Specifically, iProperty aims to reduce the cost of checking properties as they are initially developed and as they co-evolve with the pr…
Xiangjuan Yao, Mark Harman, Yue Jia
Though mutation testing has been widely studied for more than thirty years, the prevalence and properties of equivalent mutants remain largely unknown. We report on the causes and prevalence of equivalent mutants and their relationship to stubborn mutants (those that remain undet…
Tingting Yu, Witawas Srisa-an, Gregg Rothermel
Concurrent programs are prone to various classes of difficult-to-detect faults, of which data races are particularly prevalent. Prior work has attempted to increase the cost-effectiveness of approaches for testing for data races by employing race detection techniques, but to date…
Dina Zayan, Michal Antkiewicz, Krzysztof Czarnecki
We present a controlled experiment for the empirical evaluation of Example-Driven Modeling (EDM), an approach that systematically uses examples for model comprehension and domain knowledge transfer. We conducted the experiment with 26 graduate and undergraduate students from elec…
Sai Zhang, Michael D. Ernst
Modern software often exposes configuration options that enable users to customize its behavior. During software evolution, developers may change how the configuration options behave. When upgrading to a new software version, users may need to re-configure the software by changin…
Robert Dyer, Hoan Anh Nguyen, Hridesh Rajan, Tien N. Nguyen
In today's software-centric world, ultra-large-scale software repositories, e.g. SourceForge (350,000+ projects), GitHub (250,000+ projects), and Google Code (250,000+ projects) are the new library of Alexandria. They contain an enormous corpus of software and information about s…
Chris Lewis, Zhongpeng Lin, Caitlin Sadowski, Xiaoyan Zhu, Rong Ou, E. James Whitehead Jr.
While many bug prediction algorithms have been developed by academia, they're often only tested and verified in the lab using automated means. We do not have a strong idea about whether such algorithms are useful to guide human developers. We deployed a bug prediction algorithm a…
Bram Adams, Christian Bird, Foutse Khomh, Kim Moir
Release engineering deals with all activities in between regular development and actual usage of a software product by the end user, i.e., integration, build, test execution, packaging and delivery of software. Although research on this topic goes back for decades, the increasing…
Mohamed Almorsy, John Grundy, Amani S. Ibrahim
Reviewing software system architecture to pinpoint potential security flaws before proceeding with system development is a critical milestone in secure software development lifecycles. This includes identifying possible attacks or threat scenarios that target the system and may r…
Dalal Alrajeh, Alessandra Russo, James Lockerbie, Neil A. M. Maiden, Alistair Mavin, Mark Novak
The purpose of requirements validation is to determine whether a large requirements set will lead to the achievement of system-related goals under different conditions — a task that needs automation if it is to be performed quickly and accurately. One reason for the current lack …