Skip to content

Commit e1c1be6

Browse files
committed
[doc] Add shape for display inherited PortUsages as border nodes
Signed-off-by: Axel RICHARD <axel.richard@obeo.fr>
1 parent 852564c commit e1c1be6

4 files changed

Lines changed: 84 additions & 0 deletions

File tree

CHANGELOG.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
=== Shapes
66

7+
- https://github.com/eclipse-syson/syson/issues/1581[#1581] [diagrams] Display inherited ports as border nodes in diagrams.
8+
79
=== Breaking changes
810

911
=== Dependency update
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
= Display inherited ports as border nodes in diagrams
2+
3+
== Problem
4+
5+
With the current version 2025.10.0 of SysON, inherited _PortUsages_ are displayed in the "ports" compartment in standard diagrams.
6+
7+
== Solution
8+
9+
The inherited _PortUsages_ are displayed as graphical border nodes in standard diagrams.
10+
11+
The existing diagram option "Show inherited members" should be used to control the visibility of inherited _PortUsages_ displayed as graphical border nodes (as they already do for the inherited _PortUsages_ displayed in the "ports" compartment).
12+
13+
The existing diagram option "Show inherited members from standard libraries" should be used to control the visibility of inherited _PortUsages_ from standard libraries displayed as graphical border nodes (as they already do for the inherited _PortUsages_ from standard libraries displayed in the "ports" compartment).
14+
15+
When an inherited _PortUsage_ is specialized, it should disappear from the graphical border nodes (as it is already the case for the "ports" compartment).
16+
Instead, the specialized _PortUsage_ should be displayed as a graphical border node (as it is already the case for the "ports" compartment).
17+
18+
When a _PortUsage_ is inherited from multiple super types, it should be displayed only once as a graphical border node (as it is already the case for the "ports" compartment).
19+
20+
When a connection is made to an inherited _PortUsage_ displayed as a graphical border node, then a _specialization_ (a _Redefinition_) of the _PortUsage_ should be created in its owner _Element_.
21+
22+
For example, for the following textual SysMLv2:
23+
24+
[source,sysml]
25+
----
26+
package VehicleModel {
27+
port def FuelPort;
28+
part def Vehicle {
29+
port fuelInPort : FuelPort;
30+
}
31+
part v1 : Vehicle {
32+
}
33+
part part2 {
34+
port port1;
35+
}
36+
}
37+
----
38+
39+
The resulting diagram should look like this:
40+
41+
image:images/inherited_port_as_border_node.png[Port as border node]
42+
43+
The inherited `fuelInPort` is displayed as a graphical border node on `v1`.
44+
45+
Then when a connection is made to the `fuelInPort` of `v1`, a _Redefinition_ of the `fuelInPort` should be created in `v1`.
46+
47+
[source,sysml]
48+
----
49+
package VehicleModel {
50+
port def FuelPort;
51+
part def Vehicle {
52+
port fuelInPort : FuelPort;
53+
}
54+
part v1 : Vehicle {
55+
port :>> fuelInPort {
56+
}
57+
}
58+
part part2 {
59+
port port1;
60+
bind port1 = v1.fuelInPort;
61+
}
62+
63+
}
64+
----
65+
66+
The resulting diagram should look like this:
67+
68+
image:images/inherited_port_as_border_node_after_connection.png[Port as border node after connection]
69+
70+
The `fuelInPort` is now specialized (redefined) in `v1` and displayed as a graphical border node on `v1`.
71+
72+
== Cutting backs
73+
74+
No cutting backs.
75+
76+
== Rabbit holes
77+
78+
No rabbit holes found.
79+
80+
== No-gos
81+
82+
N/A
77 KB
Loading
90.7 KB
Loading

0 commit comments

Comments
 (0)