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
  2. jgs Javier Gonzalez-Sanchez | CSC 309 | Winter 2023 |

    3 What are we going to present on Friday?
  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
  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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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 )
  12. 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 )
  13. 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]
  14. jgs

  15. 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
  16. 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.