"Yes Dear, we should communicate more"

Communication is what the Sequence Diagram is all about. This document maps-out how each class or object communicates with other classes in the Use Case or code package. When planning or development gets this far, you can easily see to what degree your Use Cases are being followed. Now, at the very latest, is the time you should update them. If a case has changed, determine if the deviation was purposeful or due to something the developer didn't understand. You must clarify the issue as soon as possible. You don't want to hold-up the development process, but you also can't allow a feature to be built incorrectly. If it was purposeful, update the Use Case.

At this point your head could be on the block. Simply maintain your posture, turn-on that charm and allow your personality to smooth things over. If you find you must change the Use Case, ensure all the signatories are notified, and get at least an email confirmation that they understand the reason for the deviation and agree with it.

As with the Class Diagram, you may be required to develop the Sequence Diagrams from existing code. There are a couple of tools that help a lot here. Visual Studio is great for creating these diagrams from managed code. Open the project file, choose "View"? from the main menu and choose "Object Browser"? from the drop-down menu. You can also simply use the short-cut Ctrl + Alt + J.

In the "Object Browser"? click on the Project Name - this shows a complete list of all the assemblies' contents, from interfaces to classes and so on. You can drill-down into the application as deep as you wish. Pretty cool! Click your way through the application's classes paying attention to the comments window. This window gives you all the information about the class you need to know. If the developer used XML comments to document his classes, a summary will also appear in the comments window. Fill-out your Sequence Diagram as you click through the list. Life doesn't get any better.

Open Source web applications are a bit more interesting in that some projects often don't use a lot of classes. They tend to rely more on imperative or functional programming styles. (Of course this depends on what language the solution was written in.) If you are required to map-out specific features, the Sequence Diagram is still a good tool.

Additionally, Firefox has a great extension called the Web Developer Toolbar. This allows you to easily identify and manipulate parts of the user interface, which normally could be hassle to look through manually. You can make temporary changes to the CSS and see how it influences the page in almost-real-time, or identify portions of HTML markup. You can even have the extension show you the identifiers of each element in the markup, draw a border around block-level elements, show a list of images embedded in the page, and more. A real gem.

Here's one last, rather trivial tip. Depending on what language you're using, reading code from right to left helps pay attention to how the expression relates to itself. Consider this piece of C# code:

// this.serverInformation is an instance of the ServerInfo class.
XMLDocument xmldoc = new RemoteXMLDocument(new FTPSocket(this.serverInformation), SocketSecurity.None, new IPv6Address(this.serverInformation.ipv6Address));

Reading it backwards, we see that we're opening a socket using IPv6, which is unsecured, to an FTP server using information stored in the class, which is used to fetch an XML document that is going to be assigned to the xmldoc XML Document instance.

Articles & Additional Resources

These are some helpful locations where you can gain a better understanding of Sequence Diagrams.
Sequence Diagram article on Wikipedia
UML 2 Sequence Diagrams by Scott Ambler
Download the Web Developer Toolkit for Fire Fox

Example

Here is an example of a Sequence Diagram in progress. It is not filled-out completely because the system was still in development and the classes were not finalized. Working in "fluid"? environments is one reason there's hardly a more exciting job than software development.
Sequence Diagram Example
Syndicate content
They Say

His (Larry's) assistance in administrating the team effort and analytical work was
of the highest caliber. In addition, his contributions to the development effort
were an integral part of the project's success...

Dwight - Director of eCommerce

Larry proved to be "solutions" oriented. On several occasions, Larry identified
obstacles in the path of our goal to deploy an eCommerce solution and diligently
and independently worked with software vendors and consultants to find solutions.

Mike - Director of eCommerce Strategy

Larry is an innovative self-starter, who rarely needs supervision. He typically
exceeds expectations and enjoys the challenges associated with installing new
technology... Larry is an invaluable asset to any Information Technology team and I
highly recommend him.

Bob - Partner, Retired KPMG LLC

I've found his e-commerce analysis documents (flowcharts, diagrams, etc.) and use
cases thorough and clear. Larry was very conscientious and also has the invaluable
ability to communicate and work well with both users and developers.

Ward - Software Engineer

His documents were all very concise, even though the work he was documenting was
often difficult to describe, even to the developers... We often wished we "had
Larry" on other projects that were getting hard to control.

Dave - Software & Database Developer

His documentation is beyond compare in it's detail, accuracy and ease of reference.
His thorough documentation and notes brought calm to the chaos on many an
occasion... He is a self-starter and worked many a late night to ensure the project
stayed on course. I would love to work with Larry again.

Tom - Sr. Software Developer