Ch 3 Flashcards

1
Q

Software component

A

A component is an abstract entity that can perform tasks, i.e. fulfill some responsibilities.

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

Characteristics of a component

A

Two important characteristics of components are:

  1. A component must have a small, well-defined set of responsibilities.
  2. A component should interact with other components to the minimal extent possible.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

The what/who cycle

A

First, the design team identifies what activity needs to be performed next. This is immediately followed by answering the question of who performs the action.

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

Behavior of a component

A

The behavior of a component is the set of actions it can perform. The complete description of all the behavior for a component is sometimes called the protocol.

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

State of a component

A

The state of a component represents all the information held within it at a given point of time. Notice that the state is not static and can change over time.

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

Cohesion

A

Cohesion is the degree to which the responsibilities of a single component form a meaningful unit. High cohesion is achieved by associating in a single component tasks that are related in some manner. Probably the most frequent way in which tasks are related is through the necessity to access a common data value.

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

Coupling

A

Coupling describes the relationship between software components. In general, it is desirable to reduce the amount of coupling as much as possible, since connections between software components inhibit ease of development, modification, or reuse. In particular, coupling is increased when one software component must access data values - the state - held by another component. Such situations should almost always be avoided in favor of moving a task into the list of responsibilities of the component that holds the necessary data.

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

Parnas’s principles (David Parnas)

A
  1. The developer of a software component must provide the intended user with all the information needed to make effective use of the services provided by the component and should provide no other information.
  2. The developer of a software component must be provided with all the information necessary to carry out the given responsibilities assigned to the component and should be provided with no other information.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly