Blog /

Enforcing Software Quality Attributes in Software Architecture 
August 26, 2024
By Johann Granados

Software architecture is the process of identifying and specifying the essential software components required to meet functional requirements for automating a business process, either partially or entirely.  
 
The design process is directed by the consolidated set of requirements acquired by the business analyst (preferably after employing a business modeling approach, as described in this article). The software architect thoroughly examines the requirements to determine whether there are any current software components that can fulfill them. In addition, they evaluate the feasibility of customizing existing software or developing new software to build an efficient and effective solution for the company in terms of functionality.  
 
Although offering a functional solution is essential for success in software development, many software architects fail to guarantee that software applications comply with the required technical criteria and standards defined by the industry. Ensuring this is crucial to ensure that the application is not only completely operational, but also technically resilient. Robustness involves strict adherence to the most stringent industry standards in areas such as security, performance, scalability, and maintainability (among others).  
 
A solution that is fully operational but vulnerable to exploitation by external actors, suffers from substantial processing delays for incoming requests, becomes non-functional when faced with a sudden influx of requests or connections, or can only be maintained by its developers or requires significant effort to be modified, is clearly an inadequate solution.

ISO 25010 y el desarrollo de software | by Nicolás F. Ormeño Rojas | Medium

Security, performance, scalability, maintainability (along with Usability, Reliability, and Portability) are called Software Quality Attributes. A software architect must possess expertise and be current in the industry’s most effective methods and techniques related to those attributes and incorporate them in the software solution design process. 

 Neglecting to do so can lead to adverse outcomes and the depletion of data and financial assets as a result of a software malfunction or vulnerability.