Assessing Software Reliability at the Architectural Level (original) (raw)
Related papers
Architecture based software reliability
2000
With the growing emphasis on reuse, software development process moves toward component-based software design. In this paper we present a n o verview of the architecturebased approach to reliability estimation of the software composed of components. First, the common requirements of the architecture-based models are identi ed, and the classi cation is proposed. Then, the key models in each class are described in detail. Also, a critical analysis of underlying assumptions, limitations and applicability of these models is provided which should be helpful in determining the directions for future research.
Reliability analysis of software architecture evolution
Proceedings - 6th Latin-American Symposium on Dependable Computing, LADC 2013, 2013
Software engineers and practitioners regard software architecture as an important artifact, providing the means to model the structure and behavior of systems and to support early decisions on dependability and other quality attributes. Since systems are most often subject to evolution, the software architecture can be used as an early indicator on the impact of the planned evolution on quality attributes. We propose an automated approach to evaluate the impact on reliability of architecture evolution. Our approach provides relevant information for architects to predict the impact of component reliabilities, usage profile and system structure on the overall reliability. We translate a system's architectural description written in an Architecture Description Language (ADL) to a stochastic model suitable for performing a thorough analysis on the possible architectural modifications. We applied our method to a case study widely used in research in which we identified the reliability bottlenecks and performed structural modifications to obtain an improved architecture regarding its reliability.
Architecture-Based Software Reliability Analysis: Overview and Limitations
IEEE Transactions on Dependable and Secure Computing, 2007
With the growing size and complexity of software applications, research in the area of architecture-based software reliability analysis has gained prominence. The purpose of this paper is to provide an overview of the existing research in this area, critically examine its limitations, and suggest ways to address the identified limitations.
Architecture-based software reliability modeling
Journal of Systems and Software, 2006
In this paper, we present an architecture-based approach for modeling software reliability. Our approach aims at modeling reliability on various software infrastructures and in any stage of software life cycles. To this end, we utilize characteristics of architectural styles to capture nonuniform behaviors of software embodying heterogeneous architecture. Furthermore, a state model that synthesizes all different architectural styles embedded in the system is developed, allowing the Markov-based reliability model to be employed. Our model can be applied to software with heterogeneous architecture, can facilitate the making of architecture design decision, and is suitable for use in the testing and maintenance phases during which software changes take place. To validate the model, we applied it to an industrial real-time component-based financial system and obtained significant promising results. It is expected that our model have great potential for use to improve software quality effectively.
Comparison of architecture-based software reliability models
2001
Many architecture-based software reliability models have been proposed in the past without any attempt to establish a relationship among them. The aim of this paper is to fill this gap. First, the unifying structural properties of the models are exhibited and the theoretical relationship is established. Then, the estimates provided by the models are compared using an empirical case study. The program chosen for the case study consists of almost 10,000 lines of C code divided into several components. The faulty version of the program was obtained by reinserting the faults discovered during integration testing and operational usage and the correct version was used as an oracle. A set of test cases was generated randomly accordingly to the known operational profile. The results show that 1) all models give reasonably accurate estimations compared to the actual reliability and 2) faults present in the components influence both components reliabilities and the way components interact.
Software Architecture and Dependability
Dependable systems are characterized by a number of attributes including: reliability, availability, safety and security. For some attributes, (namely for reliability, availability, safety), there exist probabilitybased theoretic foundations, enabling the application of dependability analysis techniques. The goal of dependability analysis is to forecast the values of dependability attributes, based on certain properties (e.g. failure rate, MTBF, etc.) that characterize the system's constituent elements. Nowadays, architects, designers and developers build systems based on an architecture-driven approach. They specify the system's software architecture using Architecture Description Languages or other standard modelling notations like UML. Given the previous, we examine what we need to specify at the architectural level to enable the automated generation of models for dependability analysis. In this paper, we further present a prototype implementation of the proposed approach, which relies on UML specifications of dependable systems' software architectures. Moreover, we exemplify our approach using a case study system.
RELIABILITY EVALUATION OF SOFTWARE ARCHITECTURE STYLES
In process of software architecture design, different decisions with system-wide impacts are made. An important decision of design stage is the selection of appropriate software architecture style. Since quantitative impacts of styles on quality attributes have not been studied yet, their application is not systematic. Since Reliability is one of the essential quality requirements of software systems, especially for life critical ones, one of the main criteria in choosing architecture style of these systems is high reliability. The goal of this study is to quantify the impact of architecture styles on software reliability that is desired quality of life critical software. We evaluate styles through reliability block diagram method. First, the reliability equation of each architectural style was computed using of Reliability block diagram approach. Then, reliability rank of architectural styles is computed by setting of the number of effective components in a transaction parameter in reliability equation of architectural styles. The main innovation of this article is quantification of impact of styles on software reliability that is essential for style selection.
Estimating software component reliability by leveraging architectural models
Proceeding of the 28th international conference on Software engineering - ICSE '06, 2006
Software reliability techniques are aimed at reducing or eliminating failures in software systems. Reliability in software systems is typically measured during or after system implementation. However, software engineering methodology lays stress on doing the "correct things" early on in the software development lifecycle in order to curb development and maintenance costs. In this paper, we propose a framework for reliability estimation of software components at the level of software architecture.
A Method Proposal for Architectural Reliability Evaluation
Proceedings of the Ninth International Conference on Enterprise Information Systems, 2007
Software quality characteristics, such as reliability, maintainability, usability, portability, among others, are directly determined by software architecture and, in consequence, it constitutes a very important artifact to be evaluated as soon as a general design is obtained. This article proposes a method to estimate software reliability by evaluating software architecture. Our method combines the strengths of three evaluation methods: ATAM (Kazman et al, 2000), DUSA (Bosch, 2000) and AEM (Losavio et al., 2004) obtained by identifying the main features needed in reliability architectural evaluation and studying several architectural mechanisms which promote this quality characteristic. Based on these features and the advantages of the studied methods and mechanism, we established phases, activities, roles, inputs/outputs, and artifacts; and we constructed a feasible method which can be applied in any organization interested in improving its software construction process and product.
Analytical Models for Architecture-Based Software Reliability Prediction: A Unification Framework
IEEE Transactions on Reliability, 2000
Traditional approaches to software reliability modeling are black box based, that is, the software system is considered as a whole and only its interactions with the outside world are modeled without looking into its internal structure. The black box approaches are adequate to characterize the reliability of monolithic, custom, built-to-specification software applications. However, with the widespread use of object oriented systems design and development, the use of component-based software development is on the rise. Software systems are developed in a heterogeneous (multiple teams in different environments) fashion, and hence it may be inappropriate to model the overall failure process of such systems using one of the several software reliability growth models (black box approach). Predicting the reliability of a software system based on its architecture, and the failure behavior of its components is thus essential. Most of the research efforts in predicting the reliability of a software system based on its architecture have been focused on developing analytical or state-based models. However, the development of state-based models has been mostly ad hoc with little or no effort devoted towards establishing a unifying framework which compares and contrasts these models. Also, to the best of our knowledge no attempt has been made to offer an insight into how these models might be applied to real software applications. This paper proposes a unifying framework for state-based models for architecture-based software reliability prediction. We outline the information required for the specification of state-based models to predict application reliability. We also propose a systematic classification scheme for state-based approaches to reliability prediction. The scheme classifies the state-based models according to three dimensions, namely, the model used to represent the architecture of the software, model used to represent the failure behavior of the components of the application, and the method of analysis. We place the existing models in the literature in appropriate categories according to the above three dimensions, and then present an exhaustive analysis of those models in which the architecture of the application is represented either as a discrete time Markov chain (DTMC) or a continuous time Markov chain (CTMC). We illustrate the DTMC-and CTMC-based models using examples. We also provide a detailed discussion regarding the input parameters required by each model, and how these parameters may be estimated from the different software artifacts. Depending on the software artifacts that are available during a given phase of the software life cycle, and the parameters that can be estimated from these artifacts, we provide guidance regarding which model may be appropriate for predicting the reliability of an application during each phase of its life cycle.