Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CSE563 Lecture 23

CSE563 Lecture 23

Software Requirements and Specification
Final Project
(202204)

Javier Gonzalez-Sanchez

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
  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
  3. 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.
  4. jgs Fall 2021 | 00000001 Team You can work in

    a team of maximum 6 team members You should have a TEAM by NOW
  5. 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.
  6. 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.
  7. 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
  8. jgs Fall 2021 | 00000001 File Menu Main functionalities: •

    Load a roster • Add attendance • Save • Plot Data
  9. 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
  10. 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
  11. jgs Fall 2021 | 00000001 Roster File / / /

    • The file does not have headers (orange line). Added only as a reference. • 4 fields per row
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. jgs Fall 2021 | 00000001 Roster + Attendance * •

    N Attendance Files can be loaded for the same Roster File. Each one add a new column
  18. 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.
  19. 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.
  20. 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
  21. 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.
  22. 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.
  23. 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
  24. 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.