Quality, an important attribute of software architecture

By Yrineu Rodrigues July 31, 2023

Comparison is one of the means that the industry has found to measure the quality between products of the same line, the materials involved, durability, efficiency and handling are one of the many factors that determine the qualitative differential of an object. However, it becomes somewhat easier to measure quality in physical products compared to virtual products.

As in civil construction, architecture is also present in the scope of software development, all elements need to go through some kind of planning (in many cases trial and error experiments) before even starting any implementation. Some authors explain software architecture using the analogy with the human skeleton, this is a good way to introduce the theme, because as we know it is the skeleton that supports the whole organism. However, software architectural issues go beyond sustainability and permeate other areas but not restricted to usability, portability, scalability, deployment and monitoring. As mentioned in the text on micro services, each part of the software must be developed in such a way that all elements have a single and concise input and output interface, whether it is monolithic or not, thus facilitating its maintenance (something that seems simple in theory, but very complex in practice).

A good practice in software development is the construction of proofs of concept before the final product, the PoCs (Proof of Concept) are useful to validate the main functionalities of a future product and should not be used to compose the final solution. It is very important to make it clear to the client that the PoCs play a fundamental role in preserving the investment, as well as being a great opportunity to generate new ideas. The PoCs help to measure the quality of the software, in which although it has a limited scope, it allows the analysis of possible bottlenecks and generation of metrics and definition of limits.

Usability is not limited to the end user, the creation of software components in a simple and concise way allows the developer to integrate different components to create the whole, the reuse of components increases the reliability of the system and reduces implementation costs, in turn, smaller elements become easy to test and replace in a scalable way. The analogy to the skeleton or a plan of a house, although they are didactic, may not fit in scenarios where the availability of software is a priority, after all, we have parts of the skeleton or the house that cannot be removed after being developed. The concept of scalability is linked to both usability and deployment, in systems where availability is a crucial factor, the ease of re-deploying a new instance of the services when failures occur, as well as the distribution, replication and storage of data. will be key points that define software reliability and quality.

In the third edition of the book ‘Software Architecture in Practice’ by the authors Len Bass, Paul Clements and Rick Kazman, 12 chapters are devoted to quality attributes, in which the authors highlight the importance of documentation and project management in software quality and point out that such attributes are intrinsic to context, cost, time and objectives. In an extremely summarized way, one of the most important messages that the authors pass on in their work is that the responsibility for software quality permeates all areas of the project, from testing, management, development and documentation, covering not only the concept of portability, but also usability (whether for developers or end users).

The responsibility of creating software taking into account the main quality attributes is a constant battle in the field of development, the complexity applied in practice is inversely proportional to the theory and is totally linked to the success and longevity of the investment as a whole, regardless of the scope of the application it is necessary to bear in mind that in this context, change is the only constant.

comments powered by Disqus