Tanager

Sequence Diagram Specification

Version 4.6 – Elaboration Phase 4


Table of Contents

1.         Introduction. 5

1.1.    Purpose  5

1.2.    Scope  5

1.3.    Definitions, Acronyms, and Abbreviations  5

1.4.    Diagrams  5

1.5.    References  5

1.6.    Overview   5

2.         Sequence Diagrams. 6

2.1.    Power On  6

2.1.1.    Music Listener Tells the System to Power On  6

2.1.2.    System State Initializes to a Default State  8

2.1.3.    Music Player Writes Song Collection  8

2.1.4.    Create Date Downloaded Playlist 9

2.1.5.    Create Random Playlist 11

2.2.    Power Off  11

2.2.1.    Music Listener Tells the System to Power Off  11

2.3.    Select Playlist Type  12

2.3.1.    Music Listener Requests Playlist Types From  the System   12

2.3.2.    Music Listener Tells  the System They Selected a Playlist Type  12

2.4.    Play Music  14

2.4.1.    Music Listener Tells the System to Play  14

2.4.2.    Play Song  16

2.4.3.    Song Starts Playing  18

2.4.4.    Update Playing Song  20

2.4.5.    Playing Song Ends  22

2.5.    Pause Music  24

2.5.1.    Music Listener Tells the System to Pause  24

2.5.2.    Song is Paused  26

2.5.3.    Get Last Known Playing Song  28

2.6.    Stop Music  28

2.6.1.    Music Listener Tells the System to Stop  28

2.6.2.    Music Player tells the Song to Stop  30

2.6.3.    Song is Stopped  30

2.7.    Skip to the Next Song  32

2.7.1.    Music Listener Tells the System to Skip to the Next Song  32

2.7.2.    Song Starts Playing  34

2.8.    Restart the Current Song  34

2.8.1.    Music Listener Tells the System to Restart the Current Song  34

2.8.2.    Song Starts Playing  36

2.9.    Skip to the Previous Song  36

2.9.1.    Music Listener Tells the System to Skip to the Previous Song  36

2.9.2.    Song Starts Playing  38

2.10.  Volume Adjustments  38

2.10.1.      Music Listener Gets the System Volume  38

2.10.2.      Music Listener Sets the System Volume  38

2.11.  Download a Song  40

2.11.1.      Playlist Administrator Tells the System to Download a Song  40

2.12.  Delete a Song  40

2.12.1.      Playlist Administrator Retrieves the Playlist From the System   40

2.12.2.      Playlist Administrator Tells  the System to Delete a Song  40

2.13.  View Playlist 42

2.13.1.      Playlist Administrator Retrieves the Playlist From the System   42

3.         UI Sequence Diagrams. 42

3.1.    Power On  42

3.1.1.    UI Displays Initializing Message  42

3.1.2.    UI Displays Ready Message  43

3.2.    Power Off  44

3.2.1.    User Presses the Power Button  44

3.3.    Select Playlist Type  45

3.3.1.    User Selects Select Playlist Type From the Main Menu  45

3.3.2.    User Selects a Playlist Type  46

3.4.    Play Music  47

3.4.1.    User Presses Play Button  47

3.4.2.    Update UI With Playing Song  48

3.4.3.    Display Song Info  49

3.4.4.    Last Song in the Playlist Ends, and the System Goes Back to Ready  51

3.5.    Pause Music  51

3.5.1.    User Presses Pause Button  51

3.5.2.    Update UI With Paused Song  51

3.6.    Stop Music  52

3.6.1.    User Presses Stop Button  52

3.6.2.    Music is Stopped, and the System Goes Back to Ready  53

3.7.    Skip to the Next Song  53

3.7.1.    User Presses Right Button  53

3.7.2.    Update UI with Next Song  54

3.7.3.    Skipped Past the End of the Playlist, and the System Goes Back to Ready  55

3.8.    Restart the Current Song  55

3.8.1.    User Presses Left Button  55

3.8.2.    Update UI with Restarted Song  56

3.9.    Skip to the Previous Song  57

3.9.1.    User Presses Left Button  57

3.9.2.    Update UI with Previous Song  57

3.10.  Volume Adjustments  58

3.10.1.      User Presses Up Button  58

3.10.2.      User Presses Down Button  59

3.11.  Download a Song  60

3.11.1.      User Selects Download a Song From the Main Menu  60

3.12.  Delete a Song  62

