Are your exchanges out control? How to fix them.

Recently, we had a customer with the following problem: In UAF, OperationalExchanges and ResourceExchanges are piling up. In UAF, because we are modeling the Enterprise, models might start to get out of control. With dozens of nodes that talk with each other for differing reasons, the number of realized flows (in UAF these are Operational/Resource Exchanges but it is similar in SysML) start to get big.

For example, here are two performers exchanging four messages. Imagine dozens of nodes and hundreds of messages. What if I want to make a view for a specific stakeholder that only shows message A1?

With this design, there are few choices when looking at the IBD (a connectivity diagram in UAF) as modeled as a connector with multiple exchanges. We could manipulate the realization to show what we want to see. It is easy for the given example but difficult for a complex diagram with many messages/nodes. Also, exchange realization is not a visualization (a diagram option) but has semantic meaning (it is part of the model data). Because of these facts, the tool fights you to maintain one realization in the context where the IBD (connectivity diagram) structure resides.

 

Since the exchange is also part of the model, a structure or taxonomy diagram (a BDD in SysML) can show it. We can use the Legend for each set of messages for specific stakeholders. Note that when you create dynamic legends, you can use the package structure, stereotypes, or other information to automatically apply legends to specific stakeholders and avoid a lot of manual labor to annotate the diagram.

https://docs.nomagic.com/display/MD2024x/Creating+Legends 

 

 

All Exchanges
Filtered

A related cure is to refactor your model. Create separate connections per stakeholder. This allows you to use the Legend again to hide/show a specific configuration. Using the legend filter capability, we can show the stakeholder-specific configuration. Related to this

All Elements
filtered

Another method is to use ports and sub-ports. The above, we use another feature that summarizes the connections. Using templates, you could use variations of ports and/or supports to lay out the structure for a specific stakeholder.

UAFExchange 

In addition, there is Semantic Zoom. To use it in UAF connectivity diagrams, refactor the connectivity diagram type to SysML IBD (it can probably used in UAF directly by customizing the diagram, but this is an easy workaround to see Semantic Zoom on the smart manipulator). The result is a diagram with the paths but not the specifics. This lets you see the network without the clutter of multiple connectors.

https://docs.nomagic.com/display/SYSMLP190/Displaying+actual+Connectors+and+ports 

To summarize, there are a few methods to get control and enable the diagrams to be tailored to stakeholders dynamically. These techniques apply to UAF or SysML. The patterns are useful any time there are multiple exchanges between elements and are filtered for reasons of simplicity or to focus on a specific view to meet a concern of the users or stakeholders. 

If you have other ideas, let me know in the comments.