Software development can be described as a complex systemic process that requires expertise in various spheres of technology as well as the concerned business. An integral part of this software development process is facilitated by defining the architecture of software just like a blueprint of a master plan. Why We Need Software Architecture Big Ball of MudEarlier developers use to design architec