architectural analysis Flashcards

1
Q

What Is Software Architecture?

A

The software architecture of a system is the set of structures needed to reason about the system. These structures comprise software elements, relations among them, and properties of both.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a software structure?

A

A structure is simply a set of elements held together by a relation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Which three structural categories are there in architectural structure?

A

Module structures
—————-
Allocation structures

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is system architecture?

A

A system’s architecture is a representation of a system in which there is a
mapping of functionality onto hardware and software components, a mapping
of the software architecture onto the hardware architecture, and a concern for
the human interaction with these components.
———————————
system architecture is
concerned with the totality of hardware, software, and humans

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is enterprise architecture?

A

is a description of the structure and behavior of an organization’s processes, information ow, personnel, and organizational
subunits.
———————————-
An enterprise architecture will specify, for example, the data model that
various systems use to interact.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What does the component and connector (C&C) structure focus on?

A

Components are the
principal units of computation and could be services, peers, clients, servers,
lters, or many other types of runtime element
———————————
Connectors are the
communication vehicles among components, such as call-return, process
synchronization operators, pipes, or others
——————————–
In short:
How the system is to be structured as a set of elements that have runtime behavior (components) and interactions (connectors).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What does module structures focus on?

A

show how a system is structured as a
set of code or data units that have to be constructed or procured. Modules are assigned specific computational responsibilities, and are the basis of work
assignments for programming teams
———————————
In any module structure, the elements
are modules of some kind (perhaps classes, packages, layers, or merely
divisions of functionality, all of which are units of implementation)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What does the allocation structure focus on?

A

establish the mapping from software structures to the
system’s nonsoftware structures, such as its organization, or its development,
test, and execution environments.

In short:
How the system will relate to non-software structures in its environment (such as CPUs, file systems, networks, development teams, etc.).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

(module structure) What is a “decomposition structure”?

A

The units are modules that are related to each other
by the “is-a-submodule-of” relation, showing how modules are decomposed
into smaller modules recursively until the modules are small enough to be
easily understood

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

(module structure) What is “uses structure”?

A

the units are also modules, and perhaps classes. The units are related by the uses relation, a specialized form of dependency. One unit of software uses another if the
correctness of the rst requires the presence of a correctly functioning
version (as opposed to a stub) of the second.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

(module structure) What is layer structure?

A

The modules in this structure are called layers. A layer is an
abstract “virtual machine” that provides a cohesive set of services through a
managed interface. Layers are allowed to use other layers in a managed
fashion; in strictly layered systems, a layer is only allowed to use a single
other layer. This structure imbues a system with portability—that is, the
ability to change the underlying virtual machine

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

(module structure) What is class structure?

A

The modules in this structure are called
classes, and they are related through an “inherits-from” or “is-an-instance-of”
relation. This view supports reasoning about collections of similar behavior
or capability and parameterized dierences. The class structure allows one to
reason about reuse and the incremental addition of functionality. If any
documentation exists for a project that has followed an object-oriented
analysis and design process, it is typically this structure

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

(module structure) What is data model structure?

A

The data model describes the static information structure in
terms of data entities and their relationships. For example, in a banking
system, entities will typically include Account, Customer, and Loan. Account
has several attributes, such as account number, type (savings or checking),
status, and current balance. A relationship may dictate that one customer can
have one or more accounts, and one account is associated with one or more
customers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

(Allocation Structures) What are deployment structures?

A

The deployment structure shows how software is
assigned to hardware processing and communication elements. The elements
are software elements (usually a process from a C&C structure), hardware
entities (processors), and communication pathways. Relations are “allocatedto,” showing on which physical units the software elements reside, and
“migrates-to” if the allocation is dynamic.
—————————————–
This structure can be used to
reason about performance, data integrity, security, and availability.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

(Allocation Structures) What are implementation structures?

A

shows how software elements
(usually modules) are mapped to the le structures in the system’s
development, integration, test, or conguration control environments. This is
critical for the management of development activities and build processes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

(Allocation Structures) What are work assignment structures?

A

assigns responsibility for
implementing and integrating the modules to the teams who will carry out
these tasks. Having a work assignment structure be part of the architecture
makes it clear that the decision about who does the work has architectural as
well as management implications

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Is the structures independent?

A

For example, a module in a decomposition structure may be
manifested as one, part of one, or several components in one of the C&C
structures, reecting its runtime alter-ego. In general, mappings between
structures are many to many

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is a quality attribute?

A

A measurable or testable property of a system that is used to indicate how well the system satisfies the needs of its stakeholders.

“The totality of characteristics of an entity that bears on its ability to satisfy stated and
implied needs” [ISO 9126,2002]

Quality attributes are often called “non-functional” properties.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What is functional requirements?

A

These requirements state what the system must
do, and how it must behave or react to runtime stimuli.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What is quality attribute requirements?

A

