Part2.Software Reliability Engineering


Working Smart to Deliver Reliability in Use Case Development

"Software Reliability Engineering: More Reliable Software, Faster and Cheaper"

the slogan of SRE, John Musa

Software Reliability Engineering (SRE) is about increasing customer satisfaction by delivering a reliable product while minimizing engineering costs. Use case-driven development and SRE are a natural match, both being usage-driven styles of product development.[1] What SRE brings to the party is a discipline for focusing time, effort, and resources on use cases in proportion to their estimated frequency of use, or criticality, to maximize reliability while minimizing development costs. Consider this: Is it really necessary to apply the same level of rigor to the engineeringanalysis, inspection, development and testingof all use cases? By understanding how a product is really going to be used by the user, the engineering team can focus its efforts on those use cases most likely to have defects in operational use by the customer. The result: Higher reliability as experienced by the customer, while minimizing development and test costs. Or as John Musa says, "More reliable software, faster and cheaper."

[1] For a comparison of the two disciplines, see Runeson and Regnell (1998), Derivation of an Integrated Operational Profile and Use Case Model.

The field of SRE traces its roots back to work being done at AT&T Bell Labs, Murray Hill, in the early 1970s by pioneers such as John Musa. SRE contains two ideas that, after the fact, leave you wondering why somebody didn't pioneer the subject earlier. The first is to quantify frequency of product use by the user. Use cases and scenarios already provide a discrete unit for describing product use; SRE provides the means to quantify that use with what is called an operational profile.

In Chapter 3, "Operational Profiles: Quantifying Frequency of Use of Use Cases," we'll look at building operational profiles for the scenarios that make up a single use case and for a package of use cases.[2] Examples are provided to illustrate the use of operational profiles to work smart in how you plan the activities that affect your product reliability. The chapter will conclude by showing how to extend operational profiles to address risk profiling of use case packages.

[2] In UML, a use case package is a logical grouping of use cases and/or other use case packages. An operational profile can be built for a package, for the use cases of multiple packages, or for all the use cases of a system. To keep things simple, operational profiles will be discussed in terms of a "package" (singular), but just keep in mind it may in fact be a package pulling some or all of the use cases from a number of other packages.

The second idea SRE brings to use case development is a concrete way to talk about "reliability," including how to define it, measure it, set goals in terms of it, and track it in testing. This is the focus of Chapter 4, "Reliability and Knowing When to Stop Testing."




Succeeding with Use Cases. Working Smart to Deliver Quality
Succeeding with Use Cases: Working Smart to Deliver Quality
ISBN: 0321316436
EAN: 2147483647
Year: 2004
Pages: 109

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net