Software architecture is a set of structures that contains software elements, relations among them, and properties of both. Documentation software architecture helps in communication between stakeholders. Architecture is the primary carrier of system qualities, such as performance, modifiable, and security. Software engineers employed fundamental principles since mid 1980’s. Software architecture is based on the idea of reducing complexity through abstraction and separation of concerns and it is a mix of art and science. There are several types of architecture description languages (ADL’s), developed by many organizations which are used to describe a software architecture. Architecture is important to post deployment system understanding, maintenance, and mining efforts.
There are several benefits of using software architecture in an organization which are given below:
- A commercial software system supports some aspects of a business or a mission.
- Software architecture helps to predict, achieve, and control quality attribute behavior and make practical tradeoffs early.
- It also helps in reducing the software failures.
- It also helps to produce fundamental justification for the architectural decisions made or not made.
- With software architecture a business can plan staffing needs and can reason about manage and change.
- It also helps business to communicate with the stake holders.
- It enables to estimate the costs and schedules more accurately.
- With the use of software architecture, a business can create evolutionary prototypes, predict and mitigate risks.
- It provides insight into how quality goals interact, that is, how they trade off.
- Documenting software architecture allows reuse of design components and patterns between projects.