Missing Negative Case

Written by

in

Description

The “Missing Negative Case” is a process anti-pattern. It occurs when in a model, only the positive cases are considered, and the negative ones are disregarded.Only positive results are modeled in the EA Process.

Context

Derived from: “Missing negative”
BPM anti-pattern.

Consequences

As Murphy’s Law states, if there is a chance of failure, it will happen. If we do not model failure it leads to undefined behavior in case it happens.

Detection

We can detect the “Missing Negative Case” EA Smell in the ArchiMate analogous to BPM by looking for elements with positive phrases without having the corresponding negative case in the model.

Solution

The EA process should be enhanced with more process paths that lead to different outcomes.

Example

There is an element “Product ordered successfully,” but no corresponding element, that addresses the opposing case.

Cypher query

MATCH p=(m)<-[r:TriggeringRelationship|FlowRelationship]-(j) <br /> WHERE any (name in $positivePhrases <br /> where toLower(m.name) CONTAINS toLower(name)) <br /> AND not EXISTS ((m)<--(:Junction {type: "or"})) <br /> RETURN p <br /> UNION <br /> MATCH p= (m)<-[r:TriggeringRelationship|FlowRelationship]-(j:Junction {type: "or"}) <br /> WHERE any (name in $positivePhrases where toLower(m.name) CONTAINS toLower(name)) <br /> WITH p, m,j <br /> WHERE not exists { <br /> MATCH (j)-->(t) <br /> WHERE m<>t <br /> } <br /> RETURN p

Cypher count query

MATCH p=(m)<-[r:TriggeringRelationship|FlowRelationship]-(j) WHERE any (name in [ "successfully", "without errors", "in Time", "Develop"] where toLower(m.name) CONTAINS toLower(name)) AND not EXISTS ((m)<--(:Junction {type: "or"})) RETURN count (distinct m)

Diagram

Diagram for Missing Negative Case

Tags

Understandability Problems, Process

Query parameters

[
    {
        "name": "positivePhrases",
        "type": "list",
        "default": [
            "successfully",
            "without errors",
            "in Time",
            "Develop"
        ],
        "description": "positive phrase(s) for specifying the positive cases."
    }
]

Related smells

    All smells