Architecture and Design Flashcards

1
Q

What is software architecture?

A

Definds how the system is organized

Breaks the entire system into a set of communicating modules.

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

What is the small level or architecture?

A

At the “signle” system level

defines how a large system is broken down into subsystems.

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

What is the large level of architecture?

A

at the “collection of systems” level.
Defines how a system is broken down into individual systems.

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

Why do we need an architecture?

A

Stakeholder communication:
- Aid for system-level design

System analysis:
- If not discussed, implicit architecture may be suboptimal.

Large-scale resuse:
- systems with similar requirements can resuse architecture components.

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

Can we specify all system characteristics in one architecture model?

A

This is impractical, because too many perspective will cause the diagram to become a mess.
Instead, we need multiple views.

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

What are the 4 view models of software architecture?

A

Logical view:
Process view:
Development view:
Physical view:

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

What is logical view?

A

Shows the key abstractions in the system as objects or object classes.

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

What is process view?

A

Shows how, at run-time, the system is composed of interactive processes.

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

What is developmet view?

A

Shows how the software is decomposed for development.

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

What is physical view?

A

Shows the system hardware and how software components are distributed across the processors in the system.

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

What are the purposes of architecture models?

A

Aiding discussion of system-level design

Documenting system architecture

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

How to maximize performance?

A

Maximized b creating a small number of large subsystems.

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

How to maximize security?

A

Maximized by layering systems with critical assets protected in the innermost layer

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

How to maximize safety?

A

Maximized by placing safety-related operations in a small number of subsystems.

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

How to maximize availability>

A

Maximized through redundant subsystems to allow hot-swapping for updates.

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

How to maximize maintainability?

A

Maximized by creating a large number of small, independent subsystems.

17
Q

What is an architectural pattern

A
  • Abstract descriptions of tried-and-tested solutions to common application problems.
  • Should describe when it’s a good idea to use and when it should be avoided.
18
Q

Tradeoffs of lightweight vs. formal architectural models

A

Lightweight (block):
Valuable discussion aid
Easy to produce
Lacks the rigour needed for formal docs

Heavyweight (formal):
Valuable for documentation purposes
Expensive to produce
Difficult for people to understand