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

CSC309 Lecture 11

CSC309 Lecture 11

Software Engineering II
Unit Testing
(202302)

Javier Gonzalez-Sanchez

February 05, 2023
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSC 309
    Software Engineering II
    Lecture 11:
    Sprint Review
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    www.javiergs.com
    Building 14 -227
    Office Hours: By appointment

    View full-size slide

  2. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 3
    What are we going to present on Friday?

    View full-size slide

  3. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 4
    Demo of your project.
    Show your project running. Particularly show us
    what have you added in the previous two weeks that was not there before
    :: notes ::
    I know you could be working mostly on fixing things,
    but at least a few new functionalities should be there
    Show how you are moving your CSC 308 project to
    the Intelligent Tutoring System that you describe in your proposal.
    YES, you can, additionally, talk (briefly) about your proposal, i.e., the next features to be added
    First Act – The product for the Customer

    View full-size slide

  4. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 5
    Taiga à Stories, Backlogs, and Task board
    Show your Stories, a glimpse of stories in the Sprint backlog,
    and Stories in the product backlog.
    Which are the ones with high value in the estimation (story points)?
    Are they INVEST?
    Talk about tasks; who is doing what?
    Did you complete your stories this sprint?
    If not, Why?
    Show and explain your Burndown Chart.
    How Often are team members updating (reporting)?
    Second Act – Your process

    View full-size slide

  5. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 6
    Burn Down Chart

    View full-size slide

  6. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 7
    Show your class diagram.
    (Show what is important and make it easy to read for the audience)
    :: notes ::
    Show how you are moving your CSC 308 project to
    the Intelligent Tutoring System that you describe in your proposal.
    (you can use colors for the newly added classes)
    What did you that made this design better than the one in the CSC 308 submission?
    Do you achieve SRP?
    Do you separate MVC?
    Do you improve A, I, or D?
    (show the 2D plot regarding where your classes are in terms of the pain zone)
    Third Act – Software Design

    View full-size slide

  7. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 8
    Structural Metrics
    Abstract
    concrete
    Stable
    Hard to Change
    Only incoming dependencies
    Unstable
    Changeable
    Only outgoing dependencies

    View full-size slide

  8. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 9
    Show US your GitHub
    Who is doing What?
    (commits, LOC, added, removed, etc.)
    Share with Us what is happening there and how things are being done (as a team effort)
    You can describe this together with your Taiga activities or separately.
    Show US your Code and Code Metrics
    Are your metrics OK (LOC, eLOC, lLOC, CC)? Any significant aspect that you want to share?
    Do you acquire technical debt for something? What did you that made this code better than
    the one in the CSC 308 submission?
    Do you have Test Cases (Unit Testing)
    If so, What are you testing?
    If not, What are your plans for testing?
    Fourth Act – Code

    View full-size slide

  9. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 10
    Team 1 2 3 4 5 6
    Files 9 18 14 7 9 15
    Methods 60 101 97 65 56 85
    Average Number of Methods per File 6.67 5.61 6.93 9.29 6.22 5.67
    Total Number of Lines 886 1804 1774 1012 579 1228
    LOC (Total) 731 1047 1047 626 538 818
    eLOC (Total) 731 849 835 512 439 660
    lLOC (Total) 689 541 541 366 311 381
    Lines of Comments 60 577 588 244 63 203
    % Comments 7.00 55.00 56.16 39.79 11.70 18.00
    % Blank Lines 11.00 10.00 13.17 12.98 7.08 10.00
    Max Cyclomatic Complexity (CC) 19 16 19 10 18 26
    Average Cyclomatic Complexity (CC) 2.30 1.00 2.26 1.86 2.00 1.70
    Parameters (Max) 5 7 3 6 7
    Parameters (Average) 0.70 0.70 0.50 1.00 1.07
    Return points (Max) 3 4 2 1 1
    Return points (Average) 1.07 1.00 1.26 1.00 1.00
    Metrics

    View full-size slide

  10. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 11
    Review
    What is Good in the product?
    What Problems were detected in the product?
    What potential risks does the product have?
    What is next for the product (next features to be added)?
    (kind of your promise for the next sprint presentation)
    Retrospective (Process & People)
    What went well?
    What did not go well?
    What can be improved?
    And, your velocity this sprint
    Fifth Act – Review and Retrospective

    View full-size slide

  11. jgs
    One last Thing

    View full-size slide

  12. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 13
    § “Any fool can write code that a computer
    can understand. Good programmers write
    code that humans can understand”.
    -Martin Fowler
    § “Even bad code can function”.
    –Robert C. Martin
    Coding

    View full-size slide

  13. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 14
    § Check Javadoc for Classes and Methods
    § Check to name classes, methods, and variables.
    § Be suspicious of any static element and ask, Does this really need to be
    static?
    Static is dangerous and can drive you to the
    Structural Programming model, and you want to do
    Object-Oriented.
    § Is it DRY?
    § Is it KIS?
    Summary (par 1 /2 )

    View full-size slide

  14. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 15
    § Check connections (inheritance, having, using)
    § Are these global variables needed as global?
    § Should this be delegation or inheritance?
    § Be careful about what is shared on the Blackboard.
    Blackboard is dangerous; it can make you forget
    encapsulation and drive you to the everyone have
    access to everything approach.
    § Check for Observer pattern misuse or overuse
    Summary (par 1 /2 )

    View full-size slide

  15. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 16
    Questions

    View full-size slide

  16. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 17
    Office Hours
    Tuesday and Thursday 3 - 5 pm
    But an appointment required
    Sent me an email – [email protected]

    View full-size slide

  17. jgs
    CSC 309
    Software Engineering II
    Lab 11:
    Work in your Sprint
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    www.javiergs.com
    Building 14 -227
    Office Hours: By appointment

    View full-size slide

  18. jgs
    Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 | 20
    Let’s Work

    View full-size slide

  19. jgs
    CSC 309 Software Engineering II
    Javier Gonzalez-Sanchez, Ph.D.
    [email protected]
    Winter 2023
    Copyright. These slides can only be used as study material for the class CSC308 at Cal Poly.
    They cannot be distributed or used for another purpose.

    View full-size slide