New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Archimate 3 Specifications #61

Closed
kiebor opened this Issue Jun 20, 2017 · 15 comments

Comments

Projects
None yet
3 participants
@kiebor

kiebor commented Jun 20, 2017

I've been using the Archimate feature solidly for a while now and would like to see it keep in line with the current specification.

The icon sets for Strategy and Physical layers are missing. Please find them below.

strategy-capability
strategy-course-of-action
physical-equipment
physical-facility
physical-distribution-network
physical-material
strategy-resource

@kiebor

This comment has been minimized.

Show comment
Hide comment
@kiebor

kiebor Jun 20, 2017

Also missing is outcome: outcome

In addition, I'd be happy to align the icons you have semantically to the correct layers if you need.

kiebor commented Jun 20, 2017

Also missing is outcome: outcome

In addition, I'd be happy to align the icons you have semantically to the correct layers if you need.

@arnaudroques

This comment has been minimized.

Show comment
Hide comment
@arnaudroques

arnaudroques Jun 21, 2017

Contributor

Nice idea!
And thanks for the icons!

So the last beta https://www.dropbox.com/s/koo42q3d9gxw288/plantuml.jar?dl=0

allows now this:

@startuml
rectangle "business strategy-capability" <<$archimate/strategy-capability>>
rectangle "business strategy-course-of-action" <<$archimate/strategy-course-of-action>>
rectangle "business strategy-equipement" <<$archimate/strategy-equipement>>
rectangle "business strategy-facility" <<$archimate/strategy-facility>>
rectangle "business strategy-distribution-network" <<$archimate/strategy-distribution-network>>
rectangle "business strategy-material" <<$archimate/strategy-material>>
rectangle "business strategy-resource" <<$archimate/strategy-resource>>
rectangle "business strategy-outcome" <<$archimate/strategy-outcome>>
@enduml

This will be released in next official release.

Contributor

arnaudroques commented Jun 21, 2017

Nice idea!
And thanks for the icons!

So the last beta https://www.dropbox.com/s/koo42q3d9gxw288/plantuml.jar?dl=0

allows now this:

@startuml
rectangle "business strategy-capability" <<$archimate/strategy-capability>>
rectangle "business strategy-course-of-action" <<$archimate/strategy-course-of-action>>
rectangle "business strategy-equipement" <<$archimate/strategy-equipement>>
rectangle "business strategy-facility" <<$archimate/strategy-facility>>
rectangle "business strategy-distribution-network" <<$archimate/strategy-distribution-network>>
rectangle "business strategy-material" <<$archimate/strategy-material>>
rectangle "business strategy-resource" <<$archimate/strategy-resource>>
rectangle "business strategy-outcome" <<$archimate/strategy-outcome>>
@enduml

This will be released in next official release.

@kiebor

This comment has been minimized.

Show comment
Hide comment
@kiebor

kiebor Jun 21, 2017

That's great. However, some icons are misaligned.

should be:
archimate/strategy-capability
archimate/strategy-course-of-action
archimate/strategy-resource
archimate/physical-facility
archimate/physical-material
archimate/physical-equipment
archimate/physical-distribution-network
archimate/motivation-outcome

As an added note, I have a massive definitions file I include with every diagram that aligns the icons to the correct scope and colorizes the artifacts to match. There are 2 scopes commented out due to the missing icons. Is there any way you could make it more official as part of the PlantUml build (exact naming conventions not withstanding). Also feel free to ignore the macros.

archimate.txt

I love the archimate notation, but not the official tools -- and have been writing a plantuml plugin for visio to help avoid having to use them. This update will help greatly in achieving that.

Thanks.

kiebor commented Jun 21, 2017

That's great. However, some icons are misaligned.

should be:
archimate/strategy-capability
archimate/strategy-course-of-action
archimate/strategy-resource
archimate/physical-facility
archimate/physical-material
archimate/physical-equipment
archimate/physical-distribution-network
archimate/motivation-outcome

As an added note, I have a massive definitions file I include with every diagram that aligns the icons to the correct scope and colorizes the artifacts to match. There are 2 scopes commented out due to the missing icons. Is there any way you could make it more official as part of the PlantUml build (exact naming conventions not withstanding). Also feel free to ignore the macros.

archimate.txt

I love the archimate notation, but not the official tools -- and have been writing a plantuml plugin for visio to help avoid having to use them. This update will help greatly in achieving that.

Thanks.

@arnaudroques

This comment has been minimized.

Show comment
Hide comment
@arnaudroques

arnaudroques Jun 21, 2017

Contributor

