The requirments say to submit one sequence diagram per use case. That sounds to me like a high-level diagram. In practice I'd only create a "system sequence diagram" where the system is a black box, but I guess that's too high-level for the assignment.
How much detail should the sequence diagram contain? What aspects need to be revealed? Do all the messages have to be in the form of a method (what about user input)?
Good question! Something I struggled with long and hard. Here is what I did and why (off course, I reserve the right to be wrong!):
The sequence diagrams should be at a semi-high-level. I did my sequence diagrams after doing the class diagram and the component diagram. Immediately, I was faced with the choice of whether to base my sequence diagrams on the class diagram showing the interaction of the domain classes which is at a more conceptual level, or the component diagram showing the reusable interaction of the components which is closer to the implementation level (mixing the two within the same sequence diagram just didn't feel right). Mind you, people have taken both the approaches and done quite well.
I decided to do six sequence diagrams instead of the required four. The extra two diagrams were for the Login and Create Profile Use Cases. I did that for the following two reasons: one, I wanted to demonstrate my understanding of the reusable components' interaction using the component diagram, and two, both of these Use Cases are pre-requisites for the four required Use Cases, so it made sense for me to do those to add value to my solution knowing fully well that you don't get extra credit for the optional work. The four required sequence diagrams were done using the class diagram as a basis, i.e., they showed the interaction of object instances of the domain classes. I think that this is more appropriate since it is at a conceptual level. Now, how detailed should they be? The exam doesn't require us to show each and every class memeber variable and methods. It explicitly states that this is not necessary. I interpreted that to mean that you don't have to get down to the detailed design level. I have only shown the more important methods/attributes at the class level and that too, without any parameters (for the methods). By definition then, I am staying at a conceptual level. Therefore, it doesn't make much sense to be more detailed in the sequence diagram than the class diagram which was used as a basis for creating them. My messages amongst the classes were more in english than in method calls. The two optional diagrams that I drew were more detailed since they used the component diagram as a basis.
Having said all this, I may not be right. I have submitted my assignment and am awaiting the results. Hope this helps. Regards. Bharat [ December 21, 2004: Message edited by: Bharat Ruparel ]
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop