archimate 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
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]