Sorry, I do not understand the "misaligned" word. All icons are 16x16 pixels. Is this related to their colors ?
Or do you want to rename some icon names ?
It would be nice if you could give more precise suggestions!

Regards,

Contributor

arnaudroques commented Jun 21, 2017

Sorry, I do not understand the "misaligned" word. All icons are 16x16 pixels. Is this related to their colors ?
Or do you want to rename some icon names ?
It would be nice if you could give more precise suggestions!

Regards,

@kiebor

This comment has been minimized.

Show comment
Hide comment
@kiebor

kiebor Jun 21, 2017

Apologies. I meant the names. I've scoped the icons to layers per archimate 3 specification in my definitions file.

kiebor commented Jun 21, 2017

Apologies. I meant the names. I've scoped the icons to layers per archimate 3 specification in my definitions file.

@arnaudroques

This comment has been minimized.

Show comment
Hide comment
@arnaudroques

arnaudroques Jun 21, 2017

Contributor

So you want to rename "archimate/strategy-capability" right ? It would be great if you could provide something like:

archimate/strategy-capability --> archimate/new-name-for-strategy-capability

Otherwise, we are confuse about the real need.
Thanks!

Contributor

arnaudroques commented Jun 21, 2017

So you want to rename "archimate/strategy-capability" right ? It would be great if you could provide something like:

archimate/strategy-capability --> archimate/new-name-for-strategy-capability

Otherwise, we are confuse about the real need.
Thanks!

@kiebor

This comment has been minimized.

Show comment
Hide comment
@kiebor

kiebor Jun 21, 2017

For renaming the icons:

archimate/strategy-capability --> OK
archimate/strategy-course-of-action --> OK
archimate/strategy-resource --> OK
archimate/strategy-facility --> archimate/physical-facility
archimate/strategy-material --> archimate/physical-material
archimate/strategy-equipment --> archimate/physical-equipment
archimate/strategy-distribution-network --> archimate/physical-distribution-network
archimate/strategy-outcome --> archimate/motivation-outcome

Does that make sense?

In terms of a change to syntax, it would be nice if I could type something like:
archimate <SCOPE> <NAME> <ICON>

and that would produce the same result as:
rectangle <NAME> <ICON> <COLOUR>

I attached my definitions file a few posts up to give an indication of what I'm using to simplify my usage.
I have there the layers colour coded as:

BUSINESS #yellow
APPLICATION #A9DCDF
MOTIVATION #B19CD9
STRATEGY #F6E4CC
TECHNOLOGY #lightgreen
PHYSICAL #CCFFCC
IMPLEMENTATION #FFA6BF

Example syntax could be:
archimate APPLICATION DoSomething <<$application-function>>

Or simpler (but possibly too abstracted):
archimate DoSomething application-function

to give the same result as currently:
rectangle DoSomething <<$archimate/application-function>> #A9DCDF

I hope that clarifies a few things.

kiebor commented Jun 21, 2017

For renaming the icons:

archimate/strategy-capability --> OK
archimate/strategy-course-of-action --> OK
archimate/strategy-resource --> OK
archimate/strategy-facility --> archimate/physical-facility
archimate/strategy-material --> archimate/physical-material
archimate/strategy-equipment --> archimate/physical-equipment
archimate/strategy-distribution-network --> archimate/physical-distribution-network
archimate/strategy-outcome --> archimate/motivation-outcome

Does that make sense?

In terms of a change to syntax, it would be nice if I could type something like:
archimate <SCOPE> <NAME> <ICON>

and that would produce the same result as:
rectangle <NAME> <ICON> <COLOUR>

I attached my definitions file a few posts up to give an indication of what I'm using to simplify my usage.
I have there the layers colour coded as:

BUSINESS #yellow
APPLICATION #A9DCDF
MOTIVATION #B19CD9
STRATEGY #F6E4CC
TECHNOLOGY #lightgreen
PHYSICAL #CCFFCC
IMPLEMENTATION #FFA6BF

Example syntax could be:
archimate APPLICATION DoSomething <<$application-function>>

Or simpler (but possibly too abstracted):
archimate DoSomething application-function

to give the same result as currently:
rectangle DoSomething <<$archimate/application-function>> #A9DCDF

I hope that clarifies a few things.

@arnaudroques

This comment has been minimized.

Show comment
Hide comment
@arnaudroques

arnaudroques Jun 21, 2017

Contributor

Does that make sense?

Yes, that's perfect, thanks!

So in last beta https://www.dropbox.com/s/koo42q3d9gxw288/plantuml.jar?dl=0

  • We have fixed the icon names
  • We have added a new command: archimate #APPLICATION DoSomething <<application-function>>

