What is the role of component specification?
They provide an implementation-independent contract between the users and providers of components.
What do you understand by component models?
Component models determine the common computation, communication, and composition principles and rules underlying a class of components.
What do you understand by platform?
The platform provides the basic functionality on which a software system is built. A platform is a software/hardware system.
Highlight the reasons for making a distinction between a software system and it’s platform
What do you understand by environment of a software system?
It refers to the outside world with which it interacts.
What are the different stages of software system?
Name the stages for software component
What kinds of composition are explained in the text?
Describe their differences
The kinds of composition are:
1. Hierarchical composition,
2. Heterogeneous composition, and
3. Open composition
Description of their differences:
What is interface declaration?
An interface declaration defines a type and a list of method signatures. Interfaces are implemented by components.
What is component declaration?
Component declaration defines which interfaces the component implements and provides the signatures of the component constructors.
What is the difference between the instances of class and component instance?
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.
What is state space of a component?
State space of a component consists of all the possible values that the model variables can hold.
The three kinds of types in the context of component based development are?
Data types describes values that can be passed as parameters between components.
Distinguish between data types, interface types and component types on specification level of components
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.
What is the difference between passive and active components?
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»
What is the role of component specifications?
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.
What is the difference between composition on the level of component description and on the level of component instances?
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.
Component composition related questions are
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.
What do you understand by deployment?
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.
Name the different types of component models?
What is component infrastructure for a component model CM?
It comprises all the conceptual and technical support for building, executing, and managing software systems from components following component model.
Name aspects in which component models can differ?
Note: components following different component models cannot be composed.
For example, a multi-threaded object-oriented component cannot be smoothly composed with components assuming a clock-synchronous behaviour and communicating via shared variables.
What are the commonalities and the differences between component declarations and classes?
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.
Why are component specifications important for separate development?
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.