SAIP: Achieving Qualities
This chapter introduces yet another term: tactics. A single tactic is a design decision that matches a stimulus with a response. There might be several tactics to react to a particular stimulus. A collection of tactics will form an architectural strategy which is not examined in this chapter. While designing the architecture, one has to choose a set of tactics to implement.
The bulk of this chapter gives a rather comprehensive list of tactics on how to provide better availability, modifiability, performance, security, testability and usability. While the tactics presented here certainly work, I find it hard to actually get anything meaningful from just reading the list. Though the tactics have been categorized for each quality attribute, it is still hard to relate to their use in a system. I would prefer separate chapters that go more in-depth with certain tactics and discuss the advantages and disadvantages of those tactics. However this chapter does serve as a reference point for tactics when I need to meet certain quality attributes.
This chapter also describes how the tactics are used. Based on the choice of tactics to realize, an architect is presented with a selection of design patterns that can be used. There are trade-offs that have to be made since choosing one design pattern might preclude certain tactics by making those tactics extremely complicated to implement. What I would like to see in this book is a catalogue of all the tactics mention and the design patterns that they can map to since the term tactics seem to be an term used exclusively in this book and existing design patterns book might not be organized around tactics. That detail has been left out in this chapter.
Using tactics to guide the choice of design patterns and ultimate the architectural style is a sensible thing to do. By capturing the quality attributes with scenarios and then trying to solve those scenarios using well-known tactics, we can come up with a good design that is not gratuitously chosen. Also, by fulfilling the quality requirements, the stakeholders are more likely to be pleased (but not necessarily).
Tweetcomments powered by Disqus