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)

Javier Gonzalez-Sanchez
PRO

June 10, 2020
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. CSE 360
    Introduction to Software Engineering
    Lecture 10: Final Project
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    javiergs.engineering.asu.edu | javiergs.com
    PERALTA 230U
    Office Hours: By appointment

    View Slide

  2. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 2
    Announcements (This Week)
    • Exercise 07(Project Management): Project Duration and
    Critical Path

    View Slide

  3. Final Project

    View Slide

  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)

    View Slide

  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

    View Slide

  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.

    View Slide

  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.

    View Slide

  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.

    View Slide

  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)

    View Slide

  10. Final Project
    Description

    View Slide

  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

    View Slide

  12. Javier Gonzalez-Sanchez | CSE360 | Fall 2020 | 12
    File Menu
    Main functionalities:
    • Load a roster
    • Add attendance
    • Save
    • Plot Data

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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.

    View Slide

  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.

    View Slide

  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

    View Slide

  23. Final Project
    Software Design

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  28. CSE360 – Introduction to Software Engineering
    Javier Gonzalez-Sanchez
    [email protected]
    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.

    View Slide