2.4 Software Architecture Decisions
2.4.9 Other Search-Based Architecture Decision Methods
The literature is abound with many search based approaches to model and analyse software architecture decisions from the perspective of run time and design time of a
system. A comprehensive survey on software architecture decisions exist in [117, 121,
122, 232]. But this section focuses only on the approaches applied in the context of
multi-objective decision problems in the early phase of architecture design of software systems. These approaches, however, either lack tool support for automated analysis of decision models, or those that provide tool support do not support elaboration of domain specific decision models, but rather rely on pre-defined models and objective equations, which often do not capture the actual stakeholders objectives and are not valid models of the impacts of decisions on objectives.
In the area of Quality of Service, Web services and component selection and allocation; Fredriksson et al. [95] presented an approach for optimally allocating components to real time tasks while considering trade-offs like CPU-overhead and resource usage. In their work, they developed a model for tasks and components allocations, deriving memory consumption and CPU overhead for task deployment. Their objective was to minimise resource usage (e.g CPU time and memory) using scheduling and optimisation techniques and incorporate real time analysis to achieve feasible allocation.
Liu Zhuang et al. [286] proposed a Muti-Criteria Decision Making (MCDM ) approach
to enable users (or experts) to search Pareto Optimal Design Alternatives (PODA). Amongst the PODA, they found the best one by incorporating corresponding weighted fuzzy preferences in the global plan of web services selection based on QoS criteria such as price, response time, availability, reliability and reputation.
Wang et al. [268] proposed multi-objective genetic algorithm (MOGA) to find a set of
Pareto optimal solutions that optimise three objectives such as minimise cost, maximise reliability and minimise reponse time, while still satisfying the functional requirements. With respect to research done in the area of software quality; Khoshgoftaar et al. [152] proposed a Module Order Model using Genetic programming to predict the relative quality of each software module, particularly the most faulty ones. They simultaneously optimise four performance objectives and evaluated their approach using two real-world software systems.
Grunske et al. [109] applied an evolutionary approach in architecture refactorings, to
select good design alternatives within reasonable time for a satellite control system that
is based on Bi-spectral InfraRed Detector [39]. They optimised the system architecture
such that the reliability of the satellite is maximised and cost is minimised, subject to a particular weight constraint to limit the number of redundant components.
Harman et al. [120] extended and improved previous work on search based re-factoring
approaches that produce single sequence of re-factorings through combined complex metrics; their approach, however, finds multiple Pareto optimal sequence of refactorings that takes into account the availability of resources and giving users the opportunity to specify the level at which to re-factor.
Simons et al. [239] introduced an interactive search based approach to support a human designer at the start and during conceptual design of a software system before the actual implementation of the design is transformed to source code. They optimised the design of a Cinema booking system by maximising cohesion and minimising coupling between class objects using UML class diagram as representations.
Raiha et al. [206] proposed a multi-objective genetic algorithm to find the optimal
trade-off solutions to the design of an electronic home system (that controls devices and provides interfaces to enable users manage their home ) given two quality attributes such as modifiability and efficiency.
Al-Naeem et al. [8] presented a quality driven approach called ArchDesigner that obtains the optimal trade-off between conflicting stakeholders‘ goals, project constraints (cost and time) and competing architectural concerns. In their work, they maximised the accumulative value score subject to constraints that specified cost and time are not exceeded and only one alternative is selected.
Meedeniya et al. [174] presented a simulation-based method that handles parameter
range estimates using probability distributions. The authors used Monte Carlo simula- tion in the estimation of a software architecture reliability through the combination of the reliability of its component elements.
Noppen et al. [188] presented a design tree approach that scans a design space for design decisions, their sequences and all the alternatives considered in the presence of imperfect information about estimates and requirements.
Cortellessa et al. [60] proposed an optimisation framework called CODER for a com-
ponent based selection and optimisation procedure based on cost minimization of the proposed system while ensuring a certain level of satisfaction of the system reliability and delivery time.
To summarise, Section 2.4reviewed some related work to this thesis on software archi-
tecture decisions which impact stakeholders’ business and non-functional (quality) goals of a system. We described the state-of-the art software architecture decision methods
such as Architecture Trade-off Analysis Method (ATAM) [148], Cost Benefit Analy-
sis Method (CBAM) [149, 179] , GuideArch [84], PRISM [131, 156], Evochecker [101],
search-based software architecture decision methods [109,117,121,122,152,174,232]. These approaches require higher modelling effort and generally have limited automated tool support for decision analysis. Using these approaches involves manual encoding of decision models in widely used statistical programming languages, such as R and MAT- LAB. This results in modellers spending time on implementation details rather than concentrating on the conceptual decision problem.