Topic 4 - Software Design Flashcards

1
Q

Software Design

A

Deriving a solution that satisfies software requirements

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

Major categories of Software design

A
  • Component
  • Algorithm
  • Data structure
  • Interface
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Open systems approach

A

Designing software in modules that can be re-used all over the place and maintained using standards.

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

Modularity

A

Keeping unrelated aspects of the system seperate. You do it through coupling and cohesion

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

Coupling

A

How many connections modules have

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

Degrees of coupling

A

the amount of control one module has over the other

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

Types of coupling

A
  • content
  • common
  • control
  • stamp
  • data
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Cohesion

A

How much a module’s internal elements depend on each other

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

Types of cohesion

A
  • coincidental
  • logical
  • temporeal
  • procedural
  • communicational
  • functional
  • informational
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Interface

A

Shows what services the software unit provides

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

Information hiding

A

Only giving as much control from outside the module as you need. This helps with cohesion and coupling.

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

Modular Design Criteria

A

The way you design your modules to work together.

Criteria: Modular …

  • Decomposability
  • Composability
  • Understandability
  • Continuity
  • Protection
  • Reusability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Refactoring

A

cleaning up code, removing old code, improving efficiency

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

Complexity (formula)

A

A way to measure how difficult your code is to understand.

Complexity = e - n + p, where
e = number of edges
n = number of nodes
p = number of connected components
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Design Pattern

A

A coding method or structure that is used alot. One example is the proxy pattern (creating a copy instead of giving client direct access)

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