identifier prefixed to a label indicates an ontological
dependence link on the element referenced. For
example, the affordance “Logical Device address
(e2)” is uniquely identified by the identifier “e2”.
The affordance “(e2, e4) Logical Provider address”
indicates that the logical provider address is
ontologically dependent on “Logical device address
(e2)”, and “Logical provider address (e4)”.
Including “symbol” in a prefixed bracketed
identifier indicates a symbolic ontological
dependence link.
After defining the semiotic agents and respective
ontological dependence schema for “physical point-
to-point integration”, “Logical loosely coupled
integration designer”, and “consumer”, we construct
higher level semiotic agents. The “Physical point-to-
point Consumer designer” agent is a modification of
the “Consumer designer” agent, and defines the
terms “Physical Provider address”, “Physical own
address” and the operation “Send service request
message from own physical address to Provider
physical address via the Messaging service”. We
similarly define the “Logical loosely coupled
consumer designer” agent.
Stepping up another level we modify these
agents to define two synchronous and two
asynchronous messaging related semiotic agents, the
synchronous physical point-to-point consumer
designer, the asynchronous physical point-to-point
consumer designer, and synchronous logical loosely
coupled consumer designer and finally, the
asynchronous logical loosely coupled consumer
designer. The ontological dependence schema for
synchronous messaging indicates that with respect to
the consumer designer, synchronous messaging is
defined by a designer action (captured by a solid
rectangle) embodied in the manner software code is
strung together so that when executed the consumer
waits for a feedback message from the provider, and
then immediate handles the feedback message.
A careful analysis of the ontological
dependences of these designer actions indicates that
they are afforded by any consumer agent (and
selected consumer’s affordances), including all
agents that modify the consumer agent (the
modification link, acts with this respect like an ISA
relationship in object-oriented analysis (Fowler and
Scott, 2000)). Synchronousity is thus applicable to
Physical point-to-point consumer designers and to
logical loosely coupled consumer designers. This is
also the case for Asynchronousity. To establish this,
we trace back the affordances of the designer action
and note the semiotic agents whose affordances are
required. We also perform a “factoring” analysis, a
type of analysis afforded by the “modifies”
relationship we introduced, to identify for some
affordances lower level affordances that can be
“factored out”, to leave only higher level affordance
in the ontological dependence chain.
For example, tracing back from the “Wait for
feedback message from provider” designer action of
the “Synchronous Physical Point-to-point Consumer
designer” agent, we find that it is afforded by
“Feedback Message”, “Response to feedback
message from Provider”, “Provider”, “Feedback
message response code”, “Send message routine
call”, “Send service request message from own
physical address to Provider physical address via the
Messaging Service”, “Message”, “Service”,
“Physical Provider address”, “Physical own
address”, “Provider address”, “Own address “,
“Physical Device Address”, “Communication
Device” and “Physical Connection”.
If we trace back from the “Don’t wait for
feedback message from provider” we find that
affordances found differ only with respect to the
following alternatives: “Logical Provider Address”
vs. “Physical Provider Address” and “Logical own
address” vs. “Physical own address”. If these
different preceding affordances are not relevant with
respect to the affordances factoring analyzed (the
wait and not wait for feedback message from
provider operation), then the differences can be
factored out and subsumed into a relevant higher
level affordance such as “Provider Address” and
“Own address”, which then also removes all lower
level dependent affordances. This leaves a common
higher level “thread” of dependent affordances,
which in our case, are link to the consumer designer
semiotic agent only. Factoring analysis also helps in
identifying restructuring opportunities of agent
models to making them more concise by
introducing, moving, redefining and and/or relinking
affordances.
The semiotic agent model in figure 3 therefore
reveals that whether a consumer is involved in a
direct point-to-point integration and uses a provider
physical address, or whether it is loosely coupled
using a logical or symbolic address, has no bearing
on the operational meaning of synchronous and
asynchronous messaging. Equipped with such a
semiotic agent analysis, architects and designers can
clarify what exact operational meaning they have in
mind during design discussion, and make explicit
what level of abstraction they assume
unproblematic, which facilitates architectural design
and reasoning, and helps avoid misunderstandings
and unintended design decisions.
RESOLVING ARTIFACT DESCRIPTION AMBIGUITIES DURING SOFTWARE DESIGN USING SEMIOTIC
AGENT MODELLING
83