Don’t you just love when you spend night and day working on a project, gathering the right requirements and write an awesome use case that is so detailed that even a 3-year-old kid could understand it. After that you write the best code you have ever written that works immediately. Then the day you been waiting for has come, for you to show your killer program to your client. The client look at you and say “Dude, nice job BUT… I really want something else”

And with that introduction we are going to talk about chapter 3 in HFOOAD. The topic of this chapter is requirements change.
The introduction could actually be a real situation in real life. In the real world, requirements are always changing, and it’s up to you to roll with these changes.
Even when requirements change, you have got to be ready to update your application and make sure it works like your clients expect, When you client has a new need, it’s up to you to change it. No matter how well you design an application, over time the application will always grow and change. You will discover new solution to problems, programming languages will evolve, or your friendly customer will come up with crazy new requirements that force you to “fix” the applications.
A good thing is that you can update all the information you already collect, in other words you can update your use case for example instead of writing a new one.
REFERENCES
https://learning.oreilly.com/library/view/head-first-object-oriented/0596008678/ch03.html