A local micro-brewery wants a software developer to build an automated stock control and batch tracking system. The head brewer describes their process:
"We brew craft IPA and stout in 1000-litre1000\text{-litre}1000-litre batches. I personally prefer brewing on Thursday mornings because the aroma of hops blends beautifully with the bakery next door, which makes excellent sourdough. We need to record the quantity of malt and hops used in each batch, the fermentation temperature profile over 14 days14\text{ days}14 days, and the final alcohol by volume (ABV) percentage. The system must automatically flag any batch where the fermentation temperature deviates by more than 1.5∘C1.5^\circ\text{C}1.5∘C from the set point. It doesn't matter what color shirts the brewing assistants are wearing, nor does it matter that our delivery driver likes to listen to jazz while loading the kegs. Each batch needs a unique batch ID for traceability."
The developer removes the irrelevant details (such as the brewer's preference for Thursday mornings, the sourdough aroma, the assistants' shirt colors, and the jazz music) to focus exclusively on the core data structures and logic required for the tracking system.
Which computational thinking process is the developer demonstrating by filtering out these unnecessary details?
Decomposition
Abstraction
Algorithmic thinking
System evaluation