Test yourself on Software architecture with AI-generated multiple-choice questions, answers, and explanations.
Thin Client Architecture became prominent in the 1990s as businesses sought to reduce hardware costs and simplify management by centralizing processing power on servers, enabling lightweight clients to handle user interactions.
Because it enables a one-to-many dependency between objects, allowing one object to notify multiple others about changes, thus reducing coupling and allowing for changes in one part without major rework in others.
Service discovery protocols like DNS-based service discovery (DNS-SD) and multicast DNS (mDNS) are essential in cloud environments for enabling services to locate each other without hard-coded configurations, enhancing scalability and resilience.
Because it helps to stop a system from repeatedly attempting operations that are failing, which can lead to broader system issues and failures.
Because events represent the definitive record of changes that have occurred, serving as the reliable basis to reconstruct the application's current state over time.
Because it states that a class or module should have only one reason to change, promoting clear boundaries and responsibilities, which aids in separation of concerns.
Abstraction in file systems became especially prominent with the development of virtual file systems (VFS) in Unix-like operating systems during the 1980s, allowing diverse storage devices to be accessed through a common interface regardless of underlying hardware differences.
Data flow diagrams were developed in the 1970s as part of structured systems analysis to help visualize how data moves between different parts of a system, aiding both understanding and communication among developers and stakeholders.