Architectural design represents the structure of data and program components that are required to build a computer-based system It considers the architectural style that the system will take, the structure and properties of the components that constitute the system, and the interrelationships that occur among all architectural components of a system. Representations of software architecture are an enabler for communication between all parties (stakeholders) interested in the development of a computer-based system. The architecture highlights early design decisions that will have a reflective impact on all software engineering work that follows and, as important, on the ultimate success of the system as an operational entity. The software that is built for computer-based systems also exhibits one of many architectural styles. Each style describes a system category that encompasses A set of components (e.g., a database, computational modules) that perform a function required by a system. A set of connectors that enable “communication, coordination and cooperation” among components. Constraints that de?ne how components can be integrated to form the system. Semantic models that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts. Different styles of Architecture Data-centered architecture style Data-?ow architectures Call and return architecture Object-oriented architecture Layered architecture Different styles of Pattern Three-tier Microkernel Model-View-Controller Model-View-ViewModel