archimate 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/archimate.gemspec +2 -1
  3. data/lib/archimate/color.rb +2 -2
  4. data/lib/archimate/data_model/any_attribute.rb +4 -10
  5. data/lib/archimate/data_model/any_element.rb +9 -17
  6. data/lib/archimate/data_model/bounds.rb +6 -6
  7. data/lib/archimate/data_model/color.rb +6 -6
  8. data/lib/archimate/data_model/comparison.rb +101 -5
  9. data/lib/archimate/data_model/concern.rb +5 -13
  10. data/lib/archimate/data_model/connection.rb +39 -48
  11. data/lib/archimate/data_model/connector_type.rb +1 -0
  12. data/lib/archimate/data_model/diagram.rb +27 -42
  13. data/lib/archimate/data_model/diagram_type.rb +1 -0
  14. data/lib/archimate/data_model/element.rb +14 -35
  15. data/lib/archimate/data_model/elements.rb +681 -0
  16. data/lib/archimate/data_model/font.rb +8 -8
  17. data/lib/archimate/data_model/lang_string.rb +10 -36
  18. data/lib/archimate/data_model/layer.rb +4 -5
  19. data/lib/archimate/data_model/layers.rb +45 -49
  20. data/lib/archimate/data_model/location.rb +6 -6
  21. data/lib/archimate/data_model/metadata.rb +2 -6
  22. data/lib/archimate/data_model/model.rb +50 -62
  23. data/lib/archimate/data_model/modeling_note.rb +3 -8
  24. data/lib/archimate/data_model/organization.rb +18 -27
  25. data/lib/archimate/data_model/property.rb +9 -8
  26. data/lib/archimate/data_model/property_definition.rb +15 -21
  27. data/lib/archimate/data_model/referenceable.rb +14 -9
  28. data/lib/archimate/data_model/referenceable_list.rb +82 -0
  29. data/lib/archimate/data_model/relationship.rb +41 -152
  30. data/lib/archimate/data_model/relationship_references.rb +29 -0
  31. data/lib/archimate/data_model/relationships.rb +214 -0
  32. data/lib/archimate/data_model/schema_info.rb +6 -12
  33. data/lib/archimate/data_model/style.rb +14 -25
  34. data/lib/archimate/data_model/view_node.rb +38 -66
  35. data/lib/archimate/data_model/viewpoint.rb +23 -38
  36. data/lib/archimate/data_model/viewpoint_type.rb +347 -387
  37. data/lib/archimate/data_model.rb +7 -6
  38. data/lib/archimate/derived_relations.rb +106 -31
  39. data/lib/archimate/export/cypher.rb +0 -18
  40. data/lib/archimate/export/jsonl.rb +16 -45
  41. data/lib/archimate/export/n_quads.rb +1 -24
  42. data/lib/archimate/file_formats/archi_file_reader.rb +2 -1
  43. data/lib/archimate/file_formats/model_exchange_file_writer_21.rb +9 -1
  44. data/lib/archimate/file_formats/sax/archi/archi_handler_factory.rb +2 -2
  45. data/lib/archimate/file_formats/sax/archi/connection.rb +2 -1
  46. data/lib/archimate/file_formats/sax/archi/element.rb +7 -5
  47. data/lib/archimate/file_formats/sax/archi/relationship.rb +1 -1
  48. data/lib/archimate/file_formats/sax/model_exchange_file/connection.rb +2 -1
  49. data/lib/archimate/file_formats/sax/model_exchange_file/element.rb +1 -1
  50. data/lib/archimate/file_formats/sax/model_exchange_file/relationship.rb +1 -1
  51. data/lib/archimate/file_formats/sax/model_exchange_file/view_node.rb +0 -1
  52. data/lib/archimate/file_formats/serializer/archi/relationship.rb +1 -1
  53. data/lib/archimate/lint/duplicate_entities.rb +46 -42
  54. data/lib/archimate/svg/archimate.css +12 -2
  55. data/lib/archimate/svg/entity/base_entity.rb +6 -29
  56. data/lib/archimate/svg/entity/location.rb +1 -0
  57. data/lib/archimate/svg/entity_factory.rb +3 -3
  58. data/lib/archimate/svg/point.rb +3 -3
  59. data/lib/archimate/svg/svg_template.svg.erb +5 -5
  60. data/lib/archimate/version.rb +2 -1
  61. metadata +20 -6
  62. data/TODOs.org +0 -505
  63. data/lib/archimate/data_model/differentiable.rb +0 -142
  64. data/lib/archimate/data_model/element_type.rb +0 -89
  65. data/lib/archimate/data_model/relationship_type.rb +0 -45
