Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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.

Slide 5

Slide 5 text

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!

Slide 6

Slide 6 text

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.

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

jgs 00000001 Questions about Process

Slide 9

Slide 9 text

jgs 00000001 Questions about Design

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Agile Process 1

Slide 13

Slide 13 text

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]

Slide 14

Slide 14 text

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]

Slide 15

Slide 15 text

Design 2

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

jgs 00000001 Patterns § Observer § Delegate § Factory

Slide 18

Slide 18 text

Structure 3

Slide 19

Slide 19 text

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?

Slide 20

Slide 20 text

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 ) { // .. } }

Slide 21

Slide 21 text

jgs 00000001 Question A) B)

Slide 22

Slide 22 text

jgs 00000001 Question A) B)

Slide 23

Slide 23 text

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?

Slide 24

Slide 24 text

Metrics 4

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

jgs 00000001 ADP ?

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

jgs 00000001 SDP?

Slide 30

Slide 30 text

jgs 00000001 D?

Slide 31

Slide 31 text

jgs 00000001 Questions

Slide 32

Slide 32 text

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.