The concept is closely related to the Single Responsibility Principle introduced by Robert C. Martin in his principles of Object Oriented Design (butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod), which state that:
"A class should have one, and only one, reason to change." –Robert C. Martin
In this respect, concerns have a wider scope than responsibilities, typically influencing your application's design and architecture rather than individual classes or interfaces. Separation of concerns is essential in a graphical application to correctly detach your easily-tested logic from the presentation code, which manages user interaction.
By separating the concerns of an application, it is easier to test subcomponents and check the validity of our software without even needing to run the application. In doing...