3.12.1.      User Selects Delete Song from the Main Menu  62

3.12.2.      User Selects Song to Delete  62

3.13.  View Playlist 64

3.13.1.      User Selects View Playlist from the Main Menu  64

3.13.2.      Create Playlist Viewer  64

3.13.3.      Display Scrollable Pane  66

3.13.4.      User Presses Left Button to Return to the Main Menu  68

3.13.5.      Move to Previous Pane  68

3.14.  Enter Menus  70

3.14.1.      User Presses Menu Button  70

3.14.2.      Enter Menus  70

3.15.  Exit Menus  72

3.15.1.      User Presses Menu Button  72

3.15.2.      Exit Menus  72

4.         Revision History. 74


 

Sequence Diagram Specification

1.                   Introduction

1.1.              Purpose

This document provides the detailed Sequence Diagrams for the Tanager project.  Sequence Diagrams will be generated for all main success scenarios, frequently-used scenarios, and complex scenarios.  The section numbering for the Sequence Diagrams will match that used in the Tanager System Sequence Diagram Specification and the Tanager Use Case Specification.  This will make it easier for the reader to match the Sequence Diagrams with the SSDs and the Use Cases.

1.1.              Scope

This document describes the Sequence Diagrams for the Tanager project.

1.2.              Definitions, Acronyms, and Abbreviations

A complete list of definitions, acronyms, and abbreviations can be found in the Tanager Glossary.

1.3.              Diagrams

All diagrams in this document were generated using Gentleware’s Poseidon for UML tool.

1.4.              References

Fowler, Martin.  2004.  UML Distilled.  Boston MA: Addison-Wesley.  09 August, 2005 < http://www.awprofessional.com/bookstore/product.asp?isbn=0321193687&rl=1>.

Larman, Craig.  2005.  Applying UML and Patterns.  Westford, MA: Prentice Hall.  09 August, 2005 <http://www.phptr.com/title/0131489062>.

Poseidon for UML. 2005.  Gentleware AG.  20 January, 2007 <http://www.gentleware.com/uml-software-pe.html>.

Tanager Use Case Specification. 2007.  Bob Lavey.  19 January, 2007 <TanagerUseCaseModel.htm>.

Tanager System Sequence Diagram Specification. 2007.  Bob Lavey.  25 January, 2007 <TanagerSystemSequenceDiagramSpecification.htm>.

Tanager Class Model. 2007.  Bob Lavey.  30 January, 2007 <TanagerClassModel.htm>.

1.5.              Overview

This document provides a detailed view of the internal interactions between software objects in the Tanager system.  The sequence diagrams contained in this document will describe how the class objects from the Tanager system will interact to complete the objectives described in the Use Cases.


2.                   Sequence Diagrams

2.1.              Power On

2.1.1.         Music Listener Tells the System to Power On

 (click on image for a scaleable version)

2.1.2.         System State Initializes to a Default State

(click on image for a scaleable version)

2.1.3.         Music Player Writes Song Collection

 (click on image for a scaleable version)

2.1.4.         Create Date Downloaded Playlist

 (click on image for a scaleable version)

2.1.5.         Create Random Playlist

 (click on image for a scaleable version)

 

2.2.              Power Off

2.2.1.         Music Listener Tells the System to Power Off

 (click on image for a scaleable version)

 

2.3.              Select Playlist Type

2.3.1.         Music Listener Requests Playlist Types From  the System

(click on image for a scaleable version)

2.3.2.         Music Listener Tells  the System They Selected a Playlist Type

(click on image for a scaleable version)

 

2.4.              Play Music

2.4.1.         Music Listener Tells the System to Play

(click on image for a scaleable version)

2.4.2.         Play Song

(click on image for a scaleable version)

2.4.3.         Song Starts Playing

(click on image for a scaleable version)

2.4.4.         Update Playing Song

(click on image for a scaleable version)

2.4.5.         Playing Song Ends

(click on image for a scaleable version)

 

2.5.              Pause Music

2.5.1.         Music Listener Tells the System to Pause

(click on image for a scaleable version)

2.5.2.         Song is Paused

(click on image for a scaleable version)

2.5.3.         Get Last Known Playing Song

(click on image for a scaleable version)

 

2.6.              Stop Music

2.6.1.         Music Listener Tells the System to Stop

(click on image for a scaleable version)

2.6.2.         Music Player tells the Song to Stop

