Skip to content

Commit 68bbb75

Browse files
authored
Merge pull request #59 from jeanmarc-contrib/master
Add support for ArchiMate elements in Sequence Diagrams
2 parents ee1f559 + 458affe commit 68bbb75

File tree

7 files changed

+505
-2
lines changed

7 files changed

+505
-2
lines changed

CHANGES.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
## 3.2.1 (not yet released)
2+
3+
### What's changed
4+
* Added support for ArchiMate shapes in sequence diagrams in [#59](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/59)
5+
* Special shapes can be used for some elements in [#58](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/58)
6+
* Bugfix: use `%true()` and `%false()` instead of `true` and `false` (included in #58)
7+
8+
## Release v1.2.0 ➡️ v3.2.0
9+
### tag [v1.2.0](https://github.com/plantuml-stdlib/Archimate-PlantUML/tree/v1.2.0) (2025-10-01)
10+
### tag [v3.2.0](https://github.com/plantuml-stdlib/Archimate-PlantUML/tree/v3.2.0) (2025-10-01)
11+
12+
[Full Changelog](https://github.com/plantuml-stdlib/Archimate-PlantUML/compare/v1.0.0...v3.2.0)
13+
14+
> [!IMPORTANT]
15+
> This release has been tagged with both `v1.2.0` (the next minor version in line for Archimate-PlantUML) and `v3.2.0` (aligned to the current version of Archimate).
16+
>
17+
> Moving forward, the versioning of Archimate-PlantUML will follow that of Archimate.
18+
>
19+
> Defining a version as MAJOR.MINOR.PATCH, the MAJOR.MINOR will follow Archimate versions, with PATCH being incremented for feature changes and bugfixes.
20+
21+
### What's changed
22+
23+
* chore:minor typo by [@somejeff](https://github.com/somejeff) in [#44](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/44)
24+
* Upgrade macros to new specs and add theme support by [@ebbypeter](https://github.com/ebbypeter) in [#45](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/45)
25+
* Fix: $BUSINESS_FILLCOLOR missing made nesting Business_Service incorrect by [@jmanteau](https://github.com/jmanteau) in [#48](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/48)
26+
* Fix spelling of implementation by [@joelparkerhenderson](https://github.com/joelparkerhenderson) in [#49](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/49)
27+
* Update to ArchiMate 3.2 specifications and reorganize folders to assist plantuml build by [@jeanmarc](https://github.com/jeanmarc) in [#54](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/54)
28+
29+
### New Contributors
30+
* [@somejeff](https://github.com/somejeff) made their first contribution in [#44](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/44)
31+
* [@jmanteau](https://github.com/jmanteau) made their first contribution in [#48](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/48)
32+
* [@joelparkerhenderson](https://github.com/joelparkerhenderson) made their first contribution in [#49](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/49)
33+
* [@jeanmarc](https://github.com/jeanmarc) made their first contribution in [#54](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/54)
34+
35+
36+
## Release v1.1.0
37+
### tag [v1.1.0](https://github.com/plantuml-stdlib/Archimate-PlantUML/tree/v1.1.0) (2021-09-07)
38+
39+
[Full Changelog](https://github.com/plantuml-stdlib/Archimate-PlantUML/compare/v1.0.0...v1.1.0)
40+
41+
#### Implemented enhancements:
42+
* Non standart Assignment relation looking [#33](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/33)
43+
* Change arrow tail for Assignment from ◯ to ⬤. [#35](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/35) ([@Potherca](https://github.com/Potherca))
44+
45+
#### Fixed Bugs:
46+
* Solid line instead of dotted line with Rel_Access_rw [#31](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/31)
47+
* Change line for Read/Write relationship arrows from solid to dotted. [#32](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/32) ([@Potherca](https://github.com/Potherca))
48+
49+
#### Closed Issues:
50+
51+
* Minor request - flat Technology_Node [#37](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/37)
52+
* stdLib references non existing url (...ebbypeter...) [#36](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/36)
53+
* "realisation" sprite name instead of "realization" [#34](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/34)
54+
* Join https://github.com/plantuml-stdlib and/or migrate there? [#29](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/29)
55+
* Feedback [#28](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/28)
56+
* Multiple regressions after last PRs [#24](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/24)
57+
* a couple of minor errors in the readme file [#22](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/22)
58+
* Add directed association relationship, and thicken the association arrow line [#20](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/20)
59+
* some arrow lines and heads are wrong [#18](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/18)
60+
* change the shape of 2 physical elements [#16](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/16)
61+
* missing element Strategy_ValueStream [#14](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/14)
62+
* Change Shape of technology Artifact [#13](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/13)
63+
* Unfiled arrow for access relationships [#12](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/12)
64+
* Typo Influnce -> Influence [#8](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/8)
65+
* permission to use [#7](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/7)
66+
* Technology Process - Missing Sprite [#5](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/5)
67+
68+
#### Merged pull requests:
69+
* Change URLs in README file to plantuml-stdlib org. [#30](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/30) ([@Potherca](https://github.com/Potherca))
70+
* Update all images [#26](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/26) ([@joseluis](https://github.com/joseluis))
71+
* Fix [#24](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/24) Multiple regressions after last PRs [#25](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/25) ([@joseluis](https://github.com/joseluis))
72+
* fix Readme [#23](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/23) ([@joseluis](https://github.com/joseluis))
73+
* Add directed association rel. & thicken arrow line [#21](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/21) ([@joseluis](https://github.com/joseluis))
74+
* Fixes some arrow lines and heads according to spec [#19](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/19) ([@joseluis](https://github.com/joseluis))
75+
* make equipment and facility be Nodes [#17](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/17) ([@joseluis](https://github.com/joseluis))
76+
* Add missing element Strategy_ValueStream [#15](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/15) ([@joseluis](https://github.com/joseluis))
77+
* Added business location [#11](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/11) ([@tradesage](https://github.com/tradesage))
78+
* Some examples improvements [#10](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/10) ([@smeagol74](https://github.com/smeagol74))
79+
* [#8](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/8) fixed typoes Influnce -> Influence, Specilization -> Specialization [#9](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/9) ([@smeagol74](https://github.com/smeagol74))
80+
* Update Technology_Process Macro - per Issue [#5](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/5) [#6](https://github.com/plantuml-stdlib/Archimate-PlantUML/pull/6) ([@zimchaa](https://github.com/zimchaa))
81+
82+
## Archmate-PlantUML v1.0.0
83+
### tag [v1.0.0](https://github.com/plantuml-stdlib/Archimate-PlantUML/tree/v1.0.0) (2019-01-23)
84+
85+
[Full Changelog](https://github.com/plantuml-stdlib/Archimate-PlantUML/compare/53432f0cf64fd015c226b8082807fcd37c18cc8a...v1.0.0)
86+
87+
Closed issues:
88+
89+
* Cannot generate an Archimate image according to the manual: 'syntax error' [#4](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/4)
90+
* Update the ReadMe.md file [#1](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/1)
91+
92+
Merged pull requests:
93+
* Updated ReadMe.md and minor fixes on samples [#3](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/3) ([ebbypeter](https://github.com/ebbypeter))
94+
* Archimate spec & samples [#2](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/2) ([ebbypeter](https://github.com/ebbypeter))

README.md

Lines changed: 130 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,16 @@ PlantUML macros and includes for creating Archimate Diagrams easily.
99
- [PlantUML](#plantuml)
1010
- [ArchiMate](#archimate)
1111
2. [Getting Started](#getting-started)
12+
- [Using built-in support](#using-built-in-support)
13+
- [Using a version available on the internet](#using-a-version-available-on-the-internet)
1214
3. [Usage](#usage)
1315
- [ArchiMate Elements](#archimate-elements)
1416
- [ArchiMate Relationships](#archimate-relationships)
1517
- [ArchiMate Groups](#archimate-groups)
18+
- [Special shapes](#special-shapes)
1619
- [Nesting of Components](#nesting-of-components)
1720
- [Theme Support](#theme-support)
21+
- [Sequence Diagrams using Archimate elements](#sequence-diagrams-using-archimate-elements)
1822
4. [Example](#example)
1923
5. [Contributing](#contributing)
2024
6. [License](#license)
@@ -306,6 +310,130 @@ Theme can be enabled by adding the following line.
306310
| archimate-lowsaturation | ![low saturation](./images/theme-lowsaturation.png) |
307311
| archimate-handwriting | ![handwriting](./images/theme-handwriting.png) |
308312

313+
### Sequence Diagrams using Archimate elements
314+
Additional support for using ArchiMate elements in sequence diagrams is provided by setting a global variable prior to activating ArchiMate support:
315+
316+
```puml
317+
!global $ARCH_SEQUENCE_SUPPORT = %true()
318+
!include <archimate/Archimate>
319+
```
320+
Alternatively, you can choose to only include the sequence support file directly:
321+
```puml
322+
!include <archimate/ArchimateSequenceDiagramSupport>
323+
```
324+
325+
Both methods define additional procedures that can be used to create participants in sequence diagrams using Archimate elements.
326+
For example:
327+
328+
```puml
329+
@startuml
330+
!global $ARCH_SEQUENCE_SUPPORT = %true()
331+
!include <archimate/Archimate>
332+
333+
title Archi Print Usage
334+
335+
' Define Elements
336+
$businessActor("Architect","architect")
337+
$applicationComponent("Archi","archi")
338+
$applicationFunction("Update\nModel","update")
339+
$applicationFunction("Print\nView","print")
340+
$systemSoftware("Windows\nPrint\nService","windowsPrint")
341+
$equipment("Printer", "printer")
342+
343+
' Define Sequence
344+
architect->archi ++
345+
archi->update ++ : Make changes
346+
$document("Not exactly correct!\nBut you get the idea.","right","update")
347+
return Updated Model
348+
archi ->print ++ : Click print
349+
print -\windowsPrint ++
350+
print –> archi -–: Sent to printer
351+
windowsPrint -> printer ++
352+
return Complete
353+
archi –> architect --
354+
355+
@enduml
356+
```
357+
358+
Output:
359+
360+
![Sequence Diagram using Archimate elements](./images/Archimate-Sequence-Diagram.png)
361+
362+
Call the procedure with a label, and if the label is not unique within the diagram also provide an ID to refer to the participant.
363+
```puml
364+
$elementType("Label")
365+
$elementType("Label", ID)
366+
```
367+
368+
The supported elements for sequence diagrams are listed in the table below.
369+
370+
<details>
371+
372+
<summary>Click to show the table</summary>
373+
374+
| Aspect | Type | Procedure |
375+
|------------------------------|-----------------------|-----------------------------|
376+
| Application | Component | `$applicationComponent` |
377+
| Application | Collaboration | `$applicationCollaboration` |
378+
| Application | Data Object | `$dataObject` |
379+
| Application | Event | `$applicationEvent` |
380+
| Application | Function | `$applicationFunction` |
381+
| Application | Interaction | `$applicationInteraction` |
382+
| Application | Interface | `$applicationInterface` |
383+
| Application | Process | `$applicationProcess` |
384+
| Application | Service | `$applicationService` |
385+
| Business | Actor | `$actor` |
386+
| Business | Collaboration | `$businessCollaboration` |
387+
| Business | Contract | `$contract` |
388+
| Business | Event | `$businessEvent` |
389+
| Business | Function | `$businessFunction` |
390+
| Business | Interaction | `$businessInteraction` |
391+
| Business | Interface | `$businessInterface` |
392+
| Business | Object | `$businessObject` |
393+
| Business | Process | `$businessProcess` |
394+
| Business | Product | `$product` |
395+
| Business | Role | `$role` |
396+
| Business | Service | `$businessService` |
397+
| Business | Representation | `$representation` |
398+
| Implementation and Migration | Deliverable | `$deliverable` |
399+
| Implementation and Migration | Gap | `$gap` |
400+
| Implementation and Migration | Implementation Event | `$implementationEvent` |
401+
| Implementation and Migration | Plateau | `$plateau` |
402+
| Implementation and Migration | Work Package | `$workPackage` |
403+
| Motivation | Assessment | `$assessment` |
404+
| Motivation | Constraint | `$constraint` |
405+
| Motivation | Driver | `$driver` |
406+
| Motivation | Goal | `$goal` |
407+
| Motivation | Meaning | `$meaning` |
408+
| Motivation | Outcome | `$outcome` |
409+
| Motivation | Principle | `$principle` |
410+
| Motivation | Requirement | `$requirement` |
411+
| Motivation | Stakeholder | `$stakeholder` |
412+
| Motivation | Value | `$value` |
413+
| Strategy | Capability | `$capability` |
414+
| Strategy | Course Of Action | `$courseOfAction` |
415+
| Strategy | Resource | `$resource` |
416+
| Strategy | Value Stream | `$valueStream` |
417+
| Technology | Artifact | `$artifact` |
418+
| Technology | Collaboration | `$technologyCollaboration` |
419+
| Technology | Communication Network | `$communicationNetwork` |
420+
| Technology | Device | `$device` |
421+
| Technology | Event | `$technologyEvent` |
422+
| Technology | Function | `$technologyFunction` |
423+
| Technology | Interaction | `$technologyInteraction` |
424+
| Technology | Interface | `$technologyInterface` |
425+
| Technology | Node | `$node` |
426+
| Technology | Path | `$path` |
427+
| Technology | Process | `$technologyProcess` |
428+
| Technology | Service | `$technologyService` |
429+
| Technology | System Software | `$systemSoftware` |
430+
| Technology - Physical | Distribution Network | `$distributionNetwork` |
431+
| Technology - Physical | Equipment | `$equipment` |
432+
| Technology - Physical | Facility | `$facility` |
433+
| Technology - Physical | Material | `$material` |
434+
435+
</details>
436+
309437
## Example
310438
```plantuml
311439
@startuml
@@ -338,7 +466,7 @@ Rel_Composition_Up(ACSAP, ACSAPFin)
338466
```
339467

340468
Output:
341-
![Archimate-PlantUML Sample image - Requirement & Application Services](./images/Archimate%20Sample%20-%20Requirement%20%26%20Application%20Services.png)
469+
![Archimate-PlantUML Sample image - Requirement & Application Services](./images/Archimate%20Sample%20-%20Requirement%20%26%20Application%20Services.png)
342470

343471
## Contributing
344472
If you have any ideas, [open an issue](https://github.com/plantuml-stdlib/Archimate-PlantUML/issues/new) or fork the repository and submit a pull request.
@@ -351,3 +479,4 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
351479
* [Archimate 3.1 Specification](http://pubs.opengroup.org/architecture/archimate3-doc/) - Archimate Specifications
352480
* [Plant UML Archimate Specifications](http://plantuml.com/archimate-diagram) - for archimate spec in PlantUML
353481
* [C4-PlantUML](https://github.com/plantuml-stdlib/C4-PlantUML) - for inspiration, base structure and scripts idea
482+
* Steven Mileham, for allowing inclusion of his [Sequence Diagram support for Archimate elements](https://smileham.co.uk/2019/04/23/archimate-plantuml-sequence-diagram-joy/)

dist/plantuml-stdlib/stdlib/archimate/Archimate.puml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,18 @@
2020

2121
!global $ARCH_DEBUG ?= %false()
2222
!global $ARCH_LOCAL ?= %false()
23+
!global $ARCH_SEQUENCE_SUPPORT ?= %false()
2324

2425
!if ($ARCH_LOCAL == %true())
2526
!include themes/shared_style.puml
27+
!if ($ARCH_SEQUENCE_SUPPORT == %true())
28+
!include ArchimateSequenceDiagramSupport.puml
29+
!endif
2630
!else
2731
!include <archimate/themes/shared_style>
32+
!if ($ARCH_SEQUENCE_SUPPORT == %true())
33+
!include <archimate/ArchimateSequenceDiagramSupport>
34+
!endif
2835
!endif
2936

3037
!if ($ARCH_DEBUG == %true())

0 commit comments

Comments
 (0)