Software Engineering Methodologies

UML Sequence Diagrams

Michael L. Collard, Ph.D.

Department of Computer Science, The University of Akron

4+1 Architectural View Model

Logical View

  • Describes the system's functionality from the user's perspective.
  • Captures abstract data types and their relationships.
  • Typically represented using a UML Class diagram.

Development View

  • Offers a detailed insight into the system from a programmer's vantage.
  • Addresses the module organization, source code structure, and software architecture.
  • Represented using a UML Package diagram.

Physical View

  • Concerns the physical hardware and topology on which the system operates.
  • Provides a system engineer's perspective on system topology and distribution.
  • Illustrated through a UML Deployment diagram.

Scenarios

  • Depicts sequences of interactions among objects and processes.
  • Demonstrates how various system elements collaborate to execute specific functionalities.
  • Illustrated with UML Use Case diagrams.

Process View

  • Focuses on the dynamic behavior and concurrency of the system.
  • Emphasizes the system's run-time behavior.
  • Commonly illustrated using a UML Sequence diagram.

UML Sequence Diagrams

  • Depicts sequences of interactions among objects and processes.
  • Demonstrates how various system elements collaborate to execute specific functionalities.
  • Illustrated with UML Use Case diagrams.

UML Sequence Diagrams

  • Objective: Primarily captures the flow of messages (like method calls and return messages) between different objects over time.
  • Lifelines: Represent objects or actors. Displayed as dashed vertical lines.
  • Messages: Represent interactions between lifelines. Displayed as arrows between these lifelines.
  • Activation bars: Depict the period an object is active or in control.
  • Time Sequence: The vertical space represents time. Events are read from top to bottom, illustrating the sequence of interactions.

Benefits:

  • Offers clarity about the order of object interactions
  • Provides a concise view of system dynamics and object roles during specific scenarios
  • Facilitates debugging by visualizing the expected system behavior.

Drawing Tool Considerations

  • User-friendliness: Should have an intuitive interface
  • Feature set: Should support advanced UML constructs and customizations
  • Collaboration capabilities: Enables team-based designing
  • Integration: Ability to integrate with other tools, platforms, or version control systems
  • Export/Import: Provides multiple export/import options for various formats and resolutions

Popular Tools

  • Draw.io (or diagrams.net)
  • Lucidchart
  • Microsoft Visio
  • StarUML
  • PlantUML (text-based)
  • sequencediagram.org

Sequence Diagram: Objects

ObjectsClientLibrary

Sequence Diagram: Call

CallClientLibrarycalculate()

Sequence Diagram: Request/Response

Request/ResponseClientLibraryrequest()calculate()response()

Sequence Diagram: Activation

ActivationClientLibraryrequest()calculate()response()

Drawing Language