Qualities of ServiceScenarios are extremely valuable, but they are not the only type of requirement. Scenarios need to be understood in the context of qualities of service (QoS). (Once upon a time, QoS were called "nonfunctional requirements," but because that term is nondescriptive, I won't use it here. Sometimes they're called 'ilities, which is a useful shorthand.) Most dissatisfiers can be eliminated by appropriately defining qualities of service. QoS might define global attributes of your system, or they might define specific constraints on particular scenarios. For example, the security requirement that "unauthorized users should not be able to access the system or any of its data" is a global security QoS. The performance requirement that "for 95% of orders placed, confirmation must appear within three seconds at 1,000user load" is a specific performance QoS about a scenario of placing an order. Not all qualities of service apply to all systems, but you should know which ones apply to yours. Often QoS imply large architectural requirements or risk, so they should be negotiated with stakeholders early in a project. There is no definitive list of all the qualities of service that you need to consider. There have been several standards,[16] but they tend to become obsolete as technology evolves. For example, security and privacy issues are not covered in the major standards, even though they are the most important ones in many modern systems. The following four sections list some of the most common QoS to consider on a project. Security and PrivacyUnfortunately, the spread of the Internet has made security and privacy every computer user's concern. These two QoS are important for both application development and operations, and customers are now sophisticated enough to demand to know what measures you are taking to protect them. Increasingly, they are becoming the subject of government regulation.
PerformancePerformance is most often noticed when it is poor. In designing, developing, and testing for performance, it is important to differentiate the QoS that influence the end experience of overall performance.
User ExperienceWhile "easy to use" has become a cliché, a significant body of knowledge has grown around design for user experience.
ManageabilityMost modern solutions are multitier, distributed, serviceoriented or clientserver applications. The cost of operating these applications often exceeds the cost of developing them by a large factor, yet few development teams know how to design for operations. Appropriate QoS to consider are as follows:
What makes a good QoS requirement? As with scenarios, QoS requirements need to be explicitly understandable to their stakeholder audiences, defined early, and when planned for an iteration, they need to be testable. You may start with a general statement about performance, for example, but in an iteration set specific targets on specific transactions at specific load. If you cannot state how to test satisfaction of the requirement when it becomes time to assess it, then you can't measure the completion. |
Saturday, November 7, 2009
Qualities of Service
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment