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

SER516 Lecture 25a

SER516 Lecture 25a

Software Agility
Final Review
(202104)

Javier Gonzalez-Sanchez
PRO

March 02, 2019
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    SER 516
    Software Agility
    Lecture 25: Final Review
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    javiergs.engineering.asu.edu | javiergs.com
    PERALTA 230U
    Office Hours: By appointment

    View Slide

  2. jgs
    00000001
    Grading
    Exams (2) 50%
    25% + 25%
    25%
    Quizzes
    100%
    A+
    97
    A
    93
    A-
    89
    B+
    85
    B
    81
    B-
    77
    C+
    73
    C
    69
    25%
    Assignments
    D
    65

    View Slide

  3. jgs
    00000001
    Grades
    § Assignments 8 – (25% total) (25/8 = 3.125% each)
    § Quizzes 6 - (25% total) (25/6 = 4.166% each)
    § Midterm – 25%
    § Final Exam – 25%
    a) Read carefully
    b) Do not memorize
    c) No partial credits for 2 + 2 = 5

    View Slide

  4. jgs
    00000001
    Do NOT be a Grade Grubber
    § Grading is done applying the same policies to all students as described
    in the syllabus.
    § It is unethical to bring to your instructor's attention the possible impact of
    your course grade on your future plans, including graduation, scholarships,
    jobs, etc.
    Do not send requests to your instructor asking for a grade that you did not
    earn with your work.

    View Slide

  5. jgs
    00000001
    Agenda
    § Sample Exam is available. Test your system ASAP
    § Midterm Exam available April 22 from 4:30 pm to 5:45 pm
    Key ideas:
    a) Show your environment.
    b) It is a CLOSED BOOK exam. Do not use any material
    c) Scratch paper is allowed. Empty White Paper. Show it on camera when
    you show your environment!

    View Slide

  6. jgs
    00000001
    Books
    § Ian Sommerville. Software Engineering
    (10th Edition). Addison-Wesley.
    § Martin, Robert C. Clean Code: A Handbook of Agile
    Software Craftsmanship. 2008.
    § Agile Software Development: Principles, Patterns, and
    Practices. Robert C. Martin. Prentice Hall. 2006.
    Chapter 30.
    § Rubin, K.S. Essential Scrum 2012, Addison-Wesley.

    View Slide

  7. Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 8
    Concepts and Theory
    • INVEST
    • DEEP
    • PBI
    • DRY
    • KISS
    • Coupling / Cohesion
    • D
    • A
    • I
    • Ce
    • Ca
    • Tangled
    § Requirement
    § Story
    § Story point
    § Estimation
    § Planning
    § Planning Poker
    § Burndown Chart
    § LOC, ELOC
    § Cyclomatic Complexity
    § Grooming
    § SOC
    § DI

    View Slide

  8. jgs
    00000001
    Questions about Process

    View Slide

  9. jgs
    00000001
    Questions about Design

    View Slide

  10. jgs
    00000001
    Questions about Code
    • Clean?
    • Yes, no, why?
    • DRY?
    • Yes, no, why?
    • KISS?
    • Yes, no, why?
    • Readable?
    • Yes, no, why?
    • Good comments?

    View Slide

  11. jgs
    00000001
    Note
    The following is a summary of the most relevant ideas.
    But the exam is not limited to these,
    i.e.,
    The following IS NOT a comprehensive list

    View Slide

  12. Agile Process
    1

    View Slide

  13. jgs
    00000001
    Review
    § Lecture: Background of process models (5); agile vs plan-based; what is and
    what is not “Agile”; agile manifesto; When to use agile and when is not a “good”
    option? Factors to be reviewed [Somerville 2,3]
    § Lecture: Requirement vs Task; Product backlog; sprint; agile process,
    ceremonies, and roles; burndown chart [Somerville 3,4]
    § Lecture: Agile principles (7) [Rubin 3]
    § Lecture: People factors (3); clean coding; clean code principles; [Martin 1]
    § Lecture: PBI; user story; epics; features; themes; [Rubin 5]

    View Slide

  14. jgs
    00000001
    Review
    § Lecture: storyboard; epic vs story; INVEST; common errors [Rubin 5,6]
    § Lecture: Product backlog; DEEP; Planning Poker; Grooming; [Rubin 6]
    § Lecture: Sprint; Sprint characteristics; sprint planning; sprint backlog; [Rubin 4]
    § Lecture: KISS, DRY, Readable, Coding Guidelines for Java [Java]
    § Lecture: Estimation; Velocity; [Rubin 7]

    View Slide

  15. Design
    2

    View Slide

  16. jgs
    00000001
    Simple Design Rules
    § Write Tests.
    Why?
    § Simple
    How?
    § Expressiveness.
    What?
    How?
    § Minimize items?
    Why?

    View Slide

  17. jgs
    00000001
    Patterns
    § Observer
    § Delegate
    § Factory

    View Slide

  18. Structure
    3

    View Slide

  19. jgs
    00000001
    Lecture 18
    § Dependency Injection (DI)
    What is?
    How to implement it?
    § Separation of Concerns (SOC)
    What is?
    How to implement it?
    § Low Coupling
    What is?
    How to implement it?

    View Slide

  20. jgs
    00000001
    DI, SOC, LC
    § public class Car {
    public Car () {
    engine = new Engine();
    wheels = new Wheels[4];
    seat = new Seats[4];
    // ..
    }
    }
    § public class Car {
    public Car (Engine e, Wheels[] w, Seat[] s ) {
    // ..
    }
    }

    View Slide

  21. jgs
    00000001
    Question
    A) B)

    View Slide

  22. jgs
    00000001
    Question
    A)
    B)

    View Slide

  23. jgs
    00000001
    Question
    § LOC per method?
    § CC per method?
    § Tangled (best value)?
    § Distance (best value)?
    § Is 0 the best value for A?
    § Is 0 the best value for I?

    View Slide

  24. Metrics
    4

    View Slide

  25. jgs
    00000001
    ADP, SDP, and SAP
    § Acyclic Dependency Principle (ADP)
    § Stable Dependency Principle (SDP)
    Where a dependency ends?
    § Stable Abstraction Principle (SAP)
    More stable, more abstract

    View Slide

  26. jgs
    00000001
    ADP ?

    View Slide

  27. jgs
    00000001
    Equations
    § Instability = Cout
    (Cin + Cout)
    § A =
    // Question: a package with 1 interface and 4 classes
    // implementing the interface.
    § D = A + I – 1

    View Slide

  28. jgs
    00000001
    SDP ?
    in:0 out 2
    in:1 out 2
    in:1 out 0
    in:2 out 1 in:1 out 0

    View Slide

  29. jgs
    00000001
    SDP?

    View Slide

  30. jgs
    00000001
    D?

    View Slide

  31. jgs
    00000001
    Questions

    View Slide

  32. jgs
    SER 516 Software Agility
    Javier Gonzalez-Sanchez
    [email protected]
    Spring 2021
    Disclaimer. These slides can only be used as study material for the class SER516 at ASU. They cannot be distributed or used for another purpose.

    View Slide