chapter 5 Flashcards

1
Q

Define design in design process.

A

The creative process of figuring out how to implement the customer’s requirements.

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

What is early design (design process)?

A

Decisions that address the system’s architecture.

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

What is later design (design process)?

A

Decisions that address the implementation of individual units.

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

What is routine design (design process)?

A

Reusing solutions to previous problems.

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

What is architectural style?

A

Generic solutions to software problem. Client-server, p2p, etc.

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

What is SAD?

A

Software architecture document. An iterative process of designing a system.

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

What are the 6 ways to use architectural models for your problem?

A
  1. understand the system.
  2. determine reuse.
  3. blueprints for construction.
  4. reason about system evolution.
  5. analyze dependencies.
  6. understand risks and make decisions.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is decomposition?

A

Breaking down a problem into smaller pieces.

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

What are views?

A

Views are different diagrams (visual models) that convey information about the system; ER-diagram, class diagram, etc.

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

Explain functional decomposition (design method).

A

A design that is focused on functions.

The functions are broken down and separated into modules.

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

Explain feature-oriented decomposition (design method).

A

System is broken down into features.

Describes interactions among features.

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

Explain object-oriented decomposition (design method).

A

Objects are assigned to modules.
How objects related to one another (high level).
Object’s attributes and operations (low level).

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

Explain object-oriented decomposition (design method).

A

Objects are assigned to modules.
How objects related to one another (high level).
Object’s attributes and operations (low level).

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

When is a design modular?

A

Each activity in the system is performed by exactly one unit.

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

When is software well-defined?

A

The module is used as intended. Requires utf-8 formatting? Then provide utf-8 formatting instead of ascii.

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

Name three common types of architectural views.

A
  1. Dependencies view.
  2. Generalization view.
  3. Work-assignment view.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is dependencies view?

A

Shows dependencies among software units.
Useful for software planning.
Deciding what is necessary and what to do first in sprints.

Additionally useful for assessing impact of a design change.

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

What is a generalization view?

A

Relationship between abstract and non-abstract classes.

College:
People -> employees, students.. etc.

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

What is a work-assignment view?

A

System is broken down in to work tasks to be assigned to teams to build.
Helpful for project management planning.

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

What are 5 types of architectural styles.

A
  1. Pipes-and-Filter
  2. Client-server
  3. Peer-to-peer
  4. Publish-subscribe
  5. Repositories
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What is pipes-and-filter architecture style?

A

A system with a bunch of functions that take input and produce an output.

Useful for batch processing (shell scripts).
Not good for interactive applications.

22
Q

What is client-server architecture style?

A

Server offers services.

Clients interact with the server via request/reply protocol.

23
Q

What is peer-to-peer architecture style?

A

Each component acts as its own process (both client and server).
Very tolerant to failures.

24
Q

What is publish-subscribe architecture style?

A

Components react by broadcasting and reacting to events.

Need a shared repository and is difficult to test.

25
Q

What are repositories (architecture style)?

A
A central data store.
An interface (component) operates it (store, retrieve, etc.)
26
Q

What are 7 quality attributes?

A
  1. Modifiability
  2. Performance
  3. Security
  4. Reliability
  5. Robustness
  6. Usability (ease of use)
  7. Business goals
27
Q

Define the quality attribute: modifiability.

A

Design must be easy to change.
Directly affected units: modify responsibilities as necessary.
Indirectly affected units: implementations must be revised.

28
Q

What is cohesion (quality attribute: modifiability)?

A
Cohesion is the degree to which elements in a module belong together.
Changes to the system should impact as few units as possible.
29
Q

Define the quality attribute: performance.

A
  1. Response time: speed of response.
  2. Throughput: requests processed per minute.
  3. Load: how many uses can be supported w/o affected #1. and #2.
30
Q

Define the quality attribute: security.

A

Immunity: prevent attempted attacks.
Resilience: recover from attacks easily.

31
Q

Define the quality attribute: reliability.

A

Software performing its required functions under assumed conditions.

Fault: human error (incorrect inputs).
Failure: system does not behave as intended.

Software is more reliable if it prevents or tolerates faults. Assume the user will screw up, build in defenses.

32
Q

Define the quality attribute: robustness.

A

Robust systems accommodate or recover from problems.

Recovery tactics:
rollbacks, abort transactions, backup units, reduced service.

33
Q

Define the quality attribute: usability.

A

Ease of use for the user to operate the system.

34
Q

Define the quality attribute: business goals.

A

Quality goals the system is expected to exhibit (time to market, dev cost, etc.)

Buy vs build: save dev time.
Initial dev vs maintenance cost.
New vs known tech.

35
Q

What is architectural evaluation?

A

An iterative process that involves making decisions, assessing those decisions and making adjustments.

36
Q

What is safety analysis in architectural evaluation?

A

Techniques during design to identify faults.

Fault-tree analysis: backward trace through the design.
Data-flow graph: transfer of data from one process to another.
Control flow graph: transfer of control among units.

37
Q

What is trade-off analysis in architectural evaluation?

A

Compare different designs and pick the best one.

38
Q

What is cost-benefit analysis in architectural evaluation?

A

Business tool to determine the financial benefits of a proposed change.

ROI (return on investment): benefit/cost
Payback period: length of time to recover the cost.

39
Q

What are two ways software architecture is reviewed or evaluated?

A
  1. Validation: software satisfies the requirements.

2. Verification: software adheres to good design principles.

40
Q

What is validation in architecture review?

A

A group of people (devs) are judging whether the software meets the requirements.

41
Q

What is verification in architecture review?

A

Judge whether the software adheres to good design principles.

Active design review: review individual sections of the architecture.
Passive review process: reading documentation and looking for problems.

42
Q

What is software product lines?

A

Product line: reusing elements for for software.
Product family: multiple products developed from similar assets.
Core asset base: the assets to be reused.

43
Q

When leveraging existing solutions what is cloning?

A

borrow design/code with minor adjustments.

44
Q

When leveraging existing solutions what are reference models?

A

generic architecture that suggests how to decompose a system.

45
Q

What are design patterns?

A

generic solutions for making lower-level decisions.

46
Q

What are design conventions or idioms?

A

collection of design decisions that promote quality.

47
Q

What are design principles?

A

characteristics of a good design.

48
Q

What is generality (quality attribute)?

A

make modules easier to change.

49
Q

What is coupling (quality attribute)?

A

the degree to which units are connected.

a loosely coupled system reduced ripple effects of changes.

50
Q

What is mutual suspicion (quality attribute: robustness)?

A

each module assumes the other contains faults.

example: validating email each time it is passed from one module to another.