Improve Software Reliability with Use Case Modeling Done Right
Kay Johnson and Theresa Kratschmer
The 17th IEEE International Symposium on Software Reliability Engineering (ISSRE 2006) -- Industry Practices (ISSRE 2006)
Raleigh, North Carolina, USA, 6-10 November 2006
Abstract
Problem The requirements phase of a software development process is responsible for defining what a system will do. This sounds like a straight forward task to accomplish but is actually one of the most difficult pieces to get right. In particular, if you are using use cases to try and improve the reliability of your system, but don't know specific techniques to do this, you may not reach your target. Of course, if the requirements aren't right, everything else will be based on a very weak foundation. Use case modelling is an excellent method to capture the behavior of systems and allow consensus among stakeholders on the behavior of those systems. In addition, they can be very useful in improving reliability of software systems through the use of alternative flows. Although many books have addressed the topic of use case modelling, few discuss specific methods to improving reliability. We found that teams have difficulty developing use case models in general, and in particular knowing how to use them to capture behaviour that will improve reliability.
In this presentation, we discuss the specific problems teams have: 1) identifying alternative behavior 2) capturing the right level of detail 3) capturing internal behavior of the system 4) developing use cases for system actors 5) generating discussion on the behavior from a user's perspective.
Solution One of the most under-utilitized parts of use case process is the one that focuses on improving reliability - that of alternative flow. The alternative flow of a use case identifies exceptional, optional, or errant behavior. It is this behavior which often contributes to poor reliability of a system. In order to focus on alternative behavior and thus improved reliability, we worked with teams to increase their skills at identifying and developing alternative flow of use cases. Our solution to identifying and developing alternative flow include use of a skilled facilitator, accessing field defect data for historical information, and providing the right amount of detail for effective testing.