$30 off During Our Annual Pro Sale. View Details »

CSC307 Lecture 15

CSC307 Lecture 15

Introduction to Software Engineering
Software Metrics II
(202307)

Javier Gonzalez-Sanchez
PRO

July 20, 2023
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSC 307
    Introduction to Software Engineering
    Lecture 15:
    Software Metrics II
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    www.javiergs.com
    Building 14 -227
    Office Hours: By appointment

    View Slide

  2. jgs
    Code Metrics

    View Slide

  3. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 4
    Metrics
    Size
    LOC
    eLOC
    lLOC
    Complexity
    Average, Max, Min LOC
    Cyclomatic Complexity
    Software Metrics

    View Slide

  4. jgs
    Structural Metrics

    View Slide

  5. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 6
    Example A

    View Slide

  6. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 7
    Example B

    View Slide

  7. jgs
    Abstractness

    View Slide

  8. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 10
    § Express the portion of contained abstract types.
    § It is a value 0 to 1:
    0 (only concrete classes) to
    1 (only interfaces and abstract classes)
    Abstractness of a Package

    View Slide

  9. jgs
    Instability

    View Slide

  10. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 12
    § Indicates whether
    (a) the item is mainly used by others (stable – hard to change); or
    (b) it mainly depends on other items (instable – changeable).
    § It is a value between 0 and 1:
    0 only incoming dependencies to
    1 (only outgoing dependencies)
    Instability

    View Slide

  11. jgs
    Distance

    View Slide

  12. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 14
    § Distance: how far a package is away from
    the Main Sequence
    § D = A + I – 1
    § Values -1 to 1
    § Absolute Distance |D|
    Distance

    View Slide

  13. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 15
    Stable Abstraction Principle
    Abstract
    concrete
    Stable
    Hard to Change
    Only incoming dependencies
    Unstable
    Changeable
    Only outgoing dependencies

    View Slide

  14. jgs
    Test Yourselves

    View Slide

  15. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 17
    Question
    project3.common.model
    project3.client.UI
    project3.server.controller

    View Slide

  16. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 18
    Question

    View Slide

  17. jgs
    Key Ideas

    View Slide

  18. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 20
    Project Presentation
    Product
    Process You

    View Slide

  19. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 21
    Demo of your project.
    Show your project running.
    First Act – Demo

    View Slide

  20. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 22
    Taiga à Stories, Backlogs, and Task board
    Stories (INVEST), Sprint backlog, product backlog.
    Estimation (story points)
    Talk about tasks; who is doing what?
    Everybody is doing some programming!
    Show and explain your Burndown Chart.
    Second Act – Your process

    View Slide

  21. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 23
    Show your class diagram.
    Use colors as needed
    (Single Responsibility Principle)
    What are the A, I, or D in the new class?
    (show the 2D plot regarding where your classes are in terms of the pain zone)
    Third Act – Software Design

    View Slide

  22. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 24
    Show US your GitHub
    Who is doing What?
    (everyone is adding or updating code)
    Show US your Code and Code Metrics
    Are your metrics OK (LOC, eLOC, lLOC, CC)?
    Any significant aspect that you want to share?
    Fourth Act – Code

    View Slide

  23. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 25
    Review
    What is Good in the product?
    What is next for the product (next features to be added)?
    (your promise for the next sprint presentation)
    Retrospective (Process & People)
    What went well?
    What did not go well?
    Fifth Act – Review and Retrospective

    View Slide

  24. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 26
    Questions

    View Slide

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

    View Slide

  26. jgs

    View Slide

  27. jgs
    CSC 307
    Introduction to Software Engineering
    Lab 15:
    Software Metrics II
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    www.javiergs.com
    Building 14 -227
    Office Hours: By appointment

    View Slide

  28. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 30
    Think about this
    Calculate metrics for
    Final Project class diagram

    View Slide

  29. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 31
    Let’s Work

    View Slide

  30. jgs
    CSC 307 Introduction to Software Engineering
    Javier Gonzalez-Sanchez, Ph.D.
    [email protected]
    Summer 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 Slide