Use Case Definition
Use Case Definition: All the ways of using a system to achieve a particular goal for a particular user.
A use case is:
- A sequence of actions a system performs that yields an observable result of value to a particular user.
- That specific behaviour of a system which participates in a collaboration with a user to deliver something of value for that user.
- The smallest unit of activity that provides a meaningful result to the user.
- The context for a set of related requirements.
Figure 1 illustrates the states through which a use case pass.
FIGURE 1: THE USE-CASE DEFINITION FROM THE USE CASE 2.0 PRACTICE
Introduction
This text is derived from an extract from the popular paper, ‘Use Case 2.0: The Hub of Software Development’. After reading the introductory sections please use the link in the Want more detail? section to see the full text.
Use cases have been around for almost 30 years as a requirements approach and have been part of the inspiration for more recent techniques such as user stories. Now the inspiration has flown in the other direction. Use-Case 2.0 is the new generation of use-case driven development – light, agile and lean – inspired by user stories, Scrum and Kanban.
Use-Case 2.0 has all the popular values from the past, not just supporting requirements but also architecture, design, test, user experience, and also instrumental in business modeling and software reuse. Use-Case 2.0 has been inspired by user stories to assist with backlogs à la Scrum and one piece flow with Kanban, with the introduction of an important new concept, the Use-Case Slice.
We will make the argument that use cases essentially include the techniques that are provided by user stories but offer significantly more for larger systems, larger teams, and more complex and demanding developments. They are as lightweight as user stories, but can also scale in a smooth and structured way to incorporate as much detail as needed. Most importantly we will show that they drive and connect many other aspects of software development.
Use cases – why still successful and popular?
Use cases were first introduced at OOPSLA 87 [1] although they were not widely adopted until the publication of the 1992 book ‘Object-Oriented Software Engineering – a Use-Case Driven Approach’ [2]. Since then many other authors have adopted parts of the idea, notably Alistair Cockburn [3] concerning requirements and Larry Constantine [4] regarding designing for better user-experiences. Use cases were adopted as a part of the standard Unified Modeling Language [5] and their diagrams (the use case and the actor icons) are among the most widely used parts of the language. Many other books and papers have been written about use cases for all kinds of systems, not just for software but also business and systems (such as embedded systems) and system of systems. Focusing on today and the future, the latest macro-trend, Internet of Things and Industrial Internet, has made use cases their choice [6].
The use-case practice has evolved over all these years inspired by ideas from many different people, with the newer ideas incorporated into Use-Case 2.0. Thus it seems clear that use cases have stood the test of time and have a very healthy future! Use cases can and should be used to drive the development. They do not prescribe how you should plan or manage your development work, or how you should design, develop or test your system. They do however provide a structure for the successful adoption of your selected management and development practices.
FIGURE 1: USE CASES ARE THE HUB OF THE SOFTWARE DEVELOPMENT LIFECYCLE
We believe that the reason for its success is that the use case approach is not just a very practical technique to capture requirements from a usage perspective or to design practical user experiences, but it impacts the whole development lifecycle. The key use cases or to be more precise the key use case slices (a slice being a carefully selected part of a use case) assist systematically in finding the application architecture. They drive the identification of components or other software elements in software design. They are the elements that have to go through test – and truly support test-driven design. They are the elements to put in the backlog when planning sprints or the elements to put on the canvas using Kanban.
The use cases of a business are the business processes of the business; thus if doing business modeling with use cases the advantage is that it leads directly to finding the use cases of the system to be developed to support the business. Moreover use cases help in finding commonalities, which directs the architecture work to achieve software reuse. There are many more similar values in applying use cases, but most important are that the idea of use cases is intuitively graspable. It is lightweight, lean and agile, scalable, versatile, and easy to use. Many people who hear about use cases for the first time take them to heart; many start using the term in everyday life situations without thinking about all the details that help us with so many aspects of software development – the aspects that are the spokes of the software development wheel in which use cases are the hub. See Figure 1.
References?
[1] Jacobson Ivar, Object-oriented Development in an Industrial Environment, Proceedings of OOPSLA’87, Special Issue of SIGPLAN Notices, Vol. 22, No. 12, December 1987, pp. 183-191.
[2] Jacobson Ivar, Christersson Magnus, Johnsson Patrik, Overgaards Gunnar, Object- Oriented Software Software Engineering: A Use Case Driven Approach, Addison Wesley 1992.
[3] Cockburn Alistair, Writing Effective Use Cases, Addison-Wesley, 2001.
[4] Constantine Larry, Lockwood Lucy, Software for Use, Addison-Wesley, 1999.
[5] Booch Grady, Jacobson Ivar, Rumbaugh Jim, The Unified Modeling Language Reference Manual, 2004.
[6] Dirk Slama, Frank Puhlmann, Jim Morrish, Rishi Bhatnagar: Enterprise Internet of Things, http://enterprise-Internet of Things.org/book/enterprise-Internet of Things/
Want the pdf?
The pdf of this paper is available with our compliments here, happy reading! Use Case 2.0: The Hub of Software Development PDF
Want more detail?
Use Cases - The Ultimate Guide builds upon this text to give a much more detailed explanation of the Use Case approach. After reading this Use Case Definition, if you even need help with the Use Case approach, please Contact Us, it is our passion!