Software architecture provides a high-level structure for a software system, forming a solid foundation to address key scenarios, design goals, and future modifications while realizing functional requirements and quality attributes like reliability and security. There are two main types of architecture - patterns that provide reusable solutions to common problems within a context, and styles that define broad orientations for structuring systems, such as representational state transfer, service-oriented, and component-based architectures.
6. The Goals of Architecture
Expose the structure of the system but hide
the implementation details.
Realize all of the use cases and scenarios.
Try to address the requirements of various
stakeholders.
Handle both functional and quality
requirements.
8. Architectural Pattern
Reusable solution to a commonly occurring
problem in software architecture within a given
context.
Similar to software design patterns but have
a broader scope.
10. Architectural Style
Representational State Transfer - REST
Service Oriented Architecture - SOA
Component-based
Messaging
Event-driven
Publish and Subscribe
Peer to Peer