Software architecture describes the system as a whole, breaks it down into parts, and then esplains how the parts come together to have a designed purpose to meet the need. The quality and longevity of a good software system is determined by its architecture.

Like the saying goes “If you don’t plan for architecture, you will have one anyway and you may not like what you get”. As planning, it is equally important to review the architecture to check if quality attributes like performance, stability, extensibility, maintainability etc. are met.

Assessment helps to align the software architecture with the business goals, which results in

  • Minimize risks
  • Reduce costs
  • Exploit opportunities

Architecture assessment can be conducted in response to internal triggers before each major milestone or within each iteration of a software project such as:

  • After an initial architecture is designed
  • After key use cases with strong architectural impact are realized
  • When critical problems arise, for example, if performance criteria cannot be met
  • Before major extensions or changes are integrated into the architecture

It could also be because of external triggers like end customer initiated, competitor initiated or to streamline the product portfolio.

We follow these approaches depending on the system under study:

Quantitative

Code quality assessment:

  • Perform static analysis of the source code for metrics, coding rules, structure analysis, and architecture conformance.

Simulations:

  • Simulation of system context and component internals
  • Evaluation through (performance / usage / failure) by profile execution

Prototypes:

  • Incomplete model of the software concentrating on technical challenges or user acceptance

Qualitative

Scenario-based approaches:

  • Align the qualities with the business drivers by probing scenarios against architecture.

Experience-based approaches:

  • Stakeholder interviews by experienced architects
  • Detailed report including architecture description, SWOT analysis
callcenter