There are some general principles that are usually applied during the architectural process. These principles described bellow, guide the analysis and decision taking that must be performed during the process. The principle is to conceive an architecture that has follows the features described below:
. Has clarity - the objective is to create a system that can be easily understood. Even though the requirement of the system can be complex, choosing a technology like object-oriented design can help defining the components and the interactions between them without great effort, resulting a clear architecture, without the requirement of detailed knowledge of the functionality of the constituent components
. Is extensible - for a better architecture of the system, the software designer would need creating subsystems. A subsystem encapsulates entirely its functionality, exposing its own interface. The functionality it encapsulates could comprise some complex set of processes, but the client objects are shielded from this complexity through the simple interface it exposes; the components representing the subsystems must be controlled in their interactions; the components gather in groups that can have high-degree of cohesion (they depend one to each-other) ; Interactions between them represents the coupling and the coupling between groups must be maintain as minimal, as the interdependence between groups should not affect the functionality of one to each-other in the conditions in which one change in a group determines changes in the second group.