Note that we treat #BUSINESS / #APPLICATION / ... as regular colors (it's just new color names to us).
It's really a draft and a first proposal : feel free to make other suggestions, especially if you want to change the order of arguments in the new "archimate" command.

So now the following examples are working:

@startuml
rectangle "business strategy-capability" <<$archimate/strategy-capability>>
rectangle "business strategy-course-of-action" <<$archimate/strategy-course-of-action>>
rectangle "business physical-equipment" <<$archimate/physical-equipment>>
rectangle "business physical-facility" <<$archimate/physical-facility>>
rectangle "business physical-distribution-network" <<$archimate/physical-distribution-network>>
rectangle "business physical-material" <<$archimate/physical-material>>
rectangle "business strategy-resource" <<$archimate/strategy-resource>>
rectangle "business motivation-outcome" <<$archimate/motivation-outcome>> #MOTIVATION
@enduml
@startuml
archimate #APPLICATION DoSomething <<application-function>>
archimate #MOTIVATION  SomeMotivation
@enduml
Contributor

arnaudroques commented Jun 21, 2017

Does that make sense?

Yes, that's perfect, thanks!

So in last beta https://www.dropbox.com/s/koo42q3d9gxw288/plantuml.jar?dl=0

  • We have fixed the icon names
  • We have added a new command: archimate #APPLICATION DoSomething <<application-function>>

Note that we treat #BUSINESS / #APPLICATION / ... as regular colors (it's just new color names to us).
It's really a draft and a first proposal : feel free to make other suggestions, especially if you want to change the order of arguments in the new "archimate" command.

So now the following examples are working:

@startuml
rectangle "business strategy-capability" <<$archimate/strategy-capability>>
rectangle "business strategy-course-of-action" <<$archimate/strategy-course-of-action>>
rectangle "business physical-equipment" <<$archimate/physical-equipment>>
rectangle "business physical-facility" <<$archimate/physical-facility>>
rectangle "business physical-distribution-network" <<$archimate/physical-distribution-network>>
rectangle "business physical-material" <<$archimate/physical-material>>
rectangle "business strategy-resource" <<$archimate/strategy-resource>>
rectangle "business motivation-outcome" <<$archimate/motivation-outcome>> #MOTIVATION
@enduml
@startuml
archimate #APPLICATION DoSomething <<application-function>>
archimate #MOTIVATION  SomeMotivation
@enduml
@kiebor

This comment has been minimized.

Show comment
Hide comment
@kiebor

kiebor Jun 22, 2017

The new command works great. I have noticed that I can't use aliases or names with spaces.
For example:
archimate #APPLICATION "Some Function" <<application-function>>
and
archimate #APPLICATION SomeFunction as App_Func1 <<application-function>>

produce errors.

kiebor commented Jun 22, 2017

The new command works great. I have noticed that I can't use aliases or names with spaces.
For example:
archimate #APPLICATION "Some Function" <<application-function>>
and
archimate #APPLICATION SomeFunction as App_Func1 <<application-function>>

produce errors.

@arnaudroques

This comment has been minimized.

Show comment
Hide comment
@arnaudroques

arnaudroques Jun 22, 2017

Contributor

Thanks for your tests, it really helps!
We've fixed those in last beta
https://www.dropbox.com/s/koo42q3d9gxw288/plantuml.jar?dl=0

There are probably some other issues, so do not hesitate to post again here!
Regards,

Contributor

arnaudroques commented Jun 22, 2017

Thanks for your tests, it really helps!
We've fixed those in last beta
https://www.dropbox.com/s/koo42q3d9gxw288/plantuml.jar?dl=0

There are probably some other issues, so do not hesitate to post again here!
Regards,

@aadrian

This comment has been minimized.

Show comment
Hide comment
@aadrian

aadrian Jun 22, 2017

@arnaudroques Any chance committing (those) changes to GitHub instead of just providing binaries from a private DropBox?

https://github.com/plantuml/plantuml/commits/master does not seems to contain "individual commits" but "source backups" on each release :(.

Also the https://github.com/plantuml/plantuml/pulls seems to be totally ignored :( .

Thank you.

aadrian commented Jun 22, 2017

@arnaudroques Any chance committing (those) changes to GitHub instead of just providing binaries from a private DropBox?

https://github.com/plantuml/plantuml/commits/master does not seems to contain "individual commits" but "source backups" on each release :(.

Also the https://github.com/plantuml/plantuml/pulls seems to be totally ignored :( .

Thank you.

@kiebor

This comment has been minimized.

Show comment
Hide comment
@kiebor

kiebor Jun 23, 2017

That's working great now. I also have some other suggestions.

