Change Cases

Scott W. Ambler
The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2 Change cases (Bennett 1997) are used to describe new potential requirements for a system or modifications to existing requirements.  Change cases are modeled in a simple manner. You describe the potential change to your existing requirements, indicate the likeliness of that change occurring, and indicate the potential impact of that change.  Figure 1 presents two change cases, one potential change that is motivated by technical innovation¾in this case the use of the Internet¾and a second by a change in your business environment. Notice how both change cases are short and to the point, making them easy-to-understand. The name of a change case should describe the potential change itself.   

 

Figure 1. Change cases.

Change case: Registration will occur completely via the Internet.

Likelihood: Medium likelihood within two to three years, very likely within ten years.

Impact: Unknown. Although registration will be available online starting in September, we currently expect less than one quarter of registrations to be made via the Internet this year. Response time will be an issue during the peak use periods, which are the two weeks prior to the beginning of classes each term, as well as the first week of classes.

------------------------------------------------------------------------------------------------------------

Change case: The university will open a new campus.

Likelihood: Certain. It has been announced that a new campus will be opened in two years across town.

Impact: Large. Students will be able to register in classes at either campus. Some instructors will teach at both campuses. Some departments, such as Computer Science and Philosophy, are slated to move their entire programs to the new campus. The likelihood is great that most students will want to schedule courses at only one of the two campuses, so we will need to make this easy to support.

 

Change cases can be identified throughout the course of your overall development efforts, although I have a tendency to create them when I’m focusing on architectural modeling.   Change cases are often the result of brainstorming with your project stakeholders.  Good questions to consider include:

  • How can the business change?
  • What is the long-term vision for our organization?
  • What technology can change?
  • What legislation can change?
  • What is your competition doing?
  • What systems will we need to interact with?
  • Who else might use the system and how?

My experience is that you can use change cases in a very agile manner.  First, they enable you to consider long term issues and potential changes that your system may need to support.  This puts you in a position to make better architectural decisions, such as choosing one platform over another, and thus increase the chance that you’re taking the best approach.  This in turn reduces your desire to overbuild your system because you’re not as worried about the architectural choices you’ve made.  Second, change cases provide an easy way for you to justify architectural decisions that you’ve made because you can show that you’ve considered a wide range of issues.  This can help to reduce the politics that your team has to endure, allowing you to spend more time actually building software instead of attending meetings.  Third, if you identify a very high-likelihood change case you can simply write it up as a normal requirement(s) with your stakeholders.  They can prioritize the requirement(s) as usual and your team can then implement it as appropriate.  Your architecture should be based on real requirements, otherwise you risk goldplating your system with “really cool” features that your stakeholders don’t actually need.  Fourth, they're simple.  See the Change Case Template available for free download.

 

Source

This artifact description is excerpted from Chapter 10 of The Object Primer 3rd Edition: Agile Model Driven Development with UML 2.

 

Suggested Reading

Agile Modeling   This is the classic text on change cases, and frankly it's a pretty good read for anyone interested in system architecture.
The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2   The Object Primer 3rd Edition: Agile Model Driven Development with UML 2 is an important reference book for agile modelers, describing how to develop 35 types of agile models including all 13 UML 2 diagrams.  Furthermore, this book describes the techniques of the Full Lifecycle Object Oriented Testing (FLOOT) methodology to give you the fundamental testing skills which you require to succeed at agile software development.  The book also shows how to move from your agile models to source code (Java examples are provided) as well as how to succeed at implementation techniques such as refactoring and test-driven development (TDD).  The Object Primer also includes a chapter overviewing the critical database development techniques (database refactoring, object/relational mapping, legacy analysis, and database access coding) from my award-winning Agile Database Techniques book.
Agile Modeling   Agile Modeling: Effective Practices for Extreme Programming and the Unified Process is the seminal book describing how agile software developers approach modeling and documentation.  It describes principles and practices which you can tailor into your existing software process, such as XP, the Rational Unified Process (RUP), or the Agile Unified Process (AUP), to streamline your modeling and documentation efforts.  Modeling and documentation are important aspects of any software project, including agile projects, and this book describes in detail how to elicit requirements, architect, and then design your system in an agile manner.
Elements of UML 2.0 Style   The Elements of UML 2.0 Style describes a collection of standards, conventions, and guidelines for creating effective UML diagrams. They are based on sound, proven software engineering principles that lead to diagrams that are easier to understand and work with.  These conventions exist as a collection of simple, concise guidelines that if applied consistently, represent an important first step in increasing your productivity as a modeler.  This book is oriented towards intermediate to advanced UML modelers, although there are numerous examples throughout the book it would not be a good way to learn the UML (instead, consider The Object Primer).  The book is a brief 188 pages long and is conveniently pocket-sized so it's easy to carry around.

 

Translations

 

Let Me Help

I actively work with clients around the world to improve their information technology (IT) practices as both a mentor/coach and trainer.  A full description of what I do, and how to contact me, can be found here

 


Copyright © 2003-2006 Scott W. Ambler

Last updated: April 3, 2006
This site owned by
Ambysoft Inc.

Agile Data (AD)  |  Agile Unified Process (AUP)  |  Enterprise Unified Process (EUP)  |  My Writings