OntoArch Reliability-Aware Software Architecture Design and Experience

OntoArch Reliability-Aware Software Architecture Design and Experience

Jiehan Zhou (University of Oulu, Finland), Eila Ovaska (VTT Technical Research Centre of Finland, Oulu, Finland), Antti Evesti (VTT Technical Research Centre of Finland, Oulu, Finland) and Anne Immonen (VTT Technical Research Centre of Finland, Oulu, Finland)
DOI: 10.4018/978-1-60960-215-4.ch003
OnDemand PDF Download:
$30.00
List Price: $37.50

Abstract

Reliability-aware software architecture design has recently been gaining growing attention among software architects. This chapter tackles the issue by proposing an ontology-based, reliability-aware software architecture design and evaluation approach, called OntoArch, which incorporates quantitative reliability evaluation in software architecture design by the means of the OntoArch ontology and the OntoArch tool. The OntoArch approach is characterized by: (1) integration of software reliability engineering and software architecture design; (2) proposing a reliability-aware software architecture design process model; (3) developing the OntoArch ontology in the context of software architecture design and software reliability engineering; and (4) the OntoArch tool not only enabling software architects to design architectures and model reliabilities, but also functioning as a knowledge management platform relying on reliability-aware software architecture design. The OntoArch approach is validated for a software architecture design; for example, Personal Information Repository (PIR), with the use cases of OntoArch-based software architecture knowledge management, software reliability profiling, and software architecture modeling and evaluation.
Chapter Preview
Top

Background And Motivations

Traditionally, reliability analysis is performed after system’s implementation, when corrections are difficult and modifications are time consuming and expensive. Currently the interest of reliability evaluation has turned to quality evaluation at the software architecture level. Several proposals have been made to predict reliability at the architecture level. In (Immonen & Niemelä, 2007) we compare six most promising reliability evaluation methods, i.e. the methods from Cortellessa et al. (Cortellessa, Singh, & Cukic, 2002), Rodrigues et al. (Oreizy & Taylor et al., 1999), Yacoub et al. (Yacoub, Cukic, & Ammar, 1999), Reussneer et al. (Reussner, Schmidt, & Poernomo, 2003), and Wang et al. (Wang, Pan, & Chen, 1999) from the viewpoint of software architecture. In summary, all the surveyed methods require additional work, especially in the development of the analysis model and application of mathematical algorithms. Although many of these methods have been created for years ago, only few evidences of their maturity are available; i) the methods have been experimented only in laboratory settings by the authors; ii) no comparison of the predicted and measured reliability values exists; and iii) no cost estimation of using the methods could be found. The above mentioned methods are targeted to system architects, software architects, software integrators or service assemblers. It is also common to these methods that traceability of reliability requirements to software architecture is missing. Moreover, most of these methods lack tool support for reliability evaluation. Thus, we conclude the main findings as a motivation for our approach; methods that apply UML, like (Cortellessa et al., 2002; Rodrigues et al., 2005; Yacoub et al., 1999), in reliability analysis models have several benefits; (i) no additional learning effort because architects are familiar with UML, (ii) no extra modeling cost because no specific analysis model is required, and (iii) open source and commercial tools are available. Therefore, our approach heavily relies on the use of common and widely accepted modeling constructs in architecture models that are extended with required and measured reliability values (Ovaska & Evesti et al., 2010).

Complete Chapter List

Search this Book:
Reset