SER516
Software Agility:
Project and Process Management
Javier Gonzalez-Sanchez
[email protected]
javiergs.engineering.asu.edu
Office Hours: By appointment
Slide 2
Slide 2 text
Final Review
22
Slide 3
Slide 3 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 3
Grading
Exams (2) 50%
25% + 25%
25%
Labs, Quizzes,
Assignments
100%
A+
97
A
93
A-
89
B+
85
B
81
B-
77
C+
73
C
69
-10%
10 times randomly
(-1% per absence)
Attendance
25%
Team Project
(graded individually)
D
65
Slide 4
Slide 4 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 5
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 5
Slide 5 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 6
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 6
Slide 6 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 7
Questions about Process
Slide 7
Slide 7 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 8
Questions about Design
Slide 8
Slide 8 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 9
Questions about Code
• Clean?
• Yes, no, why?
• DRY?
• Yes, no, why?
• KISS?
• Yes, no, why?
• Readable?
• Yes, no, why?
• Good comments?
Slide 9
Slide 9 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 10
Questions about YOUR projects
§ Velocity
§ D metric
§ A metric
§ Clean code cases
§ Diagrams
§ Etc.
Slide 10
Slide 10 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 11
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 11
Slide 11 text
Agile Process
1
Slide 12
Slide 12 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 13
Review
§ Lecture 2: 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 3: Requirement vs Task; Product backlog; sprint; agile
process, ceremonies, and roles; burndown chart [Somerville 3,4]
§ Lecture 4: Agile principles (7) [Rubin 3]
§ Lecture 5: People factors (3); clean coding; clean code principles;
[Martin 1]
§ Lecture 6: PBI; user story; epics; features; themes; [Rubin 5]
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 16
Definition
Technical
Debt
shortcuts
purposely
taken
Bad things
that plague
systems
Bad design
Defects
Insufficient test
coverage
Excessive manual
testing
Poor integration
management
Lack of platform
experience
• Naïve Debt
• Unavoidable Debt
• Strategic Debt
§ Activities to handle technical debt
Slide 16
Slide 16 text
Design
3
Slide 17
Slide 17 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 18
Patterns
§ Observer
§ Delegate
§ Factory
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 20
Question
A
B
Slide 20
Slide 20 text
Structure
4
Slide 21
Slide 21 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 22
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 22
Slide 22 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 23
DI, DOC, 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 23
Slide 23 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 24
Question
A) B)
Slide 24
Slide 24 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 25
Question
A)
B)
Slide 25
Slide 25 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 26
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 26
Slide 26 text
Metrics
5
Slide 27
Slide 27 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 28
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 28
Slide 28 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 29
ADP ?
Slide 29
Slide 29 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 30
Equations
§ Instability = Cout
(Cin + Cout)
§ A =
// Question: a package with 1 interface and 4 classes
// implementing the interface.
§ D = A + I – 1
Slide 30
Slide 30 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 31
SDP ?
in:0 out 2
in:1 out 2
in:1 out 0
in:2 out 1 in:1 out 0
Slide 31
Slide 31 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 32
SDP?
Slide 32
Slide 32 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 33
D?
Slide 33
Slide 33 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 34
I ?
Slide 34
Slide 34 text
Families, Lines, and Factories
6
Slide 35
Slide 35 text
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 36
Lecture 21
§ Define: Product Family, Software Factories, and Product
Lines
§ Productivity, Quality, and Evolution capability
§ Abstraction, granularity, and specificity
Slide 36
Slide 36 text
SER516 – Software Agility
Javier Gonzalez-Sanchez
[email protected]
Spring 2018
Disclaimer. These slides can only be used as study material for the SER516 course at ASU.
They cannot be distributed or used for another purpose.