Chapter 2 Flashcards

1
Q

What is the role of component specification?

A

They provide an implementation-independent contract between the users and providers of components.

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

What do you understand by component models?

A

Component models determine the common computation, communication, and composition principles and rules underlying a class of components.

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

What do you understand by platform?

A

The platform provides the basic functionality on which a software system is built. A platform is a software/hardware system.

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

Highlight the reasons for making a distinction between a software system and it’s platform

A
  1. A platform may be used for several different software systems, hence the need to describe the platform separately and reuse it.
  2. Separating the platform and software system of interest allows focusing on relevant system parts.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What do you understand by environment of a software system?

A

It refers to the outside world with which it interacts.

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

What are the different stages of software system?

A
  1. Designed
  2. Programmed
  3. Configured
  4. Deployed/Installed
  5. Executing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Name the stages for software component

A
  1. Component specification
  2. Component implementation
  3. Component configuration
  4. Deployed/Installed components
  5. Running components
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What kinds of composition are explained in the text?
Describe their differences

A

The kinds of composition are:
1. Hierarchical composition,
2. Heterogeneous composition, and
3. Open composition

Description of their differences:

  1. Hierarchical composition: The result of the composition of some components C1, …Cn is a new component C following the same model as the sub components Ci.
  2. Heterogeneous composition: The result of the composition of components C1, …, Cn is a new component C with different characteristics than the sub components Ci.
  3. Open composition: The result of the composition of components C1, …, Cn is a web of components i.e a set of connected components.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is interface declaration?

A

An interface declaration defines a type and a list of method signatures. Interfaces are implemented by components.

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

What is component declaration?

A

Component declaration defines which interfaces the component implements and provides the signatures of the component constructors.

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

What is the difference between the instances of class and component instance?

A

The instance of a class consists of one object that has to provide the functionality for all interfaces implemented by the class while the instance of a component might consist of several objects such that for every interface implemented by the component there is at least one object providing the needed functionality.

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

What is state space of a component?

A

State space of a component consists of all the possible values that the model variables can hold.

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

The three kinds of types in the context of component based development are?

A
  1. Data types
  2. Interface types, and
  3. Component types

Data types describes values that can be passed as parameters between components.

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

Distinguish between data types, interface types and component types on specification level of components

A

Data types describes the values that are passed between components, interface types declares the communication protocols offered by an object while component types bundles the provided and required interfaces together to form executable entities.

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

What is the difference between passive and active components?

A

Passive component provides methods that can be called but it has no thread of its own while active component have at least one thread running “in the component”.
Active component are marked with the stereotype «active» and passive «passive»

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

What is the role of component specifications?

A

They provide an implementation-independent contract between users and providers of components.

Users do not have to look at implementation to understand the components behaviour, providers can modify and improve their implementations as long as the specification is not affected.

17
Q

What is the difference between composition on the level of component description and on the level of component instances?

A

In the level of component description, component specifications or program code is composed while on the level of component instances, runtime entities like objects or processes are composed.

18
Q

Component composition related questions are

A
  1. What is composed?
    Composition can be done on the level of component specifications or on the level of component instances.
  2. What is the result of composition?

Highlight the different types of composition and relate it to program code and component instances - Hierarchical, heterogeneous and open composition.
3. How is the composition described?

The composition of code is described by scripts for configuration, building, or deployment tools or is simply done by hand; the composition of instances is mostly done by component constructors or additional program code, often called glue code.
4. When does the composition happen?
Composition on the description level can be done at all stages, from specification to runtime; Composition on the instance level happens at runtime.

19
Q

What do you understand by deployment?

A

Deployment means bundling the program code of the components and possibly the glue code into deployable units and making these units available on the target platforms.

20
Q

Name the different types of component models?

A
  1. MTC: Multi-threaded components
  2. PN: Process Networks
  3. RV: Rendezvous communication
  4. SR: Synchronous reactive communication
  5. DE: Discrete-events
  6. CT: Continuous-time
21
Q

What is component infrastructure for a component model CM?

A

It comprises all the conceptual and technical support for building, executing, and managing software systems from components following component model.

22
Q

Name aspects in which component models can differ?

Note: components following different component models cannot be composed.

A
  1. What are component interfaces and how are they described?
  2. What is the behaviour of components and how is it specified?
  3. What is the execution and communication semantics of components?
  4. What kind of data do they support?
  5. What composition mechanisms are provided?
  6. Which implementation technology is used?

For example, a multi-threaded object-oriented component cannot be smoothly composed with components assuming a clock-synchronous behaviour and communicating via shared variables.

23
Q

What are the commonalities and the differences between component declarations and classes?

A

Components are similar to classes in that they have instances, state, an identity, and a lifetime.

Whereas the instance of a class CL consists of one object that has to provide the functionality for all interfaces implemented by CL, the instance of a component CP might consist of several objects such that for every interface implemented by CP, there is at least one object providing the needed functionality.

24
Q

Why are component specifications important for separate development?

A

Separate development needs clear interfaces between the component and the program parts that are to be developed separately, as well as precise description of the component’s behaviour. This is what specification provides. It can be considered as a contract between the clients and providers of the component.

25
Q

A software system consists of two layers, namely?

A
  1. A platform, and
  2. the system of interest
26
Q

How is composition described?

A

The composition of code is usually described by scripts for configuration, building, etc or simply by hand. The composition of instances is done by component’s constructors or additional program code, often called glue code.

Glue code can perform the composition of instances locally in one process or remotely by using communication mechanisms.

27
Q

What type of composition does component frameworks support?

A

It supports instance composition with registration and lookup facilities. The type of composition could be any of the three types of composition.

28
Q

Deployment depends on many technical aspects, in particular

A

on implementation language, the configuration techniques, and the platform properties.

29
Q

Highlight the six code categories in an implementation of a component

A
  1. Library code: The should be made available on the platform to all components and need not be part of the component implementation bundle.
  2. Dedicated component code: it consists of code that is only used by the component, it should be part of the component implementation bundle.
  3. Code of sub components: Here decision has to be made whether the code bundles of sub components should be deployed separately or be part of the composed components bundle.
  4. Shared hidden code:
  5. Dedicated interfaces and data types:
  6. Shared interfaces and data types:
30
Q

The advantage of PN model over MTC component model?

A

The problem with data races and thread safety can be avoided.
Another advantage is that its clear focus on data flows makes it much closer to the models to which electrical and mechanical engineers are used.

31
Q

Disadvantage of PN model is that

A

the indirection caused by using messages and queues generally reduces efficiency.

32
Q

What is the disadvantage and advantage of following a component model?

A

following a component model restricts the flexibility of the software development.
On a good side, component model provides the basis for separate development, simplifies integration and composition and enables the use of development infrastructures specialised for the model.

33
Q

How is synchronization between component activities established in the PN model?

A

The synchronization is handled by the queues.