ArticlePDF Available

Towards a tactic-based evaluation of self-adaptive software architecture availability

Authors:

Abstract and Figures

Nowadays, several non-automatic or semi-automatic software architecture evaluation methods have been proposed to evaluate their quality attributes as availability. In spite of their applicability, they are not effective in self-adaptive software architectures due to their off-line properties; e.g., scenario-based methods. Since the architectural tactics provide a bridge between architectural designs and quality attributes, they have sufficient potential to resolve this problem. In this paper, we assume that the software architecture is completely composed of some architectural patterns. Then we propose an automated evaluation method which composes the architectural tactics and the patterns to measure the availability of software architectures. In this method, the composition of a few availability tactics and patterns are simulated with appropriate probability distribution functions. To predict the availability of patterns, a data mining approach is applied to these simulated models to generate training models for each combination of tactics and patterns. Furthermore, a utility function is defined to compute the availability of systems by these models in O(n) where n is the number of patterns of systems. This method improves the data gathering and analysis activities of the SASSY (Self-Architecting Software SYstems) framework. To validate our method, we have applied it to the Rapidminer case study.
Content may be subject to copyright.
A preview of the PDF is not available
... Parvizi-Mosaed et al. [24] improve the data collection analysis phase of the service-oriented SASSY (Self-Architecting Software SYstems) framework with an automated method to analyze the availability of an architecture. They do this by means of identifying, composing, and evaluating the availability of architectural patterns and tactics in the system via probability distribution functions. ...
Article
Full-text available
Software evolvability is an important quality attribute, yet one difficult to grasp. A certain base level of it is allegedly provided by Service-and Microservice-Based Systems, but many software professionals lack systematic understanding of the reasons and preconditions for this. We address this issue via the proxy of architectural modifiability tactics. By qualitatively mapping principles and patterns of Service-Oriented Architecture (SOA) and Microservices onto tactics and analyzing the results, we cannot only generate insights into service-oriented evolution qualities, but can also provide a modifiability comparison of the two popular service-based architectural styles. The results suggest that both SOA and Microservices possess several inherent qualities beneficial for software evolution. While both focus strongly on loose coupling and encapsulation, there are also differences in the way they strive for modifiability (e.g. governance vs. evolutionary design). To leverage the insights of this research, however, it is necessary to find practical ways to incorporate the results as guidance into the software development process.
... While still missing, this link can facilitate the analysis of the impact of structural changes on QAs. • Parvizi-Mosaed et al. [10] aim to automatize the process of pattern selection by building a model composed of two tactics (Ping-Echo and Heartbeat) and two patterns (Microkernel and Pipes&Filters). The authors consider every software architecture as a collection of patterns: a new architecture, hence, is the outcome of a pattern composition method, where the patterns change dynamically due to the tactics implementation. ...
Conference Paper
Full-text available
Among other knowledge, software architecture design decision-making relies on the relation between architectural patterns and quality attributes (QAs). However, this relation is often implicit, or in the best case informally and partially defined. This leads to sub-optimal understanding of the impact of the architecture design on the desired level of quality. In this work, we aim to shed light on the relation patterns-QAs in the context of an important architectural mechanism, architectural tactics. Tactics are design decisions that address a specific quality attribute. In turn, the implementation of a tactic has a different impact according to the used pattern. From a previous systematic literature review, we selected and analyzed 13 primary studies with a clear focus on tactics. From our analysis, we extracted three overarching challenges on the relationship patterns-QAs that are yet unsolved by research. The essence of these challenges suggests that further research is needed to identify a clear and precise link between the functional nature of architectural elements and non-functional quality properties.
... Software architecture has the potential to provide a foundation for run-time modification, but Lecture Notes on Software Engineering, Vol. 4, No. 2, May 2016 since have complex requirements and non-deterministic changing environments; face with challenges in its con figuration and also cover requirements in maintenance and run time [25], [26]. We reviewed variety of performed works and existing challenges in this field; however they demonstrated that a complete solution has not been provided yet. ...
Conference Paper
Full-text available
Microservices is an architectural style that considers systems as modular, costumer-centric, independent, and scalable suite of services. In order to address security requirements in microservices-based systems, architects often must focus on critical quality attributes, such as availability, aiming at employing architectural solutions that provide design decisions that address key security concerns (also known as architectural tactics). Although current architectural tactics for availability offer an extensive catalog of alternatives to improve availability and security factors, new availability concerns (emerging from security microservices requirements) demand new or improved architectural tactics. In this article, we examined the source code and documentation of 17 open source microservices-based systems, identified 5 uses of availability tactics, and characterized them using a newly introduced descriptive template. We found that almost all (4 out of 5) tactics did focus on preventing faults rather than detecting, mitigating or recovering from them (which are the traditional tactics taxonomies' branches). This approach can be further used to systematically identify and characterize architectural tactics in existing microservices-based systems in other critical quality attributes concerning security, such as confidentiality and integrity.
Article
Full-text available
Software architectural evaluation becomes a familiar practice in software en- gineering community for developing quality software. Architectural evaluation reduces software development efiort and costs, and enhances the quality of the software by verifying the addressability of quality requirements and identifying po- tential risks. There have been several methods and techniques to evaluate software architectures with respect to the desired quality attributes such as maintainability, usability and performance. This paper presents a discussion on difierent software architectural evaluation methods and techniques using a taxonomy. The taxon- omy is used to distinguish architectural evaluation methods based on the artifacts on which the methods are applied and two phases (early and late) of software life cycle. The artifacts include speciflcation of a whole software architecture and its building blocks: software architectural styles or design patterns. The role of this paper discussion is to review difierent existing well known architectural evalua- tion methods in order to view the state of the art in software architectural evalua- tion. This paper also concentrates on summarizing the importance of the difierent
Article
Full-text available
This is one of several reports that provide the current status on the work being done by the Software Engineering Institute (SEIsm) to understand the relationship between quality requirements and architectural design. The ultimate objective of this work is to provide analysis-based guidance to designers so that the quality attributes of generated designs are more predictable and better understood. Currently, four distinct problems must be solved to achieve that objective: (1) the precise specification of quality attribute requirements, (2) the enumeration of architectural decisions that can be used to achieve desired quality attribute requirements, (3) a means of coupling one quality attribute requirement to the relevant architectural decisions, and (4) a means of composing the relevant architectural decisions into a design. Embodying the solutions to these four problems into a design method that is sensitive to business priorities is an additional problem. This report deals with the third problem-coupling one quality attribute requirement to architectural decisions that achieve it. This report provides initial evidence that there is, in fact, a systematic relationship between general scenarios, concrete scenarios, architectural tactics, and design fragments. It examines, in detail, two concrete scenarios for performance and one for modifiability-and describes how to move from each scenario, through tactics, to design fragments that satisfy the scenario.
Article
A software architecture is the key artifact in software design, describing the main elements of a software system and their interrelationships. We present a method for automatically analyzing the quality of an architecture by searching for architectural and design patterns from it. In addition to approximating the quality of the design, the extracted patterns can also be used for predicting the quality of the actual system. The method is demonstrated by an industrial case over a complex telephone exchange software.
Article
The demand of high reliability and availability of today's systems is considerable as an increasing amount of complicated systems are tightly embedded into our surroundings. These systems have to work as intended and must provide services when needed. The problems in reliability and availability should be able to be analyzed prior to system implementation, when the fault corrections and modifications are easier and cheaper to perform and the design decisions can still be affected. The contribution of this chapter is a method for predicting reliability and availability at the architectural level. The Reliability and Availability Prediction (RAP) method defines how the reliability and availability requirements should be negotiated and mapped to the architecture, how they should be represented in the architectural models, and how the architecture should be analyzed in order to validate whether or not the requirements are met. The method has been validated by simulating it in the reliability and availability prediction of a case example in a laboratory.