$30 off During Our Annual Pro Sale. View Details »

CSE563 Lecture 23

CSE563 Lecture 23

Software Requirements and Specification
Final Project
(202204)

Javier Gonzalez-Sanchez
PRO

September 07, 2021
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSE 563
    Software Requirements and Specification
    Lecture 23: Final Project
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    javiergs.engineering.asu.edu | javiergs.com
    PERALTA 230U
    Office Hours: By appointment

    View Slide

  2. jgs
    Fall 2021 | 00000001
    Agenda
    § Monday 11/21
    § Wednesday 11/23
    § Monday 11/28
    § Wednesday, 11/30 – Full Review
    § Monday, December 5 - Final Exam
    Assignment 06

    View Slide

  3. jgs
    Fall 2021 | 00000001
    It is This Time of the Semester When …

    View Slide

  4. jgs
    Fall 2021 | 00000001
    It is This Time of the Semester When …
    § Do NOT be a Grade Grubber
    § Grading is done by applying the same policies to all students as it
    is described in the syllabus.
    § It is unethical to bring to your instructor's attention the possible
    impact of your course grade on your plans, including graduation,
    scholarships, jobs, etc.
    Do not send requests to your
    instructor asking for a grade you
    did not earn with your work.

    View Slide

  5. jgs
    Final Project
    Assignment 06

    View Slide

  6. jgs
    Fall 2021 | 00000001
    Team
    You can work in a team
    of maximum
    6
    team members
    You should have a TEAM by NOW

    View Slide

  7. jgs
    Fall 2021 | 00000001
    Instructions
    § A project with Taiga working in a team
    § Be careful with academic integrity; several cases of plagiarism are been
    detected
    § ALL cases will be reported to the Dean’s Office, and a grade of zero will be
    given.

    View Slide

  8. jgs
    Fall 2021 | 00000001
    Instructions
    § User Stories in Taiga (Backlogs)
    § Sprint(s)
    § Tasks and their responsible (Taskboard)
    § Daily report (Burndown Chart)
    § Source Code
    § JavaDoc (Classes and Methods)
    § UML Class Diagram (Recommended but not mandatory). If you create one,
    include it in your submission.

    View Slide

  9. jgs
    Fall 2021 | 00000001
    User Interface
    § A GUI with a menu bar
    (Use a JMenu)
    § Two items: File and
    About
    § About is Easy, will
    open a dialog box
    with your team
    information.
    § File menu is the
    important one
    Jmenu Tutorial
    https://docs.oracle.com/javase/tutorial/uiswing/components/menu.html

    View Slide

  10. jgs
    Fall 2021 | 00000001
    File Menu
    Main functionalities:
    • Load a roster
    • Add attendance
    • Save
    • Plot Data

    View Slide

  11. jgs
    Fall 2021 | 00000001
    Load a Roster
    • Ask the user for a
    File path (Use a
    JFileChooser)
    • The file will be a
    CSV (Comma Separated
    Values) file.
    • Read the file and
    load the data into a
    data structure (your
    choice)
    JFileChooser Tutorial:
    https://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html
    How to Read CSV File in Java
    https://www.tutorialspoint.com/how-to-read-the-data-from-a-csv-file-in-java

    View Slide

  12. jgs
    Fall 2021 | 00000001
    Load a Roster
    • Ask the user for a
    File path (Use a
    JFileChooser)
    • The file will be a
    CSV (Comma Separated
    Values) file.
    • Read the file and
    load the data into a
    data structure (your
    choice)
    JFileChooser Tutorial:
    https://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html
    How to Read CSV File in Java
    https://www.tutorialspoint.com/how-to-read-the-data-from-a-csv-file-in-java

    View Slide

  13. jgs
    Fall 2021 | 00000001
    Roster File
    /
    /
    /
    • The file does not
    have headers (orange
    line). Added only as
    a reference.
    • 4 fields per row

    View Slide

  14. jgs
    Fall 2021 | 00000001
    Load a Roster
    • Once the data is
    loaded, visualize it
    on the screen using a
    Jtable
    • Add your JTable in a
    JScrollPane, you will
    need scrollbars, both
    horizontal and
    vertical
    Jtable Tutorial
    https://www.javatpoint.com/java-jtable
    Dinamically Updating a JTable
    https://stackoverflow.com/questions/24918884/dynamically-updating-jtable

    View Slide

  15. jgs
    Fall 2021 | 00000001
    Add Attendance
    • Ask the user for a
    Directory path (Use a
    JFileChooser)
    • In the Directory, there
    will be CSV (Comma
    Separated Values)
    file(s) – one or more!
    • Each file has a name
    like this:
    “20221121 attendance.csv”
    • Read the file and load
    the data into a data
    structure
    • Remember the date

    View Slide

  16. jgs
    Fall 2021 | 00000001
    Add Attendance
    • Ask the user for a
    Directory path (Use a
    JFileChooser)
    • In the Directory, there
    will be CSV (Comma
    Separated Values)
    file(s) – one or more!
    • Each file has a name
    like this:
    “20221121 attendance.csv”
    • Read the file and load
    the data into a data
    structure
    • Remember the date

    View Slide

  17. jgs
    Fall 2021 | 00000001
    Attendance File (Zoom Attendance)
    • Same ASURITE can appear
    in more than one row.
    For instance, if a user
    is connected for 20
    minutes, go and then
    connect for another 35
    minutes. It will appear
    as
    zoe 20
    zoe 35
    Merge them into one. And
    add the minutes. For
    instance:
    zoe 55
    75
    time
    ASURITE
    javiergs
    • The file does not have
    headers (orange line).
    Added only as a
    reference.
    • 2 fields per row:
    • ASURITE (your username
    in the email)
    • An integer number that
    represents how many
    minutes you were
    connected in a meeting

    View Slide

  18. jgs
    Fall 2021 | 00000001
    Roster + Attendance
    • Using the asurite field
    as a reference, mix the
    roster data and the
    attendance data
    • Visualize the
    attendance data
    adding a column to
    the JTable. The
    header for the column
    is the date that the
    user provided
    • Any attendee that is
    not in the roster is
    ignored. But report
    it to the user. Use
    an option of JDialog
    3

    View Slide

  19. jgs
    Fall 2021 | 00000001
    Roster + Attendance *
    • N Attendance Files
    can be loaded for the
    same Roster File.
    Each one add a new
    column

    View Slide

  20. jgs
    Fall 2021 | 00000001
    Save
    • Save all data
    (exactly what we have
    in the JTable) in a
    CSV file
    • For this file, save
    the headers also.

    View Slide

  21. jgs
    Fall 2021 | 00000001
    Plot Data
    • Create a Chart using the
    attendance data per
    student.
    • X-axis Dates
    • Y-axis Number of
    students that were
    present that day.
    • The tricky part is DO
    NOT USE ANY Library
    other than Java Swing
    and Java AWT.

    View Slide

  22. jgs
    Fall 2021 | 00000001
    Plot Data
    • Create a Chart using the
    attendance data per
    student.
    • X-axis Dates
    • Y-axis Number of
    students that were
    present that day.
    • The tricky part is DO
    NOT USE ANY Library
    other than Java Swing
    and Java AWT.
    Paint with Swing
    https://stackoverflow.com/questions/6118737/how-to-draw-in-jpanel-swing-graphics-java

    View Slide

  23. jgs
    Fall 2021 | 00000001
    Instructions
    § A project with Taiga working in a team
    § Be careful with academic integrity; several cases of plagiarism are been
    detected
    § ALL cases will be reported to the Dean’s Office, and a grade of zero will be
    given.

    View Slide

  24. jgs
    Fall 2021 | 00000001
    Instructions
    § User Stories in Taiga (Backlogs)
    § Sprint(s)
    § Tasks and their responsible (Taskboard)
    § Daily report (Burndown Chart)
    § Source Code
    § JavaDoc (Classes and Methods)
    § UML Class Diagram (Recommended but not mandatory). If you create one,
    include it in your submission.

    View Slide

  25. jgs
    Fall 2021 | 00000001
    Platform
    § We should be able to compile and run your project from the console.
    § Do not use packages.
    § Give a meaningful name to your class containing the main() method
    > javac *.java
    > java App

    View Slide

  26. jgs
    Fall 2021 | 00000001
    Questions

    View Slide

  27. jgs
    CSE 563 Software Requirements and Specification
    Javier Gonzalez-Sanchez, Ph.D.
    [email protected]
    Fall 2021
    Copyright. These slides can only be used as study material for the class CSE563 at ASU.
    They cannot be distributed or used for another purpose.

    View Slide