Understanding sensitivity points, trade-off points, risks, and non-risks
As stated in the previous section, making a design choice often has a positive or negative impact on one or more quality attributes. The two most important concepts to grasp are sensitivity points and trade-off points, and, to a lesser extent, risks and non-risks. Let's have a quick definition of these before going into more elaborate scenarios, as follows:
- Sensitivity points represent architectural choices that can importantly impact a single quality attribute—for example, maintenance activities could impact the availability of a quality attribute.
- Trade-off points are architectural decisions that may impact at least two sensitivity points, hence the trade-off, meaning that you might be obliged to sacrifice one quality attribute in favor of another one. For example, doing client-side encryption will impact security in a positive way but performance in a negative way. You may opt for better...