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

CSE360 Flipped Lecture 10

CSE360 Flipped Lecture 10

Introduction to Software Engineering
Final Project
(202011)

B546a9b97d993392e4b22b74b99b91fe?s=128

Javier Gonzalez
PRO

June 10, 2020
Tweet

Transcript

  1. CSE 360 Introduction to Software Engineering Lecture 10: Final Project

    Dr. Javier Gonzalez-Sanchez javiergs@asu.edu javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
  2. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 2 Announcements

    (This Week) • Exercise 07(Project Management): Project Duration and Critical Path
  3. Final Project

  4. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 4 Important

    • Final Project is 15% of your Final Grade • It is a Programming Assignment in Java using AWT/Swing • It is a Team (1-5 students) activity. You can create your teams • It is due on November 30. • Three weeks to organize your team, learn new libraries/frameworks, develop, document, test, integrate, and submit. • No extensions (It can be done in a week)
  5. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 5 What

    to submit 1. Team Project Source code in Java. All classes in the default package, i.e., no package instruction used. Use only Java AWT, Java Swing Only one external library allowed: JFreeChart
  6. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 6 What

    to submit 2. Project Report • Requirements. I will talk about the necessities. You extract the requirements. Then, create user stories or use cases. This is not a programming lab. • Class diagram. It is not an adornment. It should match 100% with the source code: association, aggregation, composition, realization, generalization. • Screenshot(s) of your project running. • Testing. How the project was tested? If you use Unit Testing (Junit) include your test cases. If not, what do you did and why? • Project Management. Write a report describing: what process model was used, how did you split the responsibilities, who did what, how did you monitor the project • Include either a PERT chart and/or a Burndown chart.
  7. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 7 What

    to submit 3 Peer- and Self- Evaluation • After the project due date a link will be provided by the TA. The link will open a survey and you will be required to evaluate yourselves and your teammates. • The evaluation will remain anonymous. Thus, it will not be shared with your teammates the evaluation that you give to them. • Team evaluation will impact (weight) your grade in the project. Thus, the project is graded then according with the survey a grade for each member is calculated.
  8. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 8 Alert

    Talk with your team about expectations before start working. Review carefully if your team expectations match what you are able to / want to do. Including: daily meetings vs weekly meetings, plan-based vs agile approach, getting an A+ vs I am ok with a C-, time zone, morning vs night people etc., etc., etc.
  9. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 9 Be

    Aware • Your due date is November 30. • Thanksgiving Holiday is November 26 – 27 • Consider at least 24 hours to receive a reply to an email from Tas or Instructor • Consider that office hours could be limited by the end of the month (most students procrastinate thus, nor TA nor Instructor could have time available)
  10. Final Project Description

  11. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 11 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
  12. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 12 File

    Menu Main functionalities: • Load a roster • Add attendance • Save • Plot Data
  13. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 13 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
  14. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 14 Roster

    File / / / • The file does not have headers (orange line). Added only as a reference. • 6 fields per row
  15. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 15 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
  16. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 16 Add

    Attendance • Ask the user for a File path (Use a JFileChooser) • The file is another CSV (Comma Separated Values) file. • Ask for a date Use a Date Picker. Get One or create one • Read the file and load the data into a data structure (one more time, your choice) • Remember the selected date
  17. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 17 Attendance

    File • Same asurite can appear in more than one row. For instance, a user is connected 20 minutes, go and then connect another 20 minutes. It will appear as jdoe 20 jdoe 20 Merge them in one. And add the minutes. For instance: jdoe 40 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 represent how many minutes you where connected in a meeting
  18. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 18 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
  19. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 19 Roster

    + Attendance * • N Attendance Files can be loaded for the same Roster File. Each one add a new column
  20. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 20 Save

    • Save all data (exactly what we have in the JTable) in a CSV file • For this file, save the headers also.
  21. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 21 Plot

    Data • Create a Chart using the attendance data per student. Specifically, a Scatter Plot where • Y-Axis is how many students (from 0 to total row in the table) • X-axis is % of attendance (0%, 10% .. 90%, 100%). 100% is 75 minutes or more. • And each attendance column represent a population.
  22. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 22 Plot

    Data • Either add a new JPanel, replace the JTable, Use a tab (JTabbedPane) or a dialog box • Use the JFreeChart library. Mandatory. Tutorial: https://www.javatpoint.com/jfreechart-scatter-chart
  23. Final Project Software Design

  24. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 24 Architecture

    :: Required Model View Controller
  25. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 25 Model

    Design :: Required View Controller
  26. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 26 Model

    Design :: Optional View Controller Student CoreData Student Student Decorator Student Attendance Others
  27. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 27 Homework

    Final Project is 15% of your final grade, start working ASAP Complete This Week’s Hybrid Activities
  28. CSE360 – Introduction to Software Engineering Javier Gonzalez-Sanchez javiergs@asu.edu Summer

    2020 Disclaimer. These slides can only be used as study material for the class CSE360 at ASU. They cannot be distributed or used for another purpose.