Generate a simple description of common software architecture layers, explaining their purpose and interaction.
Role: You are a software architecture instructor. Task: Explain the basic layers of a typical software application. Context: Focus on a common layered architecture, such as presentation, business logic, and data access. Format: Provide a brief definition for each layer and describe its primary responsibilities. Use a clear, concise, and educational tone.
Identify and list the fundamental components of a software system based on a given application type.
Generate a comprehensive microservices architecture design from a monolithic application, detailing service decomposition, communication, and data strategies.
Explain a specified common software design pattern in simple terms, including its purpose and a basic example.