As per ISO 25010 (SQUARE) standards, Software quality can be defined, managed and measured in terms of following two broad categories:
- Quality in Use: Relates to the outcome of human interaction with the software
- Product Quality: Relates to the static & dynamic properties of the software
According to ISO 25010 (SQUARE) standards, the following are 8 different characteristics defined as part of Product Quality:
Functional Suitability
Maintainability
Usability
Performance Efficiency
Security
Reliability
Compatibility
Portability
Maintainability
This is one of the characteristics in which the developers have full control and responsibility and it's because Maintainability is related with ease with which code could be changed and maintained. In relation to maintainability, developers need to be aware of following key design/code characteristics (as per ISO 25010) and make sure that their design and code addresses them:
Modularity
Reusability/Cohesiveness
Testability
Analysability
Modifiability
And the curious thing is that modularity is the one thing that we hope to achieve applying object-oriented principles such as SOLID (primarily, Single Responsibility Principle (SRP)), implementing SOLID not only ensures modularity, also guarantees the analysability because at being modulable will be simpler to understand the functions and the reusability at creating small and with unique responsibility modules which can easily be used by various other modules.
Top comments (3)
I have a LRP (limited responsibility principle) that I tend to substitute to SRP. Would be interested in sharing experiences.
Tell me more I'm not that informed about the LRP but I will love to hear your experience, but the one thing that I could say to you is that Single responsibility has given me soo much freedom to grow my code and to have excellent relationships with my coworkers because we can understand really easy eachothers work
It is entirely my fault. Here is how I think about SRP/LRP:
dev.to/eelstork/solid-20-years-on-...