411 research outputs found
IngenierÃa de software: Reflexiones sobre una disciplina en evolución
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
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
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
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
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
Developing Self-Adaptive Microservice Systems: Challenges and Directions
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
- …