(click on image for a scaleable version)

2.6.3.         Song is Stopped

(click on image for a scaleable version)

 

2.7.              Skip to the Next Song

2.7.1.         Music Listener Tells the System to Skip to the Next Song

(click on image for a scaleable version)

2.7.2.         Song Starts Playing

This is identical to the scenario diagram of the same name in Section 2.4.3.

 

2.8.              Restart the Current Song

2.8.1.         Music Listener Tells the System to Restart the Current Song

(click on image for a scaleable version)

2.8.2.         Song Starts Playing

This is identical to the scenario diagram of the same name in Section 2.4.3.

 

2.9.              Skip to the Previous Song

2.9.1.         Music Listener Tells the System to Skip to the Previous Song

(click on image for a scaleable version)

2.9.2.         Song Starts Playing

This is identical to the scenario diagram of the same name in Section 2.4.3.

 

2.10.           Volume Adjustments

2.10.1.     Music Listener Gets the System Volume

(click on image for a scaleable version)

2.10.2.     Music Listener Sets the System Volume

(click on image for a scaleable version)

 

2.11.           Download a Song

2.11.1.     Playlist Administrator Tells the System to Download a Song

(click on image for a scaleable version)

 

2.12.           Delete a Song

2.12.1.     Playlist Administrator Retrieves the Playlist From the System

This is identical to the scenario diagram of the same name in Section 2.13.1.

 

2.12.2.     Playlist Administrator Tells  the System to Delete a Song

(click on image for a scaleable version)

 

2.13.           View Playlist

2.13.1.     Playlist Administrator Retrieves the Playlist From the System

(click on image for a scaleable version)

 

3.                   UI Sequence Diagrams

3.1.              Power On

3.1.1.         UI Displays Initializing Message

 (click on image for a scaleable version)

3.1.2.         UI Displays Ready Message

 (click on image for a scaleable version)

 

3.2.              Power Off

3.2.1.         User Presses the Power Button

 (click on image for a scaleable version)

 

3.3.              Select Playlist Type

3.3.1.         User Selects Select Playlist Type From the Main Menu

(click on image for a scaleable version)

3.3.2.         User Selects a Playlist Type

(click on image for a scaleable version)

 

3.4.              Play Music

3.4.1.         User Presses Play Button

(click on image for a scaleable version)

3.4.2.         Update UI With Playing Song

(click on image for a scaleable version)

3.4.3.         Display Song Info

(click on image for a scaleable version)

3.4.4.         Last Song in the Playlist Ends, and the System Goes Back to Ready

This is similar to the UI Displays Ready Message scenario diagram of the same name in Section 3.1.2.

 

3.5.              Pause Music

3.5.1.         User Presses Pause Button

(click on image for a scaleable version)

3.5.2.         Update UI With Paused Song

(click on image for a scaleable version)

 

3.6.              Stop Music

3.6.1.         User Presses Stop Button

(click on image for a scaleable version)

3.6.2.         Music is Stopped, and the System Goes Back to Ready

This is similar to the UI Displays Ready Message scenario diagram of the same name in Section 3.1.2.

 

 

3.7.              Skip to the Next Song

3.7.1.         User Presses Right Button

(click on image for a scaleable version)

3.7.2.         Update UI with Next Song

(click on image for a scaleable version)

3.7.3.         Skipped Past the End of the Playlist, and the System Goes Back to Ready

This is similar to the UI Displays Ready Message scenario diagram of the same name in Section 3.1.2.

 

3.8.              Restart the Current Song

3.8.1.         User Presses Left Button

(click on image for a scaleable version)

3.8.2.         Update UI with Restarted Song

(click on image for a scaleable version)

 

3.9.              Skip to the Previous Song

3.9.1.         User Presses Left Button

This is identical to the scenario diagram of the same name in Section 3.8.1.

 

3.9.2.         Update UI with Previous Song

(click on image for a scaleable version)

 

3.10.           Volume Adjustments

3.10.1.     User Presses Up Button

(click on image for a scaleable version)

3.10.2.     User Presses Down Button

(click on image for a scaleable version)

 

3.11.           Download a Song

3.11.1.     User Selects Download a Song From the Main Menu

(click on image for a scaleable version)

 

3.12.           Delete a Song

3.12.1.     User Selects Delete Song from the Main Menu

(click on image for a scaleable version)

3.12.2.     User Selects Song to Delete

