1/32
A set of QUESTION-AND-ANSWER flashcards covering key concepts from Lecture 1: Introduction to Software Architecture and Design.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
What is software architecture?
The set of structures needed to reason about a system, comprising software elements, the relations among them, and the properties of both.
What are the three primary architectural structure categories?
Module structures; Component-and-Connector (C&C) structures; Allocation structures.
What is a module structure?
A view that partitions the system into modules (code or data units) with assigned functional responsibilities and defined dependencies and relationships, focusing on what each module does rather than runtime details.
What is a component-and-connector (C&C) structure?
A view of runtime behavior and interactions, where components are runtime elements and connectors are the communication mechanisms between them (e.g., calls, pipes); includes service and concurrency structures.
What is an allocation structure?
A view showing the mapping of software structures to external environments, such as organizational, developmental, installation, and execution contexts.
What makes a structure architectural?
It supports reasoning about the system and its important properties (e.g., functionality, availability, modifiability, responsiveness) that matter to stakeholders.
What is architecture abstraction?
The practice of omitting details not useful for reasoning about the system, focusing on essential elements and their relations while excluding private implementation details.
Do all systems have a software architecture?
Yes—every system has an architecture, though it may not be documented; architecture can exist independent of its description, and documentation is valuable.
Does architecture include behavior?
Yes, architecture includes behavior to the extent that behavior influences system properties or its relationships; fine-grained behavior may be omitted unless it affects architecture.
What is the Physiological Structures analogy in software architecture?
Different views or perspectives (like medical specialties) describe different aspects of the same system; all views are related and collectively describe the architecture.
What are the common software architecture structures?
Module structures; Component-and-Connector structures; Allocation structures.
What is a module structure's key focus?
Deciding how the system is divided into modules and what each module is responsible for, including its dependencies and potential inheritance relationships.
In a Component-and-Connector structure, what are runtime elements?
Components such as services, peers, clients, servers, and filters that execute at runtime.
What are connectors in C&C structures?
Communication vehicles among components, such as call-return, pipes, or service coordination mechanisms (e.g., SOAP).
What is a service structure?
A C&C structure where services interoperate with each other through coordination mechanisms.
What is a concurrency structure?
A C&C structure that highlights opportunities for parallelism and places where resource contention may occur; components are organized into threads.
What is a deployment structure?
Shows how software elements map to hardware processors and networks, including deployment relationships and movement of elements.
What is an allocation view example?
Examples include which processor runs each element, directory/file organization for development, and which teams are responsible for modules.
What makes a structure worth considering for stakeholders’ quality attributes?
It supports reasoning about important attributes such as functionality, availability, change impact, and responsiveness.
Why is architecture described as an abstraction?
Because it focuses on essential elements and relations that support reasoning, omitting unnecessary implementation details to manage complexity.
How is architecture related to documentation?
Architecture can exist without documentation, but effective documentation is critical to convey the architecture to others.
How is architecture related to behavior?
Architecture includes behavior when behavior influences other elements or overall system acceptability; not every behavior must be documented.
How are structures related to each other?
Elements from one structure can relate to elements in other structures; mappings between structures are typically many-to-many.
What is a UML package?
In UML, partitions/sub-systems are called packages, which group model elements.
What is a data model in software design?
A static description of data entities and their relationships (e.g., Account, Customer, Loan) and attributes.
What is UML cardinality?
A concept used to specify how many instances of one element relate to another in a data model.
What is a layer structure?
A structure where modules are organized into layers; a layer provides services via a managed interface and, in strictly layered systems, may use only one other layer, aiding portability.
What is a class structure?
A structure where modules are classes; relationships are based on inheritance; supports reuse and incremental functionality.
What is a uses structure?
A structure where a unit uses another when the first’s correctness depends on a functioning version of the second; enables incremental development and extraction of subsets.
What is the purpose of a deployment diagram?
A visual representation of how software elements map to hardware and network resources within the deployment structure.
What is an implementation structure?
Shows how software elements are mapped to file structures in development, testing, or configuration control environments; important for builds.
What is a work assignment structure?
Assigns responsibility for implementing and integrating modules to teams and defines major communication pathways.
What is the overall takeaway about software architecture and its evaluation?
There is no inherent good or bad architecture; architectures are more or less fit for a purpose and should be evaluated in the context of goals and quality attributes.