No abstract available.
Predicting build failures using social network analysis on developer communication
A critical factor in work group coordination, communication has been studied extensively. Yet, we are missing objective evidence of the relationship between successful coordination outcome and communication structures. Using data from IBM's Jazz™ ...
How tagging helps bridge the gap between social and technical aspects in software development
Empirical research on collaborative software development practices indicates that technical and social aspects of software development are often intertwined. The processes followed are tacit and constantly evolving, thus not all of them are amenable to ...
Tesseract: Interactive visual exploration of socio-technical relationships in software development
Software developers have long known that project success requires a robust understanding of both technical and social linkages. However, research has largely considered these independently. Research on networks of technical artifacts focuses on ...
HOLMES: Effective statistical debugging via efficient path profiling
Statistical debugging aims to automate the process of isolating bugs by profiling several runs of the program and using statistical analysis to pinpoint the likely causes of failure. In this paper, we investigate the impact of using richer program ...
Taming coincidental correctness: Coverage refinement with context patterns to improve fault localization
Recent techniques for fault localization leverage code coverage to address the high cost problem of debugging. These techniques exploit the correlations between program failures and the coverage of program entities as the clue in locating faults. ...
Lightweight fault-localization using multiple coverage types
Lightweight fault-localization techniques use program coverage to isolate the parts of the code that are most suspicious of being faulty. In this paper, we present the results of a study of three types of program coverage—statements, branches, and data ...
Succession: Measuring transfer of code and developer productivity
Code ownership transfer or succession is a crucial ingredient in open source code reuse and in offshoring projects. Measuring succession can help understand factors that affect the success of such transfers and suggest ways to make them more efficient. ...
Predicting faults using the complexity of code changes
Predicting the incidence of faults in code has been commonly associated with measuring complexity. In this paper, we propose complexity metrics that are based on the code change process instead of on the code. We conjecture that a complex code change ...
A case-study on using an Automated In-process Software Engineering Measurement and Analysis system in an industrial environment
Automated systems for measurement and analysis are not adopted on a large scale in companies, despite the opportunities they offer. The fear of the “Big Brother” and the lack of reports giving insights into the real adoption process and concrete usages ...
Using quantitative analysis to implement autonomic IT systems
The software underpinning today's IT systems needs to adapt dynamically and predictably to rapid changes in system workload, environment and objectives. We describe a software framework that achieves such adaptiveness for IT systems whose components can ...
Model evolution by run-time parameter adaptation
Models can help software engineers to reason about design-time decisions before implementing a system. This paper focuses on models that deal with non-functional properties, such as reliability and performance. To build such models, one must rely on ...
Taming Dynamically Adaptive Systems using models and aspects
Since software systems need to be continuously available under varying conditions, their ability to evolve at runtime is increasingly seen as one key issue. Modern programming frameworks already provide support for dynamic adaptations. However the high-...
Accurate Interprocedural Null-Dereference Analysis for Java
Null dereference is a commonly occurring defect in Java programs, and many static-analysis tools identify such defects. However, most of the existing tools perform a limited interprocedural analysis. In this paper, we present an interprocedural path-...
The road not taken: Estimating path execution frequency statically
A variety of compilers, static analyses, and testing frameworks rely heavily on path frequency information. Uses for such information range from optimizing transformations to bug finding. Path frequencies are typically obtained through profiling, but ...
Automatic dimension inference and checking for object-oriented programs
This paper introduces UniFi, a tool that attempts to automatically detect dimension errors in Java programs. UniFi infers dimensional relationships across primitive type and string variables in a program, using an inter-procedural, context-sensitive ...
In-field healing of integration problems with COTS components
Developers frequently integrate complex COTS frameworks and components in software applications. COTS products are often only partially documented, and developers may misuse technologies and introduce integration faults, as witnessed by the many entries ...
Modular string-sensitive permission analysis with demand-driven precision
In modern software systems, programs are obtained by dynamically assembling components. This has made it necessary to subject component providers to access-control restrictions. What permissions should be granted to each component? Too few permissions ...
License integration patterns: Addressing license mismatches in component-based development
In this paper we address the problem of combining software components with different and possibly incompatible legal licenses to create a software application that does not violate any of these licenses while potentially having its own. We call this ...
Automatic creation of SQL Injection and cross-site scripting attacks
We present a technique for finding security vulnerabilities in Web applications. SQL Injection (SQLI) and cross-site scripting (XSS) attacks are widespread forms of attack in which the attacker crafts the input to the application to access or modify ...
Invariant-based automatic testing of AJAX user interfaces
AJAX-based Web 2.0 applications rely on stateful asynchronous client/server communication, and client-side runtime manipulation of the DOM tree. This not only makes them fundamentally different from traditional web applications, but also more error-...
FEATUREHOUSE: Language-independent, automated software composition
Superimposition is a composition technique that has been applied successfully in many areas of software development. Although superimposition is a general-purpose concept, it has been (re)invented and implemented individually for various kinds of ...
Automatically capturing source code context of NL-queries for software maintenance and reuse
As software systems continue to grow and evolve, locating code for maintenance and reuse tasks becomes increasingly difficult. Existing static code search techniques using natural language queries provide little support to help developers determine ...
Semantics-based code search
Our goal is to use the vast repositories of available open source code to generate specific functions or classes that meet a user's specifications. The key words here are specifications and generate. We let users specify what they are looking for as ...
Reasoning about edits to feature models
Features express the variabilities and commonalities among programs in a software product line (SPL). A feature model defines the valid combinations of features, where each combination corresponds to a program in an SPL. SPLs and their feature models ...
Index Terms
- Proceedings of the 31st International Conference on Software Engineering