These requirements are qualifications of
the functional requirements or of the overall product. A qualification of a
functional requirement is an item such as how fast the function must be
performed, or how resilient it must be to erroneous input
——————————–
A quality attribute requirement should be unambiguous and testable

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What is constraints?

A

A constraint is a design decision with zero degrees of freedom.
That is, it’s a design decision that’s already been made. Examples include
the requirement to use a certain programming language or to reuse a certain
existing module, or a management fiat to make your system service oriented

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is the response of architecture to functional requirements?

A

are satisfied by assigning an appropriate sequence
of responsibilities throughout the design

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What is the response of architecture to quality attributes?

A

satisfied by the various structures designed into the architecture, and the behaviors and interactions of the elements that populate those structures

24
Q

What is the response of architecture to constraints?

A

satisfied by accepting the design decision and reconciling it
with other affected design decisions

25
Q

Example of quality attributes not standing alone (turn)

A

If a functional requirement is “When the user presses
the green button, the Options dialog appears,” a performance QA annotation might
describe how quickly the dialog will appear; an availability QA annotation might
describe how often this function will fail, and how quickly it will be repaired; a usability QA annotation might describe how easy it is to learn this function.

26
Q

What is the form/approach for quality attributes?

A

Quality attribute scenarios (QAS)
Stimulus
stimulus source
response
response measure
environment
artifacts

27
Q

What is stimulus about in quality attributes scenarios?

A

The stimulus is a condition that needs to be considered when it arrives at a system.

28
Q

What is stimulus source about in quality attributes scenarios?

A

This is some entity (a
human, a computer system, or any other
actuator) that generated the stimulus.

29
Q

What is response about in quality attributes scenarios?

A

How the system should respond to the stimulus must also be
specified. The response consists of the responsibilities that the system
(for runtime qualities) or the developers (for development-time qualities)
should perform in response to the stimulus
————————–
The response is the activity
undertaken after the arrival of the
stimulus.
———————————-
For example, in a performance
scenario, an event arrives (the stimulus) and the system should process
that event and generate a response

30
Q

What is response measure about in quality attributes scenarios?

A

e. Determining whether a response is satisfactory—
whether the requirement is satisfied—is enabled by providing a response
measure.
—————————
When the response
occurs, it should be measurable in some
fashion so that the requirement can be
tested
—————————-
For performance this could be a measure of latency or throughput;

31
Q

What is environment about in quality attributes scenarios?

A

The environment of a requirement is the set of circumstances
in which the scenario takes place. The environment acts as a qualifier on
the stimulus.
————————
The stimulus occurs within
certain conditions. The system may be in
an overload condition or may be running
when the stimulus occurs, or some other
condition may be true.
————————
For example, a request for a modification that arrives after
the code has been frozen for a release may be treated differently than one
that arrives before the freeze

32
Q

What is artifact about in quality attributes scenarios?

A

the artifact is the portion of the system to which the
requirement applies. Frequently this is the entire system, but occasionally specific portions of the system may be called out
——————————–
Some artifact is stimulated. This
may be the whole system or some pieces
of it.

33
Q

How can you achieve/plan to achieve quality attributes scenario?

A

Using architectural tactics. A tactic is a design decision that influences the achievement of a quality attribute response—tactics directly
affect the system’s response to some stimulus. The focus of a tactic is on a single quality attribute response
————————————
Tradeoffs must be explicitly considered
and controlled by the designer

34
Q

What is Attribute-Driven Design?

A

an approach to defining software architectures by basing the design process on
the architecture’s quality attribute requirements.
——————————
In ADD, architectural design follows a recursive decomposition process where, at each stage in the decomposition, architectural tactics and patterns are chosen to satisfy a set
of quality attribute scenarios
——————————-
The architecture
designed using the ADD method represents the high-level
design choices documented as containers for functionality
and interactions among the containers using views

35
Q

What is Siemens’ 4 views?

A

In the conceptual view, the product’s functionality is
mapped to a set of decomposable, interconnected components and connectors. Components are independently
executing peers, as are connectors.
———————————
The execution architecture view describes the system’s
structure in terms of its runtime platform elements (e.g.,
OS tasks, processes, threads). The task for this view is
to assign the system’s functionality to these platform
elements, determine how the resulting runtime instances
communicate, and how physical resources are allocated
to them.
——————————
modules are organized into two
orthogonal structures: decomposition and layers. The
decomposition structure captures how the system is logically decomposed into subsystems and modules. A module
can be assigned to a layer, which then constrains its dependencies on other modules.
———————————
the code architecture view, is concerned
with the organization of the software artifacts. Source components implement elements in the module view, and
deployment components instantiate runtime entities in
the execution view

36
Q

What is RUP’s 4 + 1 Views?

A

