Introduction The first time this term appeared in Software Engineering lexicons was all the way back in 1997. It appeared in the book "Object-Oriented Software Construction" by Bertrand Meyer. At this time it was known as CQS (Command Query Separatio...