Optimizing the selection of architecture for component-based system - Saed, Adil Ali Abdelaziz (2013)
Redundant components are commonly used for solving Redundancy Allocation Problems (RAP) and improving the reliability of complex systems. However, the use of such a strategy to minimize development costs while maintaining high quality attributes for building software architecture is a research challenge. The selection for an optimal architecture to meet this challenge is an inherently complex task due to the high volume of possible architectural candidates and the fundamental conflict between quality attributes. Current software evaluation methods focus on predicting the quality attributes and selecting Commercial-Off-the Shelf (COTS) components for COTS-Based applications rather than utilizing additional architectural evaluation methods that could increase the opportunity for obtaining a cost-effective solution for RAP. In this thesis, an architecture-based approach called Cost-Discount and Build-or-Buy for RAP (CD/BoB-RAP) is introduced to support the decision making for selecting the architecture with optimal components and level of redundancy that satisfies the technical and financial preferences. This approach consists of an optimization model that includes two architectural evaluation methods (CD-RAP and BoB-RAP) and applies three variants of Particle Swarm Optimization (PSO) algorithms. Statistical results showed a 74% reduction on the development cost using CD-RAP on an embedded system case study. Moreover, the application of a maximum possible improvement on the algorithms showed that Penalty Guided PSO (PG-PSO) had enhanced the quality of obtained solutions by 70% to 84% in comparison to other algorithms. The results of the CD-RAP and BoB-RAP were superior when compared to the results obtained from similar approaches. The overall results of this research have proven the potential benefits of the CD/BoB-RAP approach for software architecture evaluation, particularly, in selecting software architecture for minimizing the development cost maintaining a highly reliable system.