Software architecture gives teams a way to understand and reason about a software system before and during its construction. This lesson introduces the meaning, scope, and practical value of architecture.
Software architecture is both the set of structures needed to reason about a software system and the discipline of creating those structures and systems. Each structure consists of software elements, the relationships among them, and properties of both the elements and relationships.
All flashcards
What is software architecture?
It is the set of structures needed to reason about a software system and the discipline of creating those structures and systems.
What are the parts of an architectural structure?
A structure includes software elements, relationships among those elements, and properties of both the elements and the relationships.
Why are architectural choices important?
They are fundamental structural choices that may be costly or difficult to change once implemented, and they can affect development, deployment, and maintenance.
What does “everything is a trade-off” mean?
Architectural options have different benefits and costs; a choice should be evaluated against the system’s needs rather than treated as universally best.
How does architecture help manage risk?
It makes high-impact decisions and their consequences visible early, allowing teams to evaluate designs and address potential problems before they become expensive.
Quiz questions
What distinguishes a quality attribute from a functional requirement?Answer: It describes how well or under what qualities a system operates or evolves.
What is an architectural pattern?Answer: A reusable, proven solution to a recurring system-level problem.
What does Conway’s Law observe about organizations and system design?Answer: System designs tend to reflect the communication structures of the organizations that produce them.
What is software architecture recovery?Answer: Using implementation and other available information to uncover a system’s architecture.
What is the purpose of architectural evaluation?Answer: To determine how well a design or part of it meets requirements.