2 important and useful features of Archimate are grouping and junctions.
Groups are used to show how multiple artifacts aggregate or compose under another concept, artifact or scope. I can use the built-in frame, package, rectangle etc command, but the results are not perfect:

@startuml
archimate #Motivation "Secure Data Transfer" as dataTrans <<requirement-filled>>
   frame "VPN Solution" as vpnSolution {
   archimate #Technology "VPN Server" as vpnServerA <<technology-device>>
   archimate #Technology "Client Server" as vpnServerB <<technology-device>>
   archimate #Technology "VPN Gateway" as softwareA <<technology-system-software>>
   archimate #Technology "VPN Client" as softwareB <<technology-system-software>>
   archimate #Technology "Network Path" as coms <<technology-communication-path>>
   archimate #Technology "Internet / Cloud" as network <<technology-network>>
   archimate #Technology "VPN Service" as vpnService <<service>>
   }
vpnSolution .up.|> dataTrans
vpnService <|.down. coms
coms -left- softwareA
coms -right- softwareB
vpnServerA *-up-> softwareA
vpnServerB *-up-> softwareB
network -left- vpnServerA
network -right- vpnServerB
network .up.|> coms
@enduml

image:
test 1-21

The group should be handled the same way as an individual artifact with the arrow centered on the side it comes from rather than being constrained to the corners. Also, aggregate groups should have a dashed outline, composition groups a full line.

It would be nice if I could have the syntax to specify.

e.g.

Archigroup <NAME> <GROUPTYPE: Aggregate / Composite> {
<OTHER OBJECTS>
}

Junctions indicate decisions and parallel conditions and I would normally implement as below:

@startuml
allow_mixing
circle JunctionAnd #black
circle JunctionOr #whitesmoke
rectangle GO #lightgreen
rectangle STOP #red
rectangle WAIT #orange
GO -up-> JunctionOr
STOP -up-> JunctionOr
STOP -down-> JunctionAnd
WAIT -down-> JunctionAnd
@enduml

junctions@1-12

The problem with the new Archimate command is that it produces an error if I mix with Circle.

It would also be nice if we could have an Archimate specific syntax to create the Junctions:
Junction-Or <NAME>
Junction-And <NAME>

Also that the border colour defaults to black in both cases.

I hope that explains the requirement adequately and is not too much of an ask.

Thanks.

kiebor commented Jun 23, 2017

That's working great now. I also have some other suggestions.

2 important and useful features of Archimate are grouping and junctions.
Groups are used to show how multiple artifacts aggregate or compose under another concept, artifact or scope. I can use the built-in frame, package, rectangle etc command, but the results are not perfect:

@startuml
archimate #Motivation "Secure Data Transfer" as dataTrans <<requirement-filled>>
   frame "VPN Solution" as vpnSolution {
   archimate #Technology "VPN Server" as vpnServerA <<technology-device>>
   archimate #Technology "Client Server" as vpnServerB <<technology-device>>
   archimate #Technology "VPN Gateway" as softwareA <<technology-system-software>>
   archimate #Technology "VPN Client" as softwareB <<technology-system-software>>
   archimate #Technology "Network Path" as coms <<technology-communication-path>>
   archimate #Technology "Internet / Cloud" as network <<technology-network>>
   archimate #Technology "VPN Service" as vpnService <<service>>
   }
vpnSolution .up.|> dataTrans
vpnService <|.down. coms
coms -left- softwareA
coms -right- softwareB
vpnServerA *-up-> softwareA
vpnServerB *-up-> softwareB
network -left- vpnServerA
network -right- vpnServerB
network .up.|> coms
@enduml

image:
test 1-21

The group should be handled the same way as an individual artifact with the arrow centered on the side it comes from rather than being constrained to the corners. Also, aggregate groups should have a dashed outline, composition groups a full line.

It would be nice if I could have the syntax to specify.

e.g.

Archigroup <NAME> <GROUPTYPE: Aggregate / Composite> {
<OTHER OBJECTS>
}

Junctions indicate decisions and parallel conditions and I would normally implement as below:

@startuml
allow_mixing
circle JunctionAnd #black
circle JunctionOr #whitesmoke
rectangle GO #lightgreen
rectangle STOP #red
rectangle WAIT #orange
GO -up-> JunctionOr
STOP -up-> JunctionOr
STOP -down-> JunctionAnd
WAIT -down-> JunctionAnd
@enduml

junctions@1-12

The problem with the new Archimate command is that it produces an error if I mix with Circle.

It would also be nice if we could have an Archimate specific syntax to create the Junctions:
Junction-Or <NAME>
Junction-And <NAME>

