1,721,008 research outputs found

    Exploiting Queuing Networks to Model and Assess the Performance of Self-Adaptive Software Systems: A Survey

    Full text link
    Self-adaptation has emerged as a primary concern in the context of modern software systems, due to the high dynamicity of the environments where they operate, which implies the need for such systems to properly face significant degrees of uncertainty. To this aim, much work has been done, mainly by coupling autonomic managers to the managed subsystem which perceives and affects the environment through its sensors and actuators, respectively. Such coupling often results into MAPE-K feedback loop(s), i.e. a Knowledge (K)-based architectural model that divides the adaptation process into four activities, namely Monitor (M), Analyze (A), Plan (P) and Execute (E). Performance modeling notations, analysis methods and tools, have been exploited and coupled to other kinds of techniques (e.g. control theory, machine learning) for modeling and assessing the performance of autonomic managers, possibly aimed at supporting the identification of more convenient architectural alternatives. Since moving in such a big arena is not trivial and it is easy to be overwhelmed, in this literature survey, we focus on a particular performance modeling paradigm, namely Queuing Networks, with the aim of clarifying the state-of-art in exploiting such a notation to model and assess performance of Self-Adaptive Software Systems. We conclude by bringing out some research opportunities that may be worth exploring in the near future

    Applying Design Patterns to Remove Software Performance Antipatterns: A Preliminary Approach

    Full text link
    Patterns and antipatterns represent powerful instruments in the hands of software designers, for improving the quality of software systems. A large variety of design patterns arose since decades, as well as several performance antipatterns have been defined. In this paper we propose a preliminary approach for antipattern-based refactoring of software systems, driven by design patterns application. The approach is focused on refactoring software artifacts (i.e., models, code) by applying design patterns, with the aim of removing possible performance antipatterns occurring on such artifacts. Based on our approach, design patterns are ranked in order to drive the refactoring choice. We also provide an illustrative example as a preliminary validation of our approach, showing how the ranking method works over three design patterns for removing the Empty Semi-Trucks performance antipattern, and we finally identify future research directions of our work

    A Multi-objective Performance Optimization Approach for Self-adaptive Architectures

    No full text
    This paper presents an evolutionary approach for multi-objective performance optimization of Self-Adaptive Systems, represented by a specific family of Queuing Network models, namely SMAPEA QNs. The approach is based on NSGA-II genetic algorithm and it is aimed at suggesting near-optimal alternative architectures in terms of mean response times for the different available system operational modes. The evaluation is performed through a controlled experiment with respect to a realistic case study, with the aim of establishing whether meta-heuristics are worth to be investigated as a valid support to performance optimization of Self-Adaptive Systems

    Performance-Driven Software Architecture Refactoring

    No full text
    Performance engineering of software architecture can be defined as the process of analyzing the performance of a software architecture and then reacting to problems emerging from such analysis by refactoring the software architecture in order to meet performance requirements. In the last decade, many approaches in this field have appeared, whereas the problem of reacting to problems by proposing and evaluating alternative solutions through architectural refactoring has been much less treated. Indeed, the introduction of automated support to refactoring becomes crucial to drive architectural evolutions that might lead to performance improvement. This tutorial is aimed at introducing notations, methodologies and tools that can be adopted for Performance-Driven Software Architecture Refactoring

    Performance antipattern detection through fUML model library

    No full text
    Identifying performance problems is critical in the software design, mostly because the results of performance analysis (i.e., mean values, variances, and probability distributions) are difficult to be interpreted for providing feedback to software designers. Performance antipatterns support the interpretation of performance analysis results and help to fill the gap between numbers and design alternatives. In this paper, we present a model-driven framework that enables an early detection of performance antipatterns, i.e., without generating performance models. Specific design features (e.g., the number of sent messages) are monitored while simulating the specified software model, in order to point out the model elements that most likely contribute for performance flaws. To this end, we propose to use fUML models instrumented with a reusable library that provides data structures (as Classes) and algorithms (as Activities) to detect performance antipatterns while simulating the fUML model itself. A case study is provided to show our framework at work, its current capabilities and future challenges

    Going Beyond Counting First Authors in Author Co-citation Analysis

    Full text link
    The present study examines one of the fundamental aspects of author co-citation analysis (ACA) - the way co-citation counts are defined. Co-citation counting provides the data on which all subsequent statistical analyses and mappings are based, and we compare ACA results based on two different types of co-citation counting - the traditional type that only counts the first one among a cited work's authors on the one hand and a non-traditional type that takes into account the first 5 authors of a cited work on the other hand. Results indicate that the picture produced through this non-traditional author co-citation counting contains more coherent author groups and is therefore considerably clearer. However, this picture represents fewer specialties in the research field being studied than that produced through the traditional first-author co-citation counting when the same number of top-ranked authors is selected and analyzed. Reasons for these effects are discussed

    A metamodel for the specification and verification of model refactoring actions

    No full text
    Refactoring has become a valuable activity during the software development lifecycle, because it can be induced by different causes, like new requirements or quality improvement. In code-based development contexts this activity has been widely studied, whereas in model-driven ones, where models are first-class development entities, there are many issues yet to be tackled. In this paper we present a metamodel that supports the specification of pre- and post-conditions of model refactoring actions, and the automated derivation and verification of such conditions in specific modeling languages. Our work is aimed at helping users to implement refactoring actions in the adopted modelling language by providing an environment for guaranteeing the feasibility of refactoring actions. Our primary focus is on the definition of applicable sequences of refactoring actions, rather than on the user-driven step-by-step application of refactoring actions. As an example, we illustrate the applicability of our metamodel for UML models refactoring

    Automating Performance Antipattern Detection and Software Refactoring in UML Models

    No full text
    The satisfaction of ever more stringent performance requirements is one of the main reasons for software evolution. However, it is complex to determine the primary causes of performance degradation, because they may depend on the joint combination of multiple factors (e.g., workload, software deployment, hardware utilization). With the increasing complexity of software systems, classical bottleneck analysis shows limitations in capturing complex performance problems. Hence, in the last decade, the detection of performance antipatterns has gained momentum as an effective way to identify performance degradation causes. We introduce PADRE (Performance Antipattern Detection and REfactoring), that is a tool for: (i) detecting performance antipattern in UML models, and (ii) refactoring models with the aim of removing the detected antipatterns. PADRE has been implemented within Epsilon, an open-source platform for model-driven engineering. It is based on a methodology that allows performance antipattern detection and refactoring within the same implementation context
    corecore