Newer
Older
labs / tiddlers / content / labs / lab07 / _Labs_07_Sequence Diagram.md

To give you an idea of what we are expecting for the sequence diagrams for milestone 1, here is an example of the "user selects a student to update" use case.

{{/Labs/07/Diagrams/Sequence Diagram}}

Click <> for a larger version of this diagram.

You may want to revisit the <> from INFO 201.

Feel free to use this code as the basis for your diagrams.

@startuml

' === Style Tweaks ===

skinparam {
  Style StrictUML
  RoundCorner 5
  ParticipantPadding 10
  Padding 2
  SequenceStereotype {
    Font {
      Size 11
      Style plain
    }
  }
  Database {
    BorderColor #A80036
  }
}


' === Actors / Participants

actor "User" as user
participant "view-students" as viewPage << JSP Page >>
participant "ViewStudentServlet" as viewServlet <<Servlet>>
participant "view-student-details" as editPage << JSP Page >>
participant "Session" as session
participant "StudentJdbiDAO" as dao << DAO >>
database "Database" as db


' === Interactions ===

user -> viewPage++ : clicks "Update" button

viewPage -> viewServlet++ : POST student ID

viewServlet -> dao++ : getByID(id)
dao -> db++ : select * from student\nwhere id = :id
return result
return student

viewServlet -> session++ : storeAttribute("student", student)
return

viewServlet -> editPage++ : redirect
editPage -> session++ : getAttribute("student")
return student

editPage -> editPage : add student\ndetails to form

editPage -->user : student details ready to update

@enduml

Note --- if you have not taken INFO 201 then you will probably not have encountered PlantUML before. You can use the following VS Code plugin to create PlantUML diagrams:

https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml