SOLID principles and application to systems of whatever scale
SOLID principles are important principles that apply to software applications, but they happen to also apply very well to software systems in general, so we will be able to use them to structure our project. We are going to explain the five principles one by one, together with how they apply to the transformation requested by DemoEditor and the design of its new information system. As this is a book about information systems and not software development, even though we will eventually build some implementations, I will not describe the principles from the coding point of view, but only briefly their main idea and, with more details, their translation into systems design.
Single responsibility principle
This principle states that a class, or in our case, a module of an information system, should do one and only one thing. This is quite wide as a definition but it can be narrowed down a bit by stating that an entity...