These days I am thinking of a way to relate sequence diagrams to goal models. First, I’d like to increase the understandability of protocol specification, then I am looking for ways to verify the protocol, or at least do some trade-off or security analysis on it. Even alternative ways to perform a part of a protocol could be analyzed. As I said, sequence diagrams don’t say why we send a message or a value, and why we encrypt them. Goal models answer these questions, but they can’t express the sequence.
I guess I have told this story before. Today, I found a new way to express sequences of activities, events, and branches by Use Case Maps models. I don’t want to go into details of this modeling approach. Just, I’d like to mention they don’t express what messages are sent and received by components and activities. That’s a very considerable lack for expressing protocols, specially security and authentication ones.
In sum, it seems when we are modeling, we are losing to express some aspects to express some other ones, unconsciously we are making trade-offs between expressiveness from competing points of views. One may wish to have a comprehensive, mother, complete model, that expresses the whole aspects: goals, sequences, messages in my case. I am wondering, that ideal, and dreamy modeling approach, would result in very complicated models.
May be abstracting concepts from each other is a good thing. Abstracting temporal aspects from goals might be a good choice if having them both together is just not readable. However, there should be mechanisms to relate these two views of the system together easily. Even there should be ways to view a fragment of the system from the point of view of combination of more than one abstractions: for example, looking at a limited portions of the system from goal and temporal aspect.