Previous Topic: Consequences and Levels of InconsistencyNext Topic: Checking for Correctness


Resolving Inconsistencies

When CA Gen reports inconsistencies at all levels of the analysis model, it lists the current anomalies at a given point in time.

An inconsistency may have a cascade effect and generate other consequential inconsistencies in different parts of the model. It is therefore sensible to approach the resolution of inconsistencies in a structured and ordered manner, concentrating first on a model object and subsequently expanding to the neighborhood, diagram, and model.

The following sections suggest a sequence for resolving inconsistencies. Following this sequence maximizes the likelihood of resolving consequential inconsistencies and minimizes iterations of the checking and revision cycle.

Data Model Inconsistencies

Attributes must exist in the correct domain and not be derived.

Optional relationship must not be used as identifiers.

Failing to record attributes for an entity type generates several consistency check messages, which are presented in the following table.

Type of Message

Message

Error

Each entity type must have an identifier to use the DSD.

Severe Warning

Each entity type must have an attribute for codegen.

Error

An entity type with no subtypes must have at least one identifier.

Error

An entity type must have at least one attribute or relationship.

Error

Each occurrence on an entity type must have at least one attribute or two relationships.

The subsequent definition of attributes satisfies a number of these inconsistencies. Checking the data model again produces the messages shown in the following table.

Type of Message

Message

Error

Each entity type must have an identifier to use the DSD.

Error

An entity type with no subtypes must have at least one identifier.

Once an identifier for the entity type has been recorded, then the inconsistencies will have been resolved, whether that identifier includes attribute(s) and/or relationships.

Clearly, the resolution of inconsistencies in the suggested sequence does minimize the number of iterations of the checking and revision cycle, maximizing the number of consequential inconsistencies resolved.

Activity and Interaction Model Inconsistencies

Activity objects such as elementary processes are checked for consistency with other processes in the hierarchy, events, dependencies, and external objects.

For example, in the Activity Hierarchy Diagramming Tool, failure to properly decompose activities to elementary process level, and to completely record the expected effects those activities will have on entities, generates several consistency check messages. These may include the messages shown in the following table.

Type of Message

Message

Warning

A function must decompose into at least two activities.

Warning

A non-elementary process must decompose into at least two processes.

Warning

The expected effects of CRUD for a subordinate activity should be expected of its parent activities.

Warning

An entity type must have at least one attribute or relationship.

Warning

The expected effects of CRUD for a parent activity should be expected of its subordinate activities.

The correct decomposition of activities allows you to correctly determine expected effects for activities. If decomposition is incomplete or inconsistent, then expected effects also reveal inconsistencies.

Once decomposition is completed, the recording of consistent Expected Effects is straightforward. The following table lists messages that would typically be produced in this situation.

Type of Message

Message

Warning

The Expected Effects of CRUD for a subordinate activity should be expected of its parent activities.

Warning

The Expected Effects of CRUD for a parent activity should be expected of its subordinate activities.

Expected effects inconsistencies can be resolved by matching the expected effects of parent activities with those of its subordinates. The expected effects of a parent activity must always be composed of the sum of the expected effects of all its subordinate activities.

Inconsistencies may still exist, however. These inconsistencies may not necessarily be due to inaccurate modeling or understanding of the business. You must nevertheless confirm that any inconsistencies still in existence at the end of the analysis phase are not likely to impede further work.