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

SER516 Lecture 25a

SER516 Lecture 25a

Software Agility
Final Review
(202104)

B546a9b97d993392e4b22b74b99b91fe?s=128

Javier Gonzalez
PRO

March 02, 2019
Tweet

Transcript

  1. jgs SER 516 Software Agility Lecture 25: Final Review Dr.

    Javier Gonzalez-Sanchez javiergs@asu.edu javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
  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
  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
  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.
  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!
  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.
  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
  8. jgs 00000001 Questions about Process

  9. jgs 00000001 Questions about Design

  10. jgs 00000001 Questions about Code • Clean? • Yes, no,

    why? • DRY? • Yes, no, why? • KISS? • Yes, no, why? • Readable? • Yes, no, why? • Good comments?
  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
  12. Agile Process 1

  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]
  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]
  15. Design 2

  16. jgs 00000001 Simple Design Rules § Write Tests. Why? §

    Simple How? § Expressiveness. What? How? § Minimize items? Why?
  17. jgs 00000001 Patterns § Observer § Delegate § Factory

  18. Structure 3

  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?
  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 ) { // .. } }
  21. jgs 00000001 Question A) B)

  22. jgs 00000001 Question A) B)

  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?
  24. Metrics 4

  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
  26. jgs 00000001 ADP ?

  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
  28. jgs 00000001 SDP ? in:0 out 2 in:1 out 2

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

  30. jgs 00000001 D?

  31. jgs 00000001 Questions

  32. jgs SER 516 Software Agility Javier Gonzalez-Sanchez javiergs@asu.edu 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.