The Architectural Analysis – An Important Part of Every Software Project
Why is an Architectural Analysis Important?
An Architectural Analysis is an evaluation specifically of how a proposed architecture is suitable for the requirements of a solution. The architecture is the backbone of a project and selecting the wrong one at the onset can be fatal to the success of a software project.
Performing a formal Architectural Analysis allows for a focus on architectural issues by a skilled team and oftentimes is done before any coding. It gives peace of mind that the risks and quality of a proposed architecture have been thoroughly considered.
Performing an Architectural Analysis
The Architectural Analysis process should be standardized within a company. This makes the team more efficient and streamlines the engagement. It also allows for documentation to be created which can be standardized and refined as the process matures.
Most Architectural Analysis will follow the below structure. Some may look at different quality attributes or add additional reporting, but all-in-all the process will be the same. Learn the requirements, figure out what the architecture needs to accomplish, see if the architecture does accomplish that and if not how could it be changed, then document the findings.
Step 1 – Research
Obtain and research the specification for the software’s proposed or current architecture. Meet with subject matter experts to discuss the technical and functional requirements of the solution.
- Technical Documentation
- Functional Documentation
- Source Code
- Subject Matter Experts
- Test Instance
- Developer Environment
Step 2 – Measure
Determine Quality Metrics
Unambiguously identify the quality requirements for the software solution. Determine which quality attributes apply, and which do not. Whenever possible, create quantifiable quality metrics. It is important to consider both current and future objectives when creating quality metrics.
Step 3 – Evaluate and Assess
Measure and Assess Quality Metrics
Using defined quality metrics, evaluate the proposed architecture’s ability to meet those requirements and identify any discrepancies. Assess whether the architecture passes or fails each quality metric. Address areas of risk with the selected architecture and identify areas where improvement is required. Determine whether the architecture supports both current and future business objectives.
When evaluating the architecture, determine if are alternative architecture choices which would better satisfy the quality metrics. Determine if potential alternatives have trade-offs.
Step 4 – Report
The Architectural Analysis Report is a comprehensive, formal document which is a concise summary outlining the process, its findings, and recommended actions. Each Architectural Analysis Report follows a standard format with the following sections.
The Scope section of the report outlines the boundaries of the analysis. It explains which parts of the architecture are being evaluated and the quality requirements which are being considered. Significant functional requirements may also be documented. The goals and objectives of the analysis are listed.
The Results section lists the findings of the analysis. It is a summarized analysis of suitability of the proposed architecture based on the identified requirements and quality metrics.
Based on the results of the analysis, recommendations may be made for alternative architecture choices. This section will outline those choices and identify potential trade-offs.
One of the biggest mistakes that can be made in a software project is choosing the wrong architecture and then progressing significantly into development. Changing the architecture after development has occurred can be expensive or impossible depending on how significant the change is. Taking a step back and adding an Architectural Analysis to every project can alleviate the risk of these issues.