(click on image for a scaleable version)

 

3.13.           View Playlist

3.13.1.     User Selects View Playlist from the Main Menu

(click on image for a scaleable version)

3.13.2.     Create Playlist Viewer

(click on image for a scaleable version)

3.13.3.     Display Scrollable Pane

(click on image for a scaleable version)

3.13.4.     User Presses Left Button to Return to the Main Menu

(click on image for a scaleable version)

3.13.5.     Move to Previous Pane

(click on image for a scaleable version)

 

3.14.           Enter Menus

3.14.1.     User Presses Menu Button

(click on image for a scaleable version)

3.14.2.     Enter Menus

(click on image for a scaleable version)

 

3.15.           Exit Menus

3.15.1.     User Presses Menu Button

(click on image for a scaleable version)

3.15.2.     Exit Menus

(click on image for a scaleable version)

 

4.                   Revision History

Date

Version

Description

Author

15 Aug, 2006

1.0 – Elaboration Phase 1

Initial Revision.  Added Power On main success scenario diagram.

Bob Lavey

14 Sep, 2006

1.1 – Elaboration Phase 1

Added Power Off main success scenario diagram.

Bob Lavey

17 Oct, 2006

1.2 – Elaboration Phase 2

Added Download a Song main success scenario

Bob Lavey

03 Dec, 2006

2.0 – Elaboration Phase 2

Added Play Music and Pause Music scenario diagrams

Bob Lavey

22 Dec, 2006

3.0 – Elaboration Phase 3

Refactored menu system and added State Pattern, which caused changes in many scenario diagrams.

Bob Lavey

30 Dec, 2006

3.1 – Elaboration Phase 3

Added Enter Menus and Exit Menus scenario diagrams.

Bob Lavey

31 Dec, 2006

3.2 – Elaboration Phase 3

Added View Playlist scenario diagrams.

Bob Lavey

01 Jan, 2007

3.3 – Elaboration Phase 3

Added Stop Music scenario diagrams.

Bob Lavey

06 Jan, 2007

3.4 – Elaboration Phase 3

Modified Download a Song scenario diagram to add support for saving/retrieving the last known downloaded song’s path.

Bob Lavey

06 Jan, 2007

3.5 – Elaboration Phase 3

Added View Playlist scenario diagrams.

Bob Lavey

12 Jan, 2007

3.6 – Elaboration Phase 3

Updated nearly all of the scenario diagrams to split the application layer from the UI layer.  Included UI scenario diagrams in section 3.

Bob Lavey

13 Jan, 2007

3.7 – Elaboration Phase 3

Added Delete Song scenario diagrams.

Bob Lavey

14 Jan, 2007

3.8 – Elaboration Phase 3

Modified Play Song 2.4.2 scenario diagram to add volume setting.

Bob Lavey

15 Jan, 2007

3.9 – Elaboration Phase 3

Added Volume Adjustments scenario diagrams.

Bob Lavey

19 Jan 2007

3.10 – Elaboration Phase 3

Updated based on Dr. Leavens’ review.  Removed the system from the Enter Menus and Exit Menus scenario diagrams, since they’re UI use cases.

Bob Lavey

20 Jan 2007

3.11 – Elaboration Phase 3

Updated based on Dr. Leavens’ review.  Modified scenario diagrams whose first message was not from the top left corner.

Bob Lavey

17 Jan, 2007

4.0 – Elaboration Phase 4

Added Select Playlist Type scenario diagrams.

Bob Lavey

20 Jan, 2007

4.1 – Elaboration Phase 4

Updated scenario diagrams with CStatus name change (from CSystemState).

Bob Lavey

21 Jan, 2007

4.2 – Elaboration Phase 4

Added Restart Current Song scenario diagrams.

Bob Lavey

25 Jan, 2007

4.3 – Elaboration Phase 4

Added Skip to Previous Song scenario diagrams.

Bob Lavey

25 Jan, 2007

4.4 – Elaboration Phase 4

Refactored Pause, Stop, and Skip to Previous Song diagrams due to changing the name of the CSong pause() method to stop().

Bob Lavey

26 Jan, 2007

4.5 – Elaboration Phase 4

Added Skip to Next Song scenario diagrams.

Bob Lavey

30 Jan, 2007

4.6 – Elaboration Phase 4

Updated various scenario diagrams based on refactoring of CDisplayPane’s text area.

Bob Lavey