Leveraging design principles and existing solutions
Designing a software architecture from scratch for a project with some level of complexity can be a challenging task. However, software architects have a number of tools at their disposal when designing an architecture.
The design issues facing a project may have already been solved by others, and rather than reinventing the wheel, those solutions can be leveraged in your architecture design. These architecture design principles and solutions, which are sometimes referred to as design concepts, are building blocks used to design a software architecture.
Selecting a design concept
There are many design concepts, so a software architect needs to know which ones are suitable for a particular problem, and then select the one that is most appropriate among the alternatives. You may also find cases where you need to combine multiple design concepts to create a solution.
Depending on the stage of the architecture design you are in and the nature of...