411 research outputs found

    Ingeniería de software: Reflexiones sobre una disciplina en evolución

    Get PDF
    This paper analyzes Software Architecture, defining it and describing the evolution of this field and its role in software engineering. In addition, it covers key concepts of a software archi- tecture course, steps to pursue an architectural thinking, the elements of organizational architecture maturity and emerging trends and issues such as: Architecture evolution, Architecture conformance, Frameworks, platforms, and ecologies, and Self-Adaptive Systems. Further we examine how software engineering has matured over the past two decades (and the role that software architecture has played in this process), the requirements of architectural thinking (at both technical and organizational levels), the importance for an organization to have mature archi- tectural practices and the existence of important new trends that are reshaping the way software architecture is practicedEste artículo analiza la arquitectura del software, definiéndolo y describiendo la evolución de este campo, y su rol en la ingeniería del software. Además, este cubre los conceptos claves de un curso sobre la arquitectura del software, los pasos para conseguir un pensamiento arquitectónico, los elementos de la madurez de la arquitectura estructural, y las tendencias y problemas emergentes como: la evolución de la arquitectura, la conformidad de la misma, los marcos de trabajo, las plataformas, y las ecologías, y los sistemas automáticos. Más allá, examinamos cómo la ingeniería del software ha madurado durante estas últimas dos décadas (y el papel que la arquitectura del software interpretó en este proceso); los requerimientos del pensamiento arquitectónico (a niveles tanto técnicos como organizativos); la importancia que tiene para una organización el hecho de que, las prácticas arquitecturales haya madurado; y la existencia de nuevas tendencias importantes que están modulando la manera en la que se practica la arquitectura del software

    Hyper-parameter Tuning for Adversarially Robust Models

    Full text link
    This work focuses on the problem of hyper-parameter tuning (HPT) for robust (i.e., adversarially trained) models, with the twofold goal of i) establishing which additional HPs are relevant to tune in adversarial settings, and ii) reducing the cost of HPT for robust models. We pursue the first goal via an extensive experimental study based on 3 recent models widely adopted in the prior literature on adversarial robustness. Our findings show that the complexity of the HPT problem, already notoriously expensive, is exacerbated in adversarial settings due to two main reasons: i) the need of tuning additional HPs which balance standard and adversarial training; ii) the need of tuning the HPs of the standard and adversarial training phases independently. Fortunately, we also identify new opportunities to reduce the cost of HPT for robust models. Specifically, we propose to leverage cheap adversarial training methods to obtain inexpensive, yet highly correlated, estimations of the quality achievable using state-of-the-art methods (PGD). We show that, by exploiting this novel idea in conjunction with a recent multi-fidelity optimizer (taKG), the efficiency of the HPT process can be significantly enhanced

    Architectural Mismatch: Why Reuse is Still So Hard

    Get PDF
    In this article, David Garlan, Robert Allen, and John Ockerbloom reflect on the state of architectural mismatch, a term they coined in their 1995 IEEE Software article, Architectural Mismatch: Why Reuse Is So Hard. Although the nature of software systems has changed dramatically since the earlier article was published, the challenge of architectural mismatch remains an important concern for the software engineering field

    Integrating Graceful Degradation and Recovery through Requirement-driven Adaptation

    Full text link
    Cyber-physical systems (CPS) are subject to environmental uncertainties such as adverse operating conditions, malicious attacks, and hardware degradation. These uncertainties may lead to failures that put the system in a sub-optimal or unsafe state. Systems that are resilient to such uncertainties rely on two types of operations: (1) graceful degradation, to ensure that the system maintains an acceptable level of safety during unexpected environmental conditions and (2) recovery, to facilitate the resumption of normal system functions. Typically, mechanisms for degradation and recovery are developed independently from each other, and later integrated into a system, requiring the designer to develop an additional, ad-hoc logic for activating and coordinating between the two operations. In this paper, we propose a self-adaptation approach for improving system resiliency through automated triggering and coordination of graceful degradation and recovery. The key idea behind our approach is to treat degradation and recovery as requirement-driven adaptation tasks: Degradation can be thought of as temporarily weakening original (i.e., ideal) system requirements to be achieved by the system, and recovery as strengthening the weakened requirements when the environment returns within an expected operating boundary. Furthermore, by treating weakening and strengthening as dual operations, we argue that a single requirement-based adaptation method is sufficient to enable coordination between degradation and recovery. Given system requirements specified in signal temporal logic (STL), we propose a run-time adaptation framework that performs degradation and recovery in response to environmental changes. We describe a prototype implementation of our framework and demonstrate the feasibility of the proposed approach using a case study in unmanned underwater vehicles.Comment: Pre-print for the SEAMS '24 conference (Software Engineering for Adaptive and Self-Managing Systems Conference

    ExTrA: Explaining architectural design tradeoff spaces via dimensionality reduction

    Get PDF
    In software design, guaranteeing the correctness of run-time system behavior while achieving an acceptable balance among multiple quality attributes remains a challenging problem. Moreover, providing guarantees about the satisfaction of those requirements when systems are subject to uncertain environments is even more challenging. While recent developments in architectural analysis techniques can assist architects in exploring the satisfaction of quantitative guarantees across the design space, existing approaches are still limited because they do not explicitly link design decisions to satisfaction of quality requirements. Furthermore, the amount of information they yield can be overwhelming to a human designer, making it difficult to see the forest for the trees. In this paper we present ExTrA (Explaining Tradeoffs of software Architecture design spaces), an approach to analyzing architectural design spaces that addresses these limitations and provides a basis for explaining design tradeoffs. Our approach employs dimensionality reduction techniques employed in machine learning pipelines like Principal Component Analysis (PCA) and Decision Tree Learning (DTL) to enable architects to understand how design decisions contribute to the satisfaction of extra-functional properties across the design space. Our results show feasibility of the approach in two case studies and evidence that combining complementary techniques like PCA and DTL is a viable approach to facilitate comprehension of tradeoffs in poorly-understood design spaces

    Exploiting architectural design knowledge to support self-repairing systems

    Get PDF

    Developing Self-Adaptive Microservice Systems: Challenges and Directions

    Full text link
    A self-adaptive system can dynamically monitor and adapt its behavior to preserve or enhance its quality attributes under uncertain operating conditions. This article identifies key challenges for the development of microservice applications as self-adaptive systems, using a cloud-based intelligent video surveillance application as a motivating example. It also suggests potential new directions for addressing most of the identified challenges by leveraging existing microservice practices and technologies.Comment: 8 pages, 1 figur
    • …
    corecore