four views to describe the design: logical view, process view, implementation view and deployment view, and
using a use-case view (+1) to relate the design to the
context and goals. In RUP, architectural design is spread over several
iterations in an elaboration phase, iteratively populating
the 4 views, driven by architecturally significant use cases,
non-functional requirements in the supplementary specification, and risks
—————————————-
Use-Case View: This view describes the system’s functionality from the user’s perspective. It focuses on capturing user requirements and identifying the use cases or interactions between users and the system.
——————————————
Logical View: The Logical view focuses on the system’s structure and organization of components. It describes the software components, their relationships, and the high-level architecture of the system.
—————————————–
Process View: The Process view focuses on the system’s dynamic behavior and concurrency aspects. It describes how the system executes and coordinates the activities of different components or processes
————————————————
Implementation View: The Implementation view provides a perspective on the system’s physical structure and its mapping to the implementation environment. It describes how the system is deployed, the distribution of components, and the hardware and software infrastructure required for the system
—————————————-
The Deployment view focuses on the system’s physical deployment and configuration aspects. It describes how the software components are deployed on hardware resources, network configurations, and the deployment topology.

37
Q

What is architectural concerns?

A

those interests which pertain
to the system’s development, its operation or any
other aspects that are critical or otherwise important
to one or more stakeholders. Concerns include system
considerations such as performance, reliability, security,
distribution, and evolvability

38
Q

What is context?

A

“a system’s . . . environment,
or context, determines the setting and circumstances
of developmental, operational, political, and
other influences upon that system”

39
Q

What is architectural analysis?

A

Define:
What are the problems to address with an
architecture

40
Q

What is architecturally significant requirements?

A

A requirement upon a software
system which influences
its architecture”
… significantly

41
Q

What is architectural synthesis?

A

Core of architecture work:
Move from problem to solution

42
Q

What is candidate architectural solutions?

A

System designs that are whole,
partial, or alternative solutions to
the problem

43
Q

What is an architectural evaluation

A

Verify that right design decisions
(according to ASR)

44
Q

What is validated architecture?

A

Candidate solutuion(s) consistent
with ASR

45
Q

is the general architectural design activities sequential?

A

(architectural analysis, architectural synthesis, and architectural evaluation) do
not proceed sequentially, but rather proceed in small leaps
and bounds as architects move constantly from one to
another, ‘‘growing’’ the architecture progressively over time

46
Q

Why is a backlog used?

A

Architects go back and forth between architectural analysis, synthesis and evaluation, because it is not possible to analyze, resolve, find solutions and evaluate the architecture for all architectural concerns simultaneously: the range and number of
interrelated issues is just too overwhelming for the human
mind. Hence, the backlog is introduced.

47
Q

What is the backlog?

A

a backlog of smaller
needs, issues, problems they need to tackle, as well as ideas
they might want to use. The backlog drives the workflow, helping the architects determine what to do next.
——————————-
The backlog is constantly fed by:
(a) selecting some architectural concern and/or ASR
from the architectural analysis.
(b) negative feedback in the form of issues or problems arising from architectural evaluation, and to a lesser extent,
(c) ideas from the architect’s experience, discussions, readings, etc.
——————————–
Once a backlog item (or a small set of backlog items) is
picked by the architects, they will proceed to incrementally
perform architectural synthesis, making some design decisions and integrating them with the existing set of design
decisions. Thus the front of the backlog serves to set the
objectives for a particular iteration of architectural synthesis

48
Q

What is the goals of architectural analysis?

A

To distill architectural concerns and context into architecturally significant
requirements (ASRs)
———————————–
Architectural concerns
* “those interests which pertain to the system’s development, its operation or any other aspects that are critical or otherwise important to one or more stakeholders” [IEEE 1471]
* Performance, security, use of standards, regulatory requirements, …
——————————
context
* Characteristics or goals of the organization (e.g., always use C#)

49
Q

What is context diagrams?

A

Describe the setting of the system in terms of subsystems, integrated systems,
and actors
———————————-
The purpose of a context diagram is to provide a clear and concise representation of the system’s scope and context. It helps stakeholders understand the system’s boundaries, the external entities it interacts with, and the information or data exchanged between them.

50
Q

What is an informal context diagram?

A

Very high level, Communicate with
non-technical audience
e.g. CEO/board of directors, Not used for conveying architectural
work
* Not used for conveying architectural work
But very useful to:
* Give overview
* Visualize system
* Communicate with non-technical audience e.g. CEO/board of directors

51
Q

What are the 10 most important system quality attributes?

A
  • Availability
  • Deployability
  • Energy efficiency
  • Interoperability
  • Modifiability
  • Performance
  • Safety
  • Security
  • Testability
  • Usability
52
Q

(C&C structures) What are service structure?

A

The units here are services that interoperate with each other by service coordination mechanisms such as SOAP.

53
Q

(C&C structures) What are concurrency structure?

A

This component-and-connector structure allows the architect to determine opportunities for parallelism and the locations where resource contention may occur.

54
Q

(Quality attribute) How do we measure quality?

A

We need to measure our software. This requires
* that we define the aspects/qualities we measure
* that we agree on some kind of scale: a metric

55
Q

What are quality attribute scenarios used for?

A

Quality Attribute Scenarios
* ground quality in specific “use situation”