There are some general principles that are usually applied during the architectural process. These principles help guide the analysis and decision making that must be performed during the process:
Create an architecture that has clarity.
Create an architecture that is extensible.
Create an architecture that is maintainable.
By creating an architecture that has clarity, you create a system that can be understood, a system that is not overly complex. This is not always an easy task to achieve, since many systems are by the nature of their requirements complex. But object-oriented design allows us to encapsulate that complexity into the components we create so that the resulting architecture is clear and understandable ...