Abstraction is one of the most foundational concepts in software engineering and computer science. It concerns removing details or properties from an object or system in order to view the components of greater importance within a certain context.

In his book Just Enough Software Architecture, A Risk-Driven Approach, George Fairbanks discusses abstraction in Chapter 6 as a technique, in conjunction with modeling, to…