We've described the role that use cases play in defining the functional behavior of the system, and we've defined how the nonfunctional requirements are captured in the supplementary specification. Some questions naturally arise: How do these nonfunctional requirements apply to the use cases? Do specific use cases have associated nonfunctional requirements, and, if so, how could we indicate that?
One way to do so is to define certain classes of nonfunctional requirements. For example, we might define "Quality of Service" classes for response time as follows :
Then we could associate these classes with special requirements recorded in the use case itself. For example, Use Case A might record
Use Case B might record
You can do the same for other classes of nonfunctional requirements (such as reliability, safety, and so on) and map these requirements to the specific use cases.
Alternately, if you have traceability tools, you can simply trace the nonfunctional requirements to those use cases to which they are applied. (We'll explore traceability in detail in Chapter 27.)