Projet

Général

Profil

MAY Terminology » Historique » Version 12

Anonyme, 13/10/2014 09:51

1 10 Anonyme
h1. Terminology
2 1 Anonyme
3
{{>toc}}
4
5 2 Anonyme
h2. MAY
6
7
MAY is a tool to build software components with SpeADL and Java.
8
9 1 Anonyme
h2. Software Component
10
11 6 Anonyme
A software component is at the same time the type of a component, an implementation of this type and an instance of the implementation that exposes the type.
12 1 Anonyme
13 2 Anonyme
h3. Component Class
14
15 1 Anonyme
A component class is at the same time a type and an implementation.
16 4 Anonyme
17
h3. Component Instance
18
19 5 Anonyme
A component instance is a runtime entity that exposes the type of its class and realise this type using the implementation of its class.
20 2 Anonyme
21
h2. Interface
22
23 1 Anonyme
In Java, interfaces are collections of methods.
24 7 Anonyme
An interface has a name and is located in a Java package.
25 1 Anonyme
26 7 Anonyme
h2. Namespace
27
28
A namespace plays the exact same role as a package in Java.
29
30 1 Anonyme
h2. SpeADL Component Definition
31 2 Anonyme
32
A component definition is a SpeADL definition of a component type and optionally of a component implementation in the form of a configuration.
33 12 Anonyme
It is located in a namespace.
34 2 Anonyme
35 1 Anonyme
h3. Component Type
36
37
A component type has a name and a collection of ports.
38 2 Anonyme
It represents a component from the exterior: this is all that can be externally accessed from a component instance.
39 1 Anonyme
40 2 Anonyme
h3. Component Port
41 1 Anonyme
42 2 Anonyme
A port in a component has a name and an interface.
43
If it is provided, it must answer call to the operations of the interface.
44
If it is required, it can be used from within the component to call operations of the interfaces without knowing who provides them.
45 1 Anonyme
46
h3. Configuration
47
48
A configuration is a composition of component parts.
49
A configuration acts as an implementation for a component.
50 11 Anonyme
A configuration must be valid and it is when all the required ports of its part are bound (bindings) to other ports with the correct interface.
51 1 Anonyme
52 2 Anonyme
h3. Component Part
53 1 Anonyme
54 2 Anonyme
A part is a member of a component and that is itself a component.
55 1 Anonyme
56 2 Anonyme
It has a name and component type.
57 1 Anonyme
Its required ports must be connected to a port providing the interface, and its provided ports are available from within the containing component.
58 2 Anonyme
59 1 Anonyme
h2. Component Java Implementation
60 2 Anonyme
61 1 Anonyme
A component implementation is a Java implementation of a component definition.
62 12 Anonyme
It is located in a package as a normal Java class.
63 2 Anonyme
It contains implementations for the provided ports, definitions of the Java implementations for the parts and optionally implementation of the initialisation of the component.
64 1 Anonyme
65 2 Anonyme
h2. Component Instance
66 1 Anonyme
67 2 Anonyme
A component instance is a runtime entity that exposes the type of its class and realise this type using the implementation of its class.
68
A component instance contains a component instance for each of its parts.
69
70 1 Anonyme
A component instance is created from the component implementation.
71
72
h2. Ecosystem
73
74
An ecosystem is a component with species.
75
76
h3. Ecosystem Definition
77
78 2 Anonyme
See [[SpeADL Terminology#Component Definition|Component Definition]].
79 1 Anonyme
On top of that, it contains also species.
80
81
h3. Ecosystem Java Implementation
82
83
See [[SpeADL Terminology#Component Java Implementation|Component Java Implementation]].
84 2 Anonyme
On top of that it contains definitions of the Java implementations for the species.
85 1 Anonyme
86
h2. Species
87
88
A species is a component that can only be defined inside an ecosystem.
89
90
h3. Species Definition
91
92 2 Anonyme
See [[SpeADL Terminology#Component Definition|Component Definition]].
93
On top of that, it can have parameters (separated by commas) and contain uses.
94
95
h3. Species Parameter
96
97
A species parameter has a name and a Java type.
98
99
h3. Use
100
101
A use is a part that can only be defined inside a species.
102
A use has a name but the only component type it can have must be a species declared in one of the parts of the ecosystem containing its species.
103
If the type of the use has parameters, then arguments for these parameters must be passed to it.
104
105 1 Anonyme
h3. Species Implementation
106
107 2 Anonyme
See [[SpeADL Terminology#Component Java Implementation|Component Java Implementation]].
108
Contrary to parts, a use implementation don't have to be defined as they are already defined in the implementation of the ecosystem containing the species of the use.
109
110 1 Anonyme
h3. Species Instance
111 2 Anonyme
112
A species can be instantiated only from within the ecosystem that defines it.