Coming into Chapter 4, guess what, the system needs to change again!
The main topic this will be analysis, more specifically real world analysis. This means changing or adapting our software to work in a real life context.
It’s a meme that when a developer says “but it works on my machine” it means that it was not planned correctly. There are a lot of variables that come in hand when running the software in production or “real life”. Things we don’t account sometimes like frameworks, missing libraries, system resources or even outside of the software code, like how it is actually used by an end user in a way we didn’t account for.
When that happens, we need to update our use cases and in turn, our requirements. This is similar to what I posted about in my past blog post however, now the system needs to be more specific.
To accomplish this and keep the software within the good practices of software development, we need to use what is called Textual Analysis. This reads really deep into the use cases and how are they described to look out exactly what classes need to be created and what functionality each needs to have.
This goes back to another Object Oriented Programming concept which is encapsulation. Having a correctly defined use case as well as class diagrams allows us to avoid having duplicate code and avoiding having extra functionality in a class that does not require it but instead needs to be it’s own.
It is basically defining who does what and how it does it. Does it send a message to another object? Should it be doing it itself? How is the data stored? How much data is handled?
Ultimately, it comes down to working with the customer as well as the end users to analyze how the system is being used to verify it meets the intended functionality and fits within the previously defined requirements, and if not, make adjustments.
We can use several tools like UML Class diagrams, which allow a high level overview of the system components that make it easily readable by less technical people. The main benefit of it is that is shows the overview of the objects and it’s functionality but doesn’t go into specific technical implementation of such.
I bet you didn’t plan for feline obstacles
Photo by Cassandra Leigh Gotto via Flickr
As you know, my past blog post on the same topic where I discuss the uninspiring book examples, can be found here: