Architectural design is a crucial first step in developing complex software intensive systems. Early design decisions establish the structures necessary for achieving broad systemic properties. However, today’s organizations lack synergy between software their development processes and technological methodologies. Providing a thorough treatment of the latest theory and best practices