Software Architecture Evaluation

 Software architecture evaluation is an important activity in the software architecting process. The fundamental goal of architecture evaluation is to assess the potential of a proposed/chosen architecture to deliver a system capable of fulfilling required quality requirements and to identify any potential risks.

 Researchers and practitioners have proposed a large number of architecture evaluation methods for which a classification and comparison framework has also been proposed. Most widely used architecture evaluation methods are scenario-based

These methods are called scenario-based because scenarios are used to characterize the quality attributes required of a system. It is believed that scenario-based analysis is suitable for development-time quality attributes (such as maintainability and usability) rather than for run-time quality attributes (such as performance and scalability), which can be assessed using quantitative techniques such as simulation or mathematical models. 

Among the well-known, scenario-based architecture evaluation methods are the SA analysis method (SAAM), the architecture tradeoff analysis method (ATAM) , the architecture level maintainability analysis (ALMA), and the performance assessment of SA (PASA).


SAAM is the earliest method proposed to analyze architecture using scenarios. The analysis of multiple candidate architectures requires applying SAAM to each of the proposed architectures and then comparing the results. This can be very costly in terms of time and effort if the number of architectures to be compared is large. SAAM has been further extended into a number of methods, such as SAAM for complex scenarios, extending SAAM by integration in the domain-centric and reuse-based development process, and SAAM for evolution and reusability. ATAM grew out of SAAM. The key advantages of ATAM are explicit ways of understanding how an architecture supports multiple competing quality attributes and of performing trade-off analysis. ATAM uses both qualitative techniques, such as scenarios, and quantitative techniques for measuring the qualities of the architecture.

Benstsson and Bosch proposed several methods (such as SBAR, ALPSM, and ALMA). All these methods use one or a combination of various analysis techniques (i.e., scenarios, simulation, mathematical modeling, or experience-based reasoning). All of these methods use scenarios to characterize quality attributes. The desired scenarios are mapped onto architectural components to assess the architecture's capability to support those scenarios or identify the changes required to handle those scenarios. PASA is an architecture analysis method that combines scenarios and quantitative techniques. PASA uses scenarios to determine a system’s performance objectives and applies principles and techniques from software performance engineering (SPE) to determine whether an architecture is capable of supporting the performance scenarios. PASA includes performance-sensitive architectural styles and anti-patterns as analysis tools and formalizes the architecture analysis activity of the performance engineering process reported in.


SWA(Software Architecture) Quality determined by quality attributes such as: 

  • Flexibility 
  • Usability
  • Performance
  • Maintenance


Evaluation methods: SAAM : Scenario-Based Architecture Analysis Method 

                                  ALMA : Architecture Level Modifiability Analysis 

                                 ATAM : Architecture Trade-off Analysis Method 

                                 PASA : Performance Assessment of Software Architecture




Comments

Popular posts from this blog

Email Sending through O365 using OAuth Protocol

IISRESET vs App Pool Recycling ?

Deploy .Net6.0 Web api with docker