· 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
o A set of components (e.g., a database, computational modules) that perform a function required by a system.
o A set of connectors that enable “communication, coordination and cooperation” among components.
o Constraints that de?ne how components can be integrated to form the system.
o 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