We use Sequence Diagrams extensively to detail our designs. We run into several problems with EA and sequence diagrams, as illustrated by the following example:
1. While creating a sequence, I'll discover the need for a method, GetCategoryList( bool cacheList ).
2. I'll use this method in a sequence diagram, and change the argument text so that the message reads as:
GetCategoryList( cacheList := false )
3. I'll create several sequences, using the above pattern and appropriate value for where cacheList appears.
4. I'll send these diagrams off to be reviewed and implemented.
5. Testing will find some sequence variation that requires an alternative flow to correct a fault with the use case.
6. I'll design an alternate flow, and realize that I need additional parameters, say:
GetCategoryList( bool cacheEntry, out int cacheEntryCount, out WarningBits warnings )
7. As soon as I update GetCategoryList, EA destroys all those nice arg text values that were used in all those other sequences. If you go look at those other sequences, the messages now read:
GetCategoryList( cacheEntry, cacheEntryCount, warnings )
Someone who needs to know whether cacheEntry should be passed in as true or false is sort of screwed -- they either need to try to figure out original intent, or send it back to the developer.
Is there...
A. A way around this problem?
B. A way to figure out which sequence diagrams a particular method is used on.
- at least worst case, I can open all sequences that use a particular method, get a snapshot, add the parameter, then correct all the diagrams?
C. Any other ways to work around this deficiency?
- I could attach a note to the method to specify parameters, rather than use the argument text field. This is ugly, but at least it works. This looks like, after all the steps above, as:
GetCategoryList( cacheEntry, cacheEntryCount, warnings ) ---- [NOTE: "Set cacheEntry := false" ]
D. Any plans to correct this problem in future EA versions? It should not be touching text values I have spent time to manually add, even if it doesn't quite match the message signature. It would be nice to give me a warning that some don't match, and extra nice if it popped up a dialog that would let me navigate to each diagram that needs to be corrected.
--
Trent