An important part of software quality comes from noting that the final product of software development is far more than the code. As we noted in Chapter 17, Designing for Testability, code that cannot be trusted cannot be used. In that chapter, we suggested testing was essential to establishing trust. We'd like to generalize that a bit. In addition to detailed testing, there are several other quality attributes that make the code usable. Trustworthiness supports usability.
There are a number of aspects of trustworthy code:
- We understand the use cases
- We understand the data model and processing model
- We understand the test cases
When we look at more technical quality attributes, we see that these are really about understanding. For example, debugging seems to mean that we can confirm our understanding of how the application works. Auditability also...