4,276 research outputs found
Combining k-Induction with Continuously-Refined Invariants
Bounded model checking (BMC) is a well-known and successful technique for
finding bugs in software. k-induction is an approach to extend BMC-based
approaches from falsification to verification. Automatically generated
auxiliary invariants can be used to strengthen the induction hypothesis. We
improve this approach and further increase effectiveness and efficiency in the
following way: we start with light-weight invariants and refine these
invariants continuously during the analysis. We present and evaluate an
implementation of our approach in the open-source verification-framework
CPAchecker. Our experiments show that combining k-induction with
continuously-refined invariants significantly increases effectiveness and
efficiency, and outperforms all existing implementations of k-induction-based
software verification in terms of successful verification results.Comment: 12 pages, 5 figures, 2 tables, 2 algorithm
Improving the Analyst and Decision-Maker’s Perspective through Uncertainty Visualization
This thesis constructs the Taxonomy of Uncertainty and an approach for enhancing the information in decision support systems. The hierarchical categorization of numerous causes for uncertainty defines the taxonomy, which fostered the development of a technique for visualizing uncertainty. This technique is fundamental to expressing the multi-dimensional uncertainty that can be associated with any object. By including and intuitively expressing uncertainty, the approach facilitates and enhances intuition and decision-making without undue information overload. The resulting approach for enhancing the information involves recording uncertainty, identifying the relevant items, computing and visualizing uncertainty, and providing interaction with the selection of uncertainty. A prototype embodying this approach to enhancing information by including uncertainty was used to validate these efforts. Evaluation responses of a small sample space support the thesis that the decision-maker\u27s knowledge is enhanced with enlightening information afforded by including and visualizing uncertainty, which can improve the decision-making process. Although the concept was initially conceived to help decision support system users deal with uncertainty, this methodology and these ideas can be applied to any problem where objects with many potential reasons for uncertainty are the focus of the decision-making
Impact analysis of database schema changes
When database schemas require change, it is typical to predict the effects of the change, first to gauge
if the change is worth the expense, and second, to determine what must be reconciled once the change
has taken place. Current techniques to predict the effects of schema changes upon applications that use
the database can be expensive and error-prone, making the change process expensive and difficult. Our
thesis is that an automated approach for predicting these effects, known as an impact analysis, can create
a more informed schema change process, allowing stakeholders to obtain beneficial information, at lower
costs than currently used industrial practice. This is an interesting research problem because modern
data-access practices make it difficult to create an automated analysis that can identify the dependencies
between applications and the database schema. In this dissertation we describe a novel analysis that
overcomes these difficulties.
We present a novel analysis for extracting potential database queries from a program, called query
analysis. This query analysis builds upon related work, satisfying the additional requirements that we
identify for impact analysis.
The impacts of a schema change can be predicted by analysing the results of query analysis, using
a process we call impact calculation. We describe impact calculation in detail, and show how it can be
practically and efficiently implemented.
Due to the level of accuracy required by our query analysis, the analysis can become expensive,
so we describe existing and novel approaches for maintaining an efficient and computational tractable
analysis.
We describe a practical and efficient prototype implementation of our schema change impact analysis,
called SUITE. We describe how SUITE was used to evaluate our thesis, using a historical case
study of a large commercial software project. The results of this case study show that our impact analysis
is feasible for large commercial software applications, and likely to be useful in real-world software
development
Performance Problem Diagnostics by Systematic Experimentation
Diagnostics of performance problems requires deep expertise in performance engineering and entails a high manual effort. As a consequence, performance evaluations are postponed to the last minute of the development process. In this thesis, we introduce an automatic, experiment-based approach for performance problem diagnostics in enterprise software systems. With this approach, performance engineers can concentrate on their core competences instead of conducting repeating tasks
Are Multi-language Design Smells Fault-prone? An Empirical Study
Nowadays, modern applications are developed using components written in
different programming languages. These systems introduce several advantages.
However, as the number of languages increases, so does the challenges related
to the development and maintenance of these systems. In such situations,
developers may introduce design smells (i.e., anti-patterns and code smells)
which are symptoms of poor design and implementation choices. Design smells are
defined as poor design and coding choices that can negatively impact the
quality of a software program despite satisfying functional requirements.
Studies on mono-language systems suggest that the presence of design smells
affects code comprehension, thus making systems harder to maintain. However,
these studies target only mono-language systems and do not consider the
interaction between different programming languages. In this paper, we present
an approach to detect multi-language design smells in the context of JNI
systems. We then investigate the prevalence of those design smells.
Specifically, we detect 15 design smells in 98 releases of nine open-source JNI
projects. Our results show that the design smells are prevalent in the selected
projects and persist throughout the releases of the systems. We observe that in
the analyzed systems, 33.95% of the files involving communications between Java
and C/C++ contains occurrences of multi-language design smells. Some kinds of
smells are more prevalent than others, e.g., Unused Parameters, Too Much
Scattering, Unused Method Declaration. Our results suggest that files with
multi-language design smells can often be more associated with bugs than files
without these smells, and that specific smells are more correlated to
fault-proneness than others
Performance Problem Diagnostics by Systematic Experimentation
In this book, we introduce an automatic, experiment-based approach for performance problem diagnostics in enterprise software systems. The proposed approach systematically searches for root causes of detected performance problems by executing series of systematic performance tests. The presented approach is evaluated by various case studies showing that the presented approach is applicable to a wide range of contexts
- …