Unit 10 - Building blocks and enterprise architectures Flashcards
What does components and objects in OO software have in common?
- 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
Think of some possible advantages and disadvantages of building software by plugging together off-the-shelf components.
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
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?
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
In the context of software components, describe a concept that is similar to substitutability.
Components are replaceable: a component can be replaced by another that does the same job.
SAQ 4
Describe the 6 parts of a quality attribut scenario.
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
Name the value types for Performance scenario > Source
internal
external
p. 72
Name the value types for Performance scenario > Stimulus
periodic events
sporadic events
bursty events
stochastic events
p. 72
Name the value types for Performance scenario > Artefact
system
p. 72
Name the value types for Performance scenario > Environment
normal
overloaded
p. 72
Name the value types for Performance scenario > Response
process stimuli
change level of service
p. 72
Name the value types for Performance scenario > Response measure
latency deadline throughput jitter miss rate data loss
p. 72
Think of situations where the pattern of events for a performance scenario might be:
. periodic
. sporadic
. bursty.
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.
Think of two application areas where the appropriate response measure for a performance scenario would be something other than latency.
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
What does flexibility mean in relation to software?
Flexibility is the ability for software to be changed easily.
SAQ 10
List types of reusable solutions that are available to software engineers.
. design tactics . analysis patterns . requirements patterns . architectural styles . design patterns . language idioms . components . services.
SAQ 9