Also that the border colour defaults to black in both cases.

I hope that explains the requirement adequately and is not too much of an ask.

Thanks.

@kiebor kiebor changed the title from Missing Icons for Archimate 3 layers to Archimate 3 Specifications Jun 23, 2017

@kiebor

This comment has been minimized.

Show comment
Hide comment
@kiebor

kiebor Jun 23, 2017

I've updated the issue title to better reflect the ongoing conversation.

kiebor commented Jun 23, 2017

I've updated the issue title to better reflect the ongoing conversation.

@arnaudroques

This comment has been minimized.

Show comment
Hide comment
@arnaudroques

arnaudroques Jun 23, 2017

Contributor

@aadrian Yes, those changes will be committed in next release in GitHub. I understand that this way of working is strange, but right now, we are sticking to this. Sorry about that

@kiebor
The "Archigroup" feature is somehow more difficult to implement. It would be better if you create a new issue with this only subject.

About function, we are trying to minimize the number of keywords. For "archimate" keyword, there was no other option than adding a new keyword.
For function, we slightly change the way of defining circle:

  • You can now use them without "allow_mixing"
  • You can use color definition right after "circle" (or any other keywords BTW)

So now, you can have with last beta
https://www.dropbox.com/s/koo42q3d9gxw288/plantuml.jar?dl=0

@startuml
!define Junction_Or circle #black
!define Junction_And circle #whitesmoke

Junction_And JunctionAnd
Junction_Or JunctionOr

archimate #Technology "VPN Server" as vpnServerA <<technology-device>>

rectangle GO #lightgreen
rectangle STOP #red
rectangle WAIT #orange
GO -up-> JunctionOr
STOP -up-> JunctionOr
STOP -down-> JunctionAnd
WAIT -down-> JunctionAnd
@enduml

Even if we focus on UML, we are happy to help Archimate users, as long as we can keep this consistent with UML diagrams.
So you can go on with suggestions, even if we do not promise to implement them all :-)

Contributor

arnaudroques commented Jun 23, 2017

@aadrian Yes, those changes will be committed in next release in GitHub. I understand that this way of working is strange, but right now, we are sticking to this. Sorry about that

@kiebor
The "Archigroup" feature is somehow more difficult to implement. It would be better if you create a new issue with this only subject.

About function, we are trying to minimize the number of keywords. For "archimate" keyword, there was no other option than adding a new keyword.
For function, we slightly change the way of defining circle:

  • You can now use them without "allow_mixing"
  • You can use color definition right after "circle" (or any other keywords BTW)

So now, you can have with last beta
https://www.dropbox.com/s/koo42q3d9gxw288/plantuml.jar?dl=0

@startuml
!define Junction_Or circle #black
!define Junction_And circle #whitesmoke

Junction_And JunctionAnd
Junction_Or JunctionOr

archimate #Technology "VPN Server" as vpnServerA <<technology-device>>

rectangle GO #lightgreen
rectangle STOP #red
rectangle WAIT #orange
GO -up-> JunctionOr
STOP -up-> JunctionOr
STOP -down-> JunctionAnd
WAIT -down-> JunctionAnd
@enduml

Even if we focus on UML, we are happy to help Archimate users, as long as we can keep this consistent with UML diagrams.
So you can go on with suggestions, even if we do not promise to implement them all :-)

@kiebor

This comment has been minimized.

Show comment
Hide comment
@kiebor

kiebor Jun 23, 2017

That's great. I can live with using a macro for junctions now that allow_mixing is no longer necessary.

As a solution architect, my primary domain is software/data, and so most of my product specific design work is in UML--but I do often have to branch into TOGAF/archimate territory for integration designs or mapping and modelling boundaries between systems and concerns. This has always meant relying on multiple toolsets. Having always been a software engineer, code is where my strengths are (and a more native mindset) rather than drag and drop interfaces. As such, I really appreciate this project in how it allows me to 'code up' my diagrams and mix disciplines.

Thanks for this awesome service.

kiebor commented Jun 23, 2017

That's great. I can live with using a macro for junctions now that allow_mixing is no longer necessary.

As a solution architect, my primary domain is software/data, and so most of my product specific design work is in UML--but I do often have to branch into TOGAF/archimate territory for integration designs or mapping and modelling boundaries between systems and concerns. This has always meant relying on multiple toolsets. Having always been a software engineer, code is where my strengths are (and a more native mindset) rather than drag and drop interfaces. As such, I really appreciate this project in how it allows me to 'code up' my diagrams and mix disciplines.

Thanks for this awesome service.

@kiebor kiebor closed this Jun 27, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment