What does software architecture describe?
Software architecture is a system’s high-level organization: its major components, their interactions, constraints, and the reasoning behind key decisions.
Study 5 Software Architecture with 12 free online flashcards. Review key terms, definitions, and concepts with this interactive flashcard deck.
What does software architecture describe?
Software architecture is a system’s high-level organization: its major components, their interactions, constraints, and the reasoning behind key decisions.
Why describe architecture using different views?
Different views address different stakeholder concerns; for example, a module view can help developers, while a deployment view can help operators.
How does a layered architectural style organize responsibilities?
A layered style organizes responsibilities into levels, such as presentation, application logic, and data access. Limits on which layers can call others help preserve the structure.
What is a key benefit and limitation of client–server architecture?
Clients request services from servers. This centralizes service provision, but clients may depend on server availability and network performance.
How does a pipe-and-filter style process data?
Independent filters transform data and pass results through pipes. This suits sequences of data-processing steps, especially when filters avoid shared state and dependence on other filters’ identities.
What is a trade-off of event-driven architecture?
Producers publish events for consumers to handle. This can reduce direct dependencies, but complicates event ordering, tracing, and failure handling.
What trade-off comes with separately deployable services?
Capabilities are provided by separately deployable services. Independent deployment and scaling may help, but network communication, distributed data, and operational complexity add costs.
Can a system combine architectural styles?
Styles can be combined: a system may be layered internally while using client–server communication between its user interface and backend.
What is system decomposition?
System decomposition divides a system into components or subsystems with defined responsibilities and interfaces.
What do high cohesion and low coupling mean?
High cohesion keeps related responsibilities together within a component; low coupling means changes in one component require few changes elsewhere.
What do quality attributes describe?
Quality attributes describe how well a system performs important behaviors or meets operational needs, rather than what features it provides.
How does a quality scenario make a goal useful?
A measurable scenario makes a quality goal concrete, such as specifying that 95% of catalog searches finish within 300 milliseconds at 5,000 requests per second.