CEN 4065 - Quiz - Lecture 1: Introduction to Software Architecture and Design

0.0(0)
studied byStudied by 1 person
GameKnowt Play
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/32

flashcard set

Earn XP

Description and Tags

A set of QUESTION-AND-ANSWER flashcards covering key concepts from Lecture 1: Introduction to Software Architecture and Design.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

33 Terms

1
New cards

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.

2
New cards

What are the three primary architectural structure categories?

Module structures; Component-and-Connector (C&C) structures; Allocation structures.

3
New cards

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.

4
New cards

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.

5
New cards

What is an allocation structure?

A view showing the mapping of software structures to external environments, such as organizational, developmental, installation, and execution contexts.

6
New cards

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.

7
New cards

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.

8
New cards

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.

9
New cards

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.

10
New cards

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.

11
New cards

What are the common software architecture structures?

Module structures; Component-and-Connector structures; Allocation structures.

12
New cards

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.

13
New cards

In a Component-and-Connector structure, what are runtime elements?

Components such as services, peers, clients, servers, and filters that execute at runtime.

14
New cards

What are connectors in C&C structures?

Communication vehicles among components, such as call-return, pipes, or service coordination mechanisms (e.g., SOAP).

15
New cards

What is a service structure?

A C&C structure where services interoperate with each other through coordination mechanisms.

16
New cards

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.

17
New cards

What is a deployment structure?

Shows how software elements map to hardware processors and networks, including deployment relationships and movement of elements.

18
New cards

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.

19
New cards

What makes a structure worth considering for stakeholders’ quality attributes?

It supports reasoning about important attributes such as functionality, availability, change impact, and responsiveness.

20
New cards

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.

21
New cards

How is architecture related to documentation?

Architecture can exist without documentation, but effective documentation is critical to convey the architecture to others.

22
New cards

How is architecture related to behavior?

Architecture includes behavior when behavior influences other elements or overall system acceptability; not every behavior must be documented.

23
New cards

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.

24
New cards

What is a UML package?

In UML, partitions/sub-systems are called packages, which group model elements.

25
New cards

What is a data model in software design?

A static description of data entities and their relationships (e.g., Account, Customer, Loan) and attributes.

26
New cards

What is UML cardinality?

A concept used to specify how many instances of one element relate to another in a data model.

27
New cards

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.

28
New cards

What is a class structure?

A structure where modules are classes; relationships are based on inheritance; supports reuse and incremental functionality.

29
New cards

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.

30
New cards

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.

31
New cards

What is an implementation structure?

Shows how software elements are mapped to file structures in development, testing, or configuration control environments; important for builds.

32
New cards

What is a work assignment structure?

Assigns responsibility for implementing and integrating modules to teams and defines major communication pathways.

33
New cards

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.