Thanks to Jean-Baptiste Sarrodie, the ArchiMate Forum Chair, at the close of yet another interesting year, I present you with a new ArchiMate Quiz question.

The image — presented here in Mastering ArchiMate colours — is shown here:

CrossLayerTriggerQuizQuestion

And the question is: “This Trigger relation is allowed in ArchiMate 3.0.1. But it is not a core relation. So it has been derived. The question is: How?”

The most entertaining or insightful answers, presented below in the comments section below, have a chance of winning a free PDF copy of my books.

Enjoy.

7 comments

  1. Here’s my potentially flawed (overly complicated) solution:

    To solve this puzzle I went through the Location element because you can’t directly span layers with Triggering because Realize and Serving are weaker relationships than Assignment and you can only derive Triggering relationships through Assignment:

    First constructing the business side:
    * Location(L) Aggregates a Business Actor(A) assigned to Business Function(BF) that is Triggered by the Business Process(BP)
    * Location(L) Assigned to the Business Function(BF) – a[L] aggregates b[A] assigned to c[BF] => a[L] assigned to c[BF] – weakest structural/dependency relationship
    * Business Process(BP) Triggers Location(L) – a[BP] triggering b[BF] and d[L] assigned to b[BF] => a[BP] triggers d[L]

    Next constructing the application side, which is identical to above with the only difference being the direction of the Triggering between the behavioural elements:
    * Location(L) Aggregates an Application Component(C) that is Assigned to the Application Function(AF) that Triggers the Application Process (AP)
    * Location(L) Assigned to Application Function(AF) – a[L] aggregates b[C] assigned to c[AF] => a[L] assigned to c[AF] – weakest structural/dependency relationship
    * Location(L) Triggers Application Process(AP) – a[AF] triggers b[AP] and c[L] assigned to a[AF] => c[L] triggers b[AP]

    This leaves us with Business Process(BP) Triggering Location(L) Triggering Application Process(AP) so finally:
    * Business Process(BP) Triggers Application Process(AP) – a[BP] triggers b[L] triggers c[AP] => a[BP] triggers c[AP] – Triggering is transitive

    Like

  2. I was sorely tempted to say that triggering could be derived from flows, like this,

    Business Process —flow–> Business Event —flow–> Application Process

    But there is no causal relationship to be had that way.

    So, I’ll go instead with Access. The Access relation “indicates that a process, function, interaction, service, or event ‘does something’ with a passive structure element”.

    Business Process –write–> Business Object –read–> Application Process

    Here, the AP actively reads the BO which implies that something occurs in the AP.
    We could associate the Business Object to an Event for clarity if needed because when I think of triggers, I think of events.

    Like

    1. We’re not talking about triggering in a natural language sense, but in the formal ArchiMate grammar sense, thus the formal use of ArchiMate’s Trigger relation.

      Like

      1. Good thing I already own a PDF copy of your book :-).
        The formal model of ArchiMate is a bit sketchy and I don’t have time right now to learn ORM in order to do a proof. Talking about execution in ArchiMate is difficult, but triggering requires causality and therefore some kind of precondition to an execution.
        I think this is how it might progress.
        Using temporal logic, I would assume that it is possible to show that any number of more complex patterns arrangements of ArchiMate models imply that BP (eventually) leads to AP. If we assume that the triggering relation means P leads-to Q, then a proof should be possible where any number of other relationships spanning many intervening concepts causes P leads-to Q to be true. There would need to be some expression of execution and I think that would rely on ArchiMate functions in BP and AP (above).
        Assume there exists a function BPf in BP that introduces some external concept (via an interface or other means, perhaps as simple as something on a flow). For example BPf might write to a business object or we could say it raises an event (but that would require us to use triggering). Assume there is a function APf in AP that can detect that external concept (e.g., perhaps the occurrence of an instance of a business object or an object with very specific attributes filled in) and executes in AP to initiate AP’s internal behavior as the first function in a chain of functions that make up whatever AP does. Assume that BPf can occur in some “normal” execution of BP – that is BPf is reachable so under some execution it can actually cause all this to start.

        Like

      2. “If we assume that the triggering relation means P leads-to Q, then a proof should be possible where any number of other relationships spanning many intervening concepts causes P leads-to Q to be true.” Certainly, but that is a private (even if it is logical) interpretation of ArchiMate that is not supported by the formal ArchiMate standard. It might be interesting input for a discussion of the standard by the ArchiMate Forum (deriving Triggers from other relations, such as dependency relations). But it is outside the scope of ArchiMate, the standard, and this out of the scope of this quiz question.

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s