-
UML Collaboration Diagrams
Last updated: Friday, December 5, 2025
Published in: CODE Magazine: 2002 - May/June
In this article, Kevin McNeish highlights the value of UML collaboration diagrams as effective tools for illustrating both the dynamic interactions and static relationships between business objects in software design. He contrasts collaboration diagrams with sequence diagrams, emphasizing their unique ability to visualize object relationships and validate static models. Kevin explains the core elements of collaboration diagrams—objects, links, and messages—and discusses their use in representing complex interactions, including iterations, conditionals, and object state changes. Ultimately, he advocates for collaboration diagrams as a complementary perspective that enhances understanding of object collaborations beyond what sequence diagrams alone can offer.
-
UML Sequence Diagrams
Last updated: Thursday, October 9, 2025
Published in: CODE Magazine: 2002 - March/April
In this article, Kevin McNeish explains how UML sequence diagrams document the time-ordered message exchanges that implement use-case logic, describes their core elements (objects, lifelines, messages, focus of control), and shows step-by-step how to create diagrams (including object creation/deletion, recurrence, color/notes) using a checkout example; he argues sequence diagrams clarify object responsibilities, reveal unnecessary interactions, and improve design of process-intensive application logic.
-
UML Class Diagrams
Last updated: Thursday, October 9, 2025
Published in: CODE Magazine: 2002 - January/February
Kevin McNeish introduces UML class diagrams as essential tools for designing well-structured, maintainable application classes, explaining class notation, visibility, and the key relationships—generalization, dependency, association (including multiplicity, aggregation, composition), and realization—while illustrating how abstract and concrete classes, interfaces, and careful modeling produce flexible, extensible business-object families that form a solid foundation for component-based software.