@@ -7,22 +7,23 @@ module Archimate
7
7
  class ViewpointType
8
8
  include Ruby::Enum
9
9
 
10
- ENTITIES = DataModel::Layers.values.flat_map(&:elements)
11
-
12
- CORE_ELEMENTS = [DataModel::Layers::Business, DataModel::Layers::Application, DataModel::Layers::Technology]
13
- .flat_map(&:elements)
14
-
15
- DEFAULT_RELATIONS = %w[
16
- AccessRelationship
17
- AggregationRelationship
18
- AssignmentRelationship
19
- AssociationRelationship
20
- CompositionRelationship
21
- FlowRelationship
22
- RealisationRelationship
23
- SpecialisationRelationship
24
- TriggeringRelationship
25
- UsedByRelationship
10
+ ENTITIES = Elements.classes
11
+
12
+ CORE_ELEMENTS = Elements.classes.select do |el|
13
+ [Layers::Business, Layers::Application, Layers::Technology].include?(el::LAYER)
14
+ end
15
+
16
+ DEFAULT_RELATIONS = [
17
+ Relationships::Access,
18
+ Relationships::Aggregation,
19
+ Relationships::Assignment,
20
+ Relationships::Association,
21
+ Relationships::Composition,
22
+ Relationships::Flow,
23
+ Relationships::Realization,
24
+ Relationships::Specialization,
25
+ Relationships::Triggering,
26
+ Relationships::Serving
26
27
  ].freeze
27
28
 
28
29
  ViewpointTypeVal = Struct.new(:name, :entities, :relations) do
@@ -32,390 +33,349 @@ module Archimate
32
33
  end
33
34
 
34
35
  # Basic Viewpoints
35
- define :Introductory, ViewpointTypeVal.new("Introductory",
36
- CORE_ELEMENTS,
37
- DataModel::RelationshipType.values)
36
+ define :Introductory, ViewpointTypeVal.new(
37
+ "Introductory",
38
+ CORE_ELEMENTS,
39
+ Relationships.classes
40
+ )
38
41
 
39
42
  # Category:Composition Viewpoints that defines internal compositions and aggregations of elements.
40
- define :Organization, ViewpointTypeVal.new("Organization",
41
- DataModel::ConnectorType.values + %w[
42
- BusinessActor
43
- BusinessCollaboration
44
- BusinessInterface
45
- BusinessRole
46
- Location
47
- ],
48
- DEFAULT_RELATIONS - %w[AccessRelationship RealisationRelationship])
49
-
50
- define :Application_platform, ViewpointTypeVal.new("Application Platform",
51
- CORE_ELEMENTS,
52
- DataModel::RelationshipType.values)
53
-
54
- define :Information_structure, ViewpointTypeVal.new("Information Structure",
55
- DataModel::ConnectorType.values + %w[
56
- Artifact
57
- BusinessObject
58
- DataObject
59
- Meaning
60
- Representation
61
- ],
62
- DEFAULT_RELATIONS - %w[AssignmentRelationship UsedByRelationship])
63
-
64
- define :Technology, ViewpointTypeVal.new("Technology",
65
- CORE_ELEMENTS,
66
- DataModel::RelationshipType.values)
67
-
68
- define :Layered, ViewpointTypeVal.new("Layered",
69
- ENTITIES + DataModel::ConnectorType.values,
70
- DataModel::RelationshipType.values)
71
-
72
- define :Physical, ViewpointTypeVal.new("Physical",
73
- CORE_ELEMENTS,
74
- DataModel::RelationshipType.values)
75
-
76
- # Category:Support Viewpoints where you are looking at elements that are supported by other elements. Typically from one layer and upwards to an above layer.
77
- define :Product, ViewpointTypeVal.new("Product",
78
- DataModel::ConnectorType.values + %w[
79
- ApplicationComponent
80
- ApplicationInterface
81
- ApplicationService
82
- BusinessActor
83
- BusinessEvent
84
- BusinessFunction
85
- BusinessInteraction
86
- BusinessInterface
87
- BusinessProcess
88
- BusinessRole
89
- BusinessService
90
- Contract
91
- Product
92
- Value
93
- ],
94
- DEFAULT_RELATIONS)
95
-
96
- define :Application_usage, ViewpointTypeVal.new("Application Usage",
97
- DataModel::ConnectorType.values + %w[
98
- ApplicationCollaboration
99
- ApplicationComponent
100
- ApplicationInterface
101
- ApplicationService
102
- BusinessEvent
103
- BusinessFunction
104
- BusinessInteraction
105
- BusinessObject
106
- BusinessProcess
107
- BusinessRole
108
- DataObject
109
- ],
110
- DEFAULT_RELATIONS)
111
-
112
- define :Technology_usage, ViewpointTypeVal.new("Technology Usage",
113
- CORE_ELEMENTS,
114
- DataModel::RelationshipType.values)
115
-
116
- # Category:Cooperation Towards peer elements which cooperate with each other. Typically across aspects.
117
- define :Business_process_cooperation, ViewpointTypeVal.new("Business Process Cooperation",
118
- DataModel::ConnectorType.values + %w[
119
- ApplicationService
120
- BusinessActor
121
- BusinessCollaboration
122
- BusinessEvent
123
- BusinessFunction
124
- BusinessInteraction
125
- BusinessObject
126
- BusinessProcess
127
- BusinessRole
128
- BusinessService
129
- Location
130
- Representation
131
- ],
132
- DEFAULT_RELATIONS)
133
-
134
- define :Application_cooperation, ViewpointTypeVal.new("Application Cooperation",
135
- DataModel::ConnectorType.values + %w[
136
- ApplicationCollaboration
137
- ApplicationComponent
138
- ApplicationFunction
139
- ApplicationInteraction
140
- ApplicationInterface
141
- ApplicationService
142
- DataObject
143
- Location
144
- ],
145
- DEFAULT_RELATIONS)
146
-
147
- # Category:Realization Viewpoints where you are looking at elements that realize other elements. Typically from one layer and downwards to a below layer.
148
- define :Service_realization, ViewpointTypeVal.new("Service Realization",
149
- DataModel::ConnectorType.values + %w[
150
- ApplicationCollaboration
151
- ApplicationComponent
152
- ApplicationService
153
- BusinessActor
154
- BusinessCollaboration
155
- BusinessEvent
156
- BusinessFunction
157
- BusinessInteraction
158
- BusinessObject
159
- BusinessProcess
160
- BusinessRole
161
- BusinessService
162
- DataObject
163
- ],
164
- DEFAULT_RELATIONS)
165
-
166
- define :Implementation_and_deployment, ViewpointTypeVal.new("Implementation and Deployment",
167
- DataModel::ConnectorType.values + %w[
168
- ApplicationCollaboration
169
- ApplicationComponent
170
- Artifact
171
- CommunicationPath
172
- DataObject
173
- Device
174
- InfrastructureService
175
- Network
176
- Node
177
- SystemSoftware
178
- ],
179
- DEFAULT_RELATIONS)
180
-
181
- define :Goal_realization, ViewpointTypeVal.new("Goal Realization",
182
- %w[
183
- Constraint
184
- Goal
185
- Principle
186
- Requirement
187
- ],
188
- %w[
189
- AggregationRelationship
190
- AssociationRelationship
191
- CompositionRelationship
192
- InfluenceRelationship
193
- RealisationRelationship
194
- SpecialisationRelationship
195
- ])
196
-
197
- define :Goal_contribution, ViewpointTypeVal.new("Goal Contribution",
198
- %w[
199
- Constraint
200
- Goal
201
- Principle
202
- Requirement
203
- ],
204
- %w[
205
- AggregationRelationship
206
- AssociationRelationship
207
- CompositionRelationship
208
- InfluenceRelationship
209
- RealisationRelationship
210
- SpecialisationRelationship
211
- ])
212
-
213
- define :Principles, ViewpointTypeVal.new("Principles",
214
- %w[
215
- Goal
216
- Principle
217
- ],
218
- %w[
219
- AggregationRelationship
220
- AssociationRelationship
221
- CompositionRelationship
222
- InfluenceRelationship
223
- RealisationRelationship
224
- SpecialisationRelationship
225
- ])
226
-
227
- define :Requirements_realization, ViewpointTypeVal.new("Requirements Realization",
228
- CORE_ELEMENTS + DataModel::ConnectorType.values + %w[
229
- Constraint
230
- Goal
231
- Requirement
232
- ],
233
- DEFAULT_RELATIONS)
234
-
235
- define :Motivation, ViewpointTypeVal.new("Motivation",
236
- %w[
237
- Assessment
238
- Constraint
239
- Driver
240
- Goal
241
- Principle
242
- Requirement
243
- Stakeholder
244
- ],
245
- %w[
246
- AggregationRelationship
247
- AssociationRelationship
248
- CompositionRelationship
249
- FlowRelationship
250
- InfluenceRelationship
251
- RealisationRelationship
252
- SpecialisationRelationship
253
- ])
43
+ define :Organization, ViewpointTypeVal.new(
44
+ "Organization",
45
+ ConnectorType.values + [
46
+ Elements::BusinessActor, Elements::BusinessCollaboration,
47
+ Elements::BusinessInterface, Elements::BusinessRole,
48
+ Elements::Location
49
+ ],
50
+ DEFAULT_RELATIONS - [Relationships::Access, Relationships::Realization]
51
+ )
52
+
53
+ define :Application_platform, ViewpointTypeVal.new(
54
+ "Application Platform",
55
+ CORE_ELEMENTS,
56
+ Relationships.classes
57
+ )
58
+
59
+ define :Information_structure, ViewpointTypeVal.new(
60
+ "Information Structure",
61
+ ConnectorType.values + [
62
+ Elements::Artifact, Elements::BusinessObject, Elements::DataObject,
63
+ Elements::Meaning, Elements::Representation
64
+ ],
65
+ DEFAULT_RELATIONS - [Relationships::Assignment, Relationships::Serving]
66
+ )
67
+
68
+ define :Technology, ViewpointTypeVal.new(
69
+ "Technology",
70
+ CORE_ELEMENTS,
71
+ Relationships.classes
72
+ )
73
+
74
+ define :Layered, ViewpointTypeVal.new(
75
+ "Layered",
76
+ ENTITIES + ConnectorType.values,
77
+ Relationships.classes
78
+ )
79
+
80
+ define :Physical, ViewpointTypeVal.new(
81
+ "Physical",
82
+ CORE_ELEMENTS,
83
+ Relationships.classes
84
+ )
85
+
86
+ # Category:Support Viewpoints where you are looking at elements that are
87
+ # supported by other elements. Typically from one layer and upwards to an
88
+ # above layer.
89
+ define :Product, ViewpointTypeVal.new(
90
+ "Product",
91
+ ConnectorType.values + [
92
+ Elements::ApplicationComponent, Elements::ApplicationInterface,
93
+ Elements::ApplicationService, Elements::BusinessActor,
94
+ Elements::BusinessEvent, Elements::BusinessFunction,
95
+ Elements::BusinessInteraction, Elements::BusinessInterface,
96
+ Elements::BusinessProcess, Elements::BusinessRole,
97
+ Elements::BusinessService, Elements::Contract,
98
+ Elements::Product, Elements::Value
99
+ ],
100
+ DEFAULT_RELATIONS
101
+ )
102
+
103
+ define :Application_usage, ViewpointTypeVal.new(
104
+ "Application Usage",
105
+ ConnectorType.values + [
106
+ Elements::ApplicationCollaboration, Elements::ApplicationComponent,
107
+ Elements::ApplicationInterface, Elements::ApplicationService,
108
+ Elements::BusinessEvent, Elements::BusinessFunction,
109
+ Elements::BusinessInteraction, Elements::BusinessObject,
110
+ Elements::BusinessProcess, Elements::BusinessRole,
111
+ Elements::DataObject
112
+ ],
113
+ DEFAULT_RELATIONS
114
+ )
115
+
116
+ define :Technology_usage, ViewpointTypeVal.new(
117
+ "Technology Usage",
118
+ CORE_ELEMENTS,
119
+ Relationships.classes
120
+ )
121
+
122
+ # Category:Cooperation Towards peer elements which cooperate with each
123
+ # other. Typically across aspects.
124
+ define :Business_process_cooperation, ViewpointTypeVal.new(
125
+ "Business Process Cooperation",
126
+ ConnectorType.values + [
127
+ Elements::ApplicationService, Elements::BusinessActor,
128
+ Elements::BusinessCollaboration, Elements::BusinessEvent,
129
+ Elements::BusinessFunction, Elements::BusinessInteraction,
130
+ Elements::BusinessObject, Elements::BusinessProcess,
131
+ Elements::BusinessRole, Elements::BusinessService,
132
+ Elements::Location, Elements::Representation
133
+ ],
134
+ DEFAULT_RELATIONS
135
+ )
136
+
137
+ define :Application_cooperation, ViewpointTypeVal.new(
138
+ "Application Cooperation",
139
+ ConnectorType.values + [
140
+ Elements::ApplicationCollaboration, Elements::ApplicationComponent,
141
+ Elements::ApplicationFunction, Elements::ApplicationInteraction,
142
+ Elements::ApplicationInterface, Elements::ApplicationService,
143
+ Elements::DataObject, Elements::Location
144
+ ],
145
+ DEFAULT_RELATIONS
146
+ )
147
+
148
+ # Category:Realization Viewpoints where you are looking at elements that
149
+ # realize other elements. Typically from one layer and downwards to a
150
+ # below layer.
151
+ define :Service_realization, ViewpointTypeVal.new(
152
+ "Service Realization",
153
+ ConnectorType.values + [
154
+ Elements::ApplicationCollaboration, Elements::ApplicationComponent,
155
+ Elements::ApplicationService, Elements::BusinessActor,
156
+ Elements::BusinessCollaboration, Elements::BusinessEvent,
157
+ Elements::BusinessFunction, Elements::BusinessInteraction,
158
+ Elements::BusinessObject, Elements::BusinessProcess,
159
+ Elements::BusinessRole, Elements::BusinessService,
160
+ Elements::DataObject
161
+ ],
162
+ DEFAULT_RELATIONS
163
+ )
164
+
165
+ define :Implementation_and_deployment, ViewpointTypeVal.new(
166
+ "Implementation and Deployment",
167
+ ConnectorType.values + [
168
+ Elements::ApplicationCollaboration, Elements::ApplicationComponent,
169
+ Elements::Artifact, Elements::CommunicationPath,
170
+ Elements::DataObject, Elements::Device,
171
+ Elements::InfrastructureService, Elements::Network, Elements::Node,
172
+ Elements::SystemSoftware
173
+ ],
174
+ DEFAULT_RELATIONS
175
+ )
176
+
177
+ define :Goal_realization, ViewpointTypeVal.new(
178
+ "Goal Realization",
179
+ [
180
+ Elements::Constraint, Elements::Goal, Elements::Principle,
181
+ Elements::Requirement
182
+ ],
183
+ [
184
+ Relationships::Aggregation, Relationships::Association,
185
+ Relationships::Composition, Relationships::Influence,
186
+ Relationships::Realization, Relationships::Specialization
187
+ ]
188
+ )
189
+
190
+ define :Goal_contribution, ViewpointTypeVal.new(
191
+ "Goal Contribution",
192
+ [
193
+ Elements::Constraint, Elements::Goal, Elements::Principle,
194
+ Elements::Requirement
195
+ ],
196
+ [
197
+ Relationships::Aggregation, Relationships::Association,
198
+ Relationships::Composition, Relationships::Influence,
199
+ Relationships::Realization, Relationships::Specialization
200
+ ]
201
+ )
202
+
203
+ define :Principles, ViewpointTypeVal.new(
204
+ "Principles",
205
+ [Elements::Goal, Elements::Principle],
206
+ [
207
+ Relationships::Aggregation, Relationships::Association,
208
+ Relationships::Composition, Relationships::Influence,
209
+ Relationships::Realization, Relationships::Specialization
210
+ ]
211
+ )
212
+
213
+ define :Requirements_realization, ViewpointTypeVal.new(
214
+ "Requirements Realization",
215
+ CORE_ELEMENTS + ConnectorType.values + [
216
+ Elements::Constraint, Elements::Goal, Elements::Requirement
217
+ ],
218
+ DEFAULT_RELATIONS
219
+ )
220
+
221
+ define :Motivation, ViewpointTypeVal.new(
222
+ "Motivation",
223
+ [
224
+ Elements::Assessment, Elements::Constraint, Elements::Driver,
225
+ Elements::Goal, Elements::Principle, Elements::Requirement,
226
+ Elements::Stakeholder
227
+ ],
228
+ [
229
+ Relationships::Aggregation, Relationships::Association,
230
+ Relationships::Composition, Relationships::Flow,
231
+ Relationships::Influence, Relationships::Realization,
232
+ Relationships::Specialization
233
+ ]
234
+ )
254
235
 
255
236
  # Strategy Viewpoints
256
- define :Strategy, ViewpointTypeVal.new("Strategy",
257
- CORE_ELEMENTS,
258
- DataModel::RelationshipType.values)
237
+ define :Strategy, ViewpointTypeVal.new(
238
+ "Strategy", CORE_ELEMENTS, Relationships.classes
239
+ )
259
240
 
260
- define :Capability_map, ViewpointTypeVal.new("Capability Map",
261
- CORE_ELEMENTS,
262
- DataModel::RelationshipType.values)
241
+ define :Capability_map, ViewpointTypeVal.new(
242
+ "Capability Map", CORE_ELEMENTS, Relationships.classes
243
+ )
263
244
 
264
- define :Outcome_realization, ViewpointTypeVal.new("Outcome Realization",
265
- CORE_ELEMENTS,
266
- DataModel::RelationshipType.values)
245
+ define :Outcome_realization, ViewpointTypeVal.new(
246
+ "Outcome Realization", CORE_ELEMENTS, Relationships.classes
247
+ )
267
248
 
268
- define :Resource_map, ViewpointTypeVal.new("Resource Map",
269
- CORE_ELEMENTS,
270
- DataModel::RelationshipType.values)
249
+ define :Resource_map, ViewpointTypeVal.new(
250
+ "Resource Map", CORE_ELEMENTS, Relationships.classes
251
+ )
271
252
 
272
253
  # Implementation and Migration Viewpoints
273
- define :Project, ViewpointTypeVal.new("Project",
274
- DataModel::ConnectorType.values + %w[
275
- BusinessActor
276
- BusinessRole
277
- Deliverable
278
- Goal
279
- WorkPackage
280
- ],
281
- DEFAULT_RELATIONS - %w[AccessRelationship])
282
-
283
- define :Migration, ViewpointTypeVal.new("Migration",
284
- DataModel::ConnectorType.values + %w[Gap Plateau],
285
- %w[
286
- AndJunction
287
- AssociationRelationship
288
- CompositionRelationship
289
- FlowRelationship
290
- Junction
291
- OrJunction
292
- TriggeringRelationship
293
- ])
294
-
295
- define :Implementation_and_migration, ViewpointTypeVal.new("Implementation and Migration",
296
- CORE_ELEMENTS + DataModel::ConnectorType.values + %w[
297
- Location
298
- Requirement
299
- Constraint
300
- Goal
301
- BusinessRole
302
- WorkPackage
303
- Deliverable
304
- BusinessActor
305
- Plateau
306
- Gap
307
- ],
308
- DEFAULT_RELATIONS)
254
+ define :Project, ViewpointTypeVal.new(
255
+ "Project",
256
+ ConnectorType.values + [
257
+ Elements::BusinessActor, Elements::BusinessRole,
258
+ Elements::Deliverable, Elements::Goal, Elements::WorkPackage
259
+ ],
260
+ DEFAULT_RELATIONS - [Relationships::Access]
261
+ )
262
+
263
+ define :Migration, ViewpointTypeVal.new(
264
+ "Migration",
265
+ ConnectorType.values + [Elements::Gap, Elements::Plateau],
266
+ [
267
+ Relationships::AndJunction, Relationships::Association,
268
+ Relationships::Composition, Relationships::Flow,
269
+ Relationships::Junction, Relationships::OrJunction,
270
+ Relationships::Triggering
271
+ ]
272
+ )
273
+
274
+ define :Implementation_and_migration, ViewpointTypeVal.new(
275
+ "Implementation and Migration",
276
+ CORE_ELEMENTS + ConnectorType.values + [
277
+ Elements::Location, Elements::Requirement, Elements::Constraint,
278
+ Elements::Goal, Elements::BusinessRole, Elements::WorkPackage,
279
+ Elements::Deliverable, Elements::BusinessActor, Elements::Plateau,
280
+ Elements::Gap
281
+ ],
282
+ DEFAULT_RELATIONS
283
+ )
309
284
 
310
285
  # Other Viewpoints
311
- define :Stakeholder, ViewpointTypeVal.new("Stakeholder",
312
- %w[
313
- Assessment
314
- Driver
315
- Goal
316
- Stakeholder
317
- ],
318
- %w[
319
- AggregationRelationship
320
- AssociationRelationship
321
- CompositionRelationship
322
- InfluenceRelationship
323
- SpecialisationRelationship
324
- ])
286
+ define :Stakeholder, ViewpointTypeVal.new(
287
+ "Stakeholder",
288
+ [
289
+ Elements::Assessment, Elements::Driver, Elements::Goal,
290
+ Elements::Stakeholder
291
+ ],
292
+ [
293
+ Relationships::Aggregation, Relationships::Association,
294
+ Relationships::Composition, Relationships::Influence,
295
+ Relationships::Specialization
296
+ ]
297
+ )
325
298
 
326
299
  # Other older viewpoints
327
- define :Actor_cooperation, ViewpointTypeVal.new("Actor Co-operation",
328
- DataModel::ConnectorType.values + %w[
329
- ApplicationComponent
330
- ApplicationInterface
331
- ApplicationService
332
- BusinessActor
333
- BusinessCollaboration
334
- BusinessInterface
335
- BusinessRole
336
- BusinessService
337
- ],
338
- DEFAULT_RELATIONS - %w[AccessRelationship])
339
-
340
- define :Business_function, ViewpointTypeVal.new("Business Function",
341
- DataModel::ConnectorType.values + %w[
342
- BusinessActor
343
- BusinessFunction
344
- BusinessRole
345
- ],
346
- DEFAULT_RELATIONS - %w[AccessRelationship RealisationRelationship])
347
-
348
- define :Business_process, ViewpointTypeVal.new("Business Process",
349
- DataModel::ConnectorType.values + %w[
350
- ApplicationService
351
- BusinessActor
352
- BusinessCollaboration
353
- BusinessEvent
354
- BusinessFunction
355
- BusinessInteraction
356
- BusinessObject
357
- BusinessProcess
358
- BusinessRole
359
- BusinessService
360
- Location
361
- Representation
362
- ],
363
- DEFAULT_RELATIONS)
364
-
365
- define :Application_behavior, ViewpointTypeVal.new("Application Behavior",
366
- DataModel::ConnectorType.values + %w[
367
- ApplicationCollaboration
368
- ApplicationComponent
369
- ApplicationFunction
370
- ApplicationInteraction
371
- ApplicationInterface
372
- ApplicationService
373
- DataObject
374
- ],
375
- DEFAULT_RELATIONS)
376
-
377
- define :Application_structure, ViewpointTypeVal.new("Application Structure",
378
- DataModel::ConnectorType.values + %w[
379
- ApplicationCollaboration
380
- ApplicationComponent
381
- ApplicationInterface
382
- DataObject
383
- ],
384
- DEFAULT_RELATIONS - %w[RealisationRelationship])
385
-
386
- define :Infrastructure, ViewpointTypeVal.new("Infrastructure",
387
- DataModel::ConnectorType.values + %w[
388
- Artifact
389
- CommunicationPath
390
- Device
391
- InfrastructureFunction
392
- InfrastructureInterface
393
- InfrastructureService
394
- Location
395
- Network
396
- Node
397
- SystemSoftware
398
- ],
399
- DEFAULT_RELATIONS)
400
-
401
- define :Infrastructure_usage, ViewpointTypeVal.new("Infrastructure Usage",
402
- DataModel::ConnectorType.values + %w[
403
- ApplicationComponent
404
- ApplicationFunction
405
- CommunicationPath
406
- Device
407
- InfrastructureFunction
408
- InfrastructureInterface
409
- InfrastructureService
410
- Network
411
- Node
412
- SystemSoftware
413
- ],
414
- DEFAULT_RELATIONS)
415
-
416
- define :Landscape_map, ViewpointTypeVal.new("Landscape Map",
417
- ENTITIES + DataModel::ConnectorType.values,
418
- DataModel::RelationshipType.values)
300
+ define :Actor_cooperation, ViewpointTypeVal.new(
301
+ "Actor Co-operation",
302
+ ConnectorType.values + [
303
+ Elements::ApplicationComponent, Elements::ApplicationInterface,
304
+ Elements::ApplicationService, Elements::BusinessActor,
305
+ Elements::BusinessCollaboration, Elements::BusinessInterface,
306
+ Elements::BusinessRole, Elements::BusinessService
307
+ ],
308
+ DEFAULT_RELATIONS - [Relationships::Access]
309
+ )
310
+
311
+ define :Business_function, ViewpointTypeVal.new(
312
+ "Business Function",
313
+ ConnectorType.values + [
314
+ Elements::BusinessActor, Elements::BusinessFunction,
315
+ Elements::BusinessRole
316
+ ],
317
+ DEFAULT_RELATIONS - [Relationships::Access, Relationships::Realization]
318
+ )
319
+
320
+ define :Business_process, ViewpointTypeVal.new(
321
+ "Business Process",
322
+ ConnectorType.values + [
323
+ Elements::ApplicationService, Elements::BusinessActor,
324
+ Elements::BusinessCollaboration, Elements::BusinessEvent,
325
+ Elements::BusinessFunction, Elements::BusinessInteraction,
326
+ Elements::BusinessObject, Elements::BusinessProcess,
327
+ Elements::BusinessRole, Elements::BusinessService,
328
+ Elements::Location, Elements::Representation
329
+ ],
330
+ DEFAULT_RELATIONS
331
+ )
332
+
333
+ define :Application_behavior, ViewpointTypeVal.new(
334
+ "Application Behavior",
335
+ ConnectorType.values + [
336
+ Elements::ApplicationCollaboration, Elements::ApplicationComponent,
337
+ Elements::ApplicationFunction, Elements::ApplicationInteraction,
338
+ Elements::ApplicationInterface, Elements::ApplicationService,
339
+ Elements::DataObject
340
+ ],
341
+ DEFAULT_RELATIONS
342
+ )
343
+
344
+ define :Application_structure, ViewpointTypeVal.new(
345
+ "Application Structure",
346
+ ConnectorType.values + [
347
+ Elements::ApplicationCollaboration, Elements::ApplicationComponent,
348
+ Elements::ApplicationInterface, Elements::DataObject
349
+ ],
350
+ DEFAULT_RELATIONS - [Relationships::Realization]
351
+ )
352
+
353
+ define :Infrastructure, ViewpointTypeVal.new(
354
+ "Infrastructure",
355
+ ConnectorType.values + [
356
+ Elements::Artifact, Elements::CommunicationPath, Elements::Device,
357
+ Elements::InfrastructureFunction, Elements::InfrastructureInterface,
358
+ Elements::InfrastructureService, Elements::Location,
359
+ Elements::Network, Elements::Node, Elements::SystemSoftware
360
+ ],
361
+ DEFAULT_RELATIONS
362
+ )
363
+
364
+ define :Infrastructure_usage, ViewpointTypeVal.new(
365
+ "Infrastructure Usage",
366
+ ConnectorType.values + [
367
+ Elements::ApplicationComponent, Elements::ApplicationFunction,
368
+ Elements::CommunicationPath, Elements::Device,
369
+ Elements::InfrastructureFunction, Elements::InfrastructureInterface,
370
+ Elements::InfrastructureService, Elements::Network, Elements::Node,
371
+ Elements::SystemSoftware
372
+ ],
373
+ DEFAULT_RELATIONS
374
+ )
375
+
376
+ define :Landscape_map, ViewpointTypeVal.new(
377
+ "Landscape Map", ENTITIES + ConnectorType.values, Relationships.classes
378
+ )
419
379
 
420
380
  def self.[](idx)
421
381
  values[idx]