Unit 10 - Building blocks and enterprise architectures Flashcards

1
Q

What does components and objects in OO software have in common?

A
  • they encapsulates data and operations.
  • they are fully documented and thoroughly tested.
  • their specification clearly separates the interface from implementation.
  • their specification may include non-functional characteristics.
  • they are known to clients only through their interface.

SAQ 1

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

Think of some possible advantages and disadvantages of building software by plugging together off-the-shelf components.

A

Advantages:
. Reusing a standard component should be cheaper than developing software from scratch.
. Using off-the-shelf components will allow applications to be developed more quickly.
. Standard components will have been used in many other projects, so their behaviour will be well understood and any bugs are likely to be known.
. Components are pluggable, so it is often possible to replace one component with another providing it has the same interface and behaves in the same way.

Disadvantages
. Using standard components may restrict what we can do since we have to work with the capability of the components.
. Some additional software is likely to be needed as ‘plumbing’.
. If the interfaces of components are incompatible, adapters will have
to be written.
. Creating a system by plugging together off-the-shelf components may not be as simple as it sounds.

SAQ 2

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

Suppose a component is implemented as an instance of a Java class. What corresponds to:

  • the provided interface of the component
  • the required interface of the component?
A

The provided interface consists of all the public methods in the class.

The required interface consists of all the methods from other classes that
the component’s methods make use of.

SAQ 3

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

In the context of software components, describe a concept that is similar to substitutability.

A

Components are replaceable: a component can be replaced by another that does the same job.

SAQ 4

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

Describe the 6 parts of a quality attribut scenario.

A

Source… is a human actor, another system, or anything else that can generate a stimulus.

Stimulus… is any kind of event or request.

Artefact… is what will respond to the stimulus. It might be a running component or service if we are considering performance for example, but it could be code or documentation if we are interested in maintainability.

Environment… specifies the conditions which the scenario assumes the artefact will be operating under. For instance if we are concerned with performance the environment might be either ‘normal operation’ or ‘overloaded’.

Response… is what happens as a result of the artefact receiving the stimulus.

Response measure… is an objective yardstick by which we can test if the requirement has been met.

p. 72

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

Name the value types for Performance scenario > Source

A

internal
external

p. 72

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

Name the value types for Performance scenario > Stimulus

A

periodic events
sporadic events
bursty events
stochastic events

p. 72

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

Name the value types for Performance scenario > Artefact

A

system

p. 72

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

Name the value types for Performance scenario > Environment

A

normal
overloaded

p. 72

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

Name the value types for Performance scenario > Response

A

process stimuli
change level of service

p. 72

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

Name the value types for Performance scenario > Response measure

A
latency
deadline 
throughput 
jitter
miss rate 
data loss

p. 72

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

Think of situations where the pattern of events for a performance scenario might be:
. periodic
. sporadic
. bursty.

A

Periodic
Anything that occurs regularly, for example information sent at the same time each day from a weather station, or status information sent every minute from a spacecraft.

Sporadic
Messages sent to an address for reporting problems, or signals from a device monitoring earth tremors.

Bursty
Search queries about a suddenly popular topic, or signals from a device reporting lightning strikes in a particular area.

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

Think of two application areas where the appropriate response measure for a performance scenario would be something other than latency.

A

Here are several examples we thought of:
. a system controlling a plant processing industrial chemicals – deadline
. an online shopping site – throughput
. an online gaming site – jitter (since users will expect consistent
response times)
. a social networking site – data loss
. an online shopping site – miss rate.

SAQ 7

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

What does flexibility mean in relation to software?

A

Flexibility is the ability for software to be changed easily.

SAQ 10

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

List types of reusable solutions that are available to software engineers.

A
. design tactics
. analysis patterns
. requirements patterns
. architectural styles
. design patterns
. language idioms
. components
. services.

SAQ 9

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

What concepts are related to flexibility?

A
  • Low coupling so changes don’t have knock-on effects.
  • High cohesion so functions that are closely related can get changed together as a unit.
  • Hiding implementation behind interfaces and contracts because this keeps coupling as low as possible.
  • Use component-based development so components are pluggable/replaceable.
  • Delegate details such as object creation to factories so clients don’t need to know them and coupling is kept low.
  • Use layers. Low coupling and separation of concerns.
  • Wrap legacy software (related to hiding functions behind interfaces).
  • Package functions as loosely coupled services.

SAQ 10

17
Q

List as many ways as you can think of to reduce coupling.

A

Use components that hide their implementation behind interfaces.

Use services that hide their implementation behind interfaces.

Use a layered architecture.

Use packages to group closely related elements.

Separate model from presentation.

Hide legacy software behind wrappers.

Delegate object creation to factories.

Use a registry to locate objects or services instead of having to know their location.

SAQ 11