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]
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.