Software architecture is about making fundamental structural choices which are costly to change once implemented.
Documenting software architecture facilitates communication between stakeholders, captures decisions about the architecture design, and allows reuse of design components between projects [REF].