The UML sequence diagram models the dynamic behavior of a system by depicting object interactions over time. These interactions are expressed as a series of messages between objects. UML sequence diagrams are ideal for elaborating a use case execution in terms of objects from your domain model. One sequence diagram is typically used to represent a single use case scenario or flow of events. The message flow of a sequence diagram matches the narrative of the corresponding use case.
Sequence diagrams are an excellent way to document use case scenarios and refine and synchronize a use case diagram with respect to a domain model. A sequence diagram typically shows a user or actor and the object and components they interact with in the context of a use case execution.
Sequence diagrams aren’t working in ArgoUML as of the release of version v0.14. As an alternative, we suggest using the community edition of Poseidon UML, which is a commercial offering based on ArgoUML. We expect sequence diagrams to be available in the near future (hopefully by the time you read this!).
Whenever necessary use-sequence diagrams are used in the book to refine and validate a use case against the application’s domain model.
Don’t assign operations to a class without first refining complex use cases with sequence or interaction diagrams. By refining what capabilities a given class should have, you avoid the eventual generation of unneeded code. This practice aligns well with test-driven development and XP's You-Ain't-Gonna-Need-It (YAGNI).
Model-driven development is a practice that takes time to master, but the results are well worth the effort. We’ve compiled a list of best practices taken from the literature and from our own experiences to help you get started.
As you prepare for a journey into the J2EE world it’s important to remember that sound design practices—not technology—should drive the development of enterprise applications. Although at specific points you might have to make an implementation decision that’s driven by the shortcomings of a particular technology, you should always keep in mind the greater picture of a solid design based on the problem space rather than the solution space.
In this era of agile methodologies and techniques, many are quick to dismiss software modeling. But as Scott Ambler (http://www. agilemodeling.com) and others have demonstrated, software modeling can be just another weapon in your arsenal of agile methods.
In this chapter you’ve learned a solid set of techniques and with the help of Open Source modeling tools you can make your models more robust and resilient to requirements and technology changes.
1. Craig Larman, Applying UML and Patterns (Prentice Hall PTR, 2001).
2. Edward R. Tufte, The Visual Display of Quantitative Information
3. G.A. Miller, “The magical number seven, plus or minus two: Some 4. Object Management Group, “OMG Unified Modeling Language 5. Craig Larman, Applying UML and Patterns (Prentice Hall PTR, 2001). 6. Jack Greenfield (Rational Software Corporation), “UML Profile For 7. Steve McConnell, “From the Editor,” (IEEE Software, March/April
4. Object Management Group, “OMG Unified Modeling Language
5. Craig Larman, Applying UML and Patterns (Prentice Hall PTR, 2001).
6. Jack Greenfield (Rational Software Corporation), “UML Profile For 7. Steve McConnell, “From the Editor,” (IEEE Software, March/April
7. Steve McConnell, “From the Editor,” (IEEE Software, March/April
8. Jacobson et al, The Unified Software Development Process 9. Coad et al, Java Modeling In Color With UML: Enterprise 10. Kent Beck, Extreme Programming Explained (Addison-Wesley,
9. Coad et al, Java Modeling In Color With UML: Enterprise 10. Kent Beck, Extreme Programming Explained (Addison-Wesley,
10. Kent Beck, Extreme Programming Explained (Addison-Wesley,
11. Scott Ambler et al, Agile Modeling (John Wiley & Sons, 2002). For
12. Ambler et al, Agile Modeling.
13. ArgoUML online user manual, Chapter 8.
14. R. Chandra, A. Gupta, and J. L. Hennessy, “Integrating
15. Martin Fowler, Patterns of Enterprise Application
blog comments powered by Disqus