We make design the high level structures of the system, and then generate the documentation of these structures. Each structure involves software elements, and relationships amongst each other. This analysis helps to guide system construction and maintenance. Additionally the Software Architect selects the appropriate technology for the platform in question, this step contributes to facilitate communication among system stakeholders regarding the architecture and the system.