Share
Embed
SER516 Lecture 26
Software Agility: Project and Process Management
Final Review
(202004)
Javier Gonzalez-Sanchez PRO
March 03, 2019
Transcript
36 slides
-
SER516 Software Agility: Project and Process Management Javier Gonzalez-Sanchez [email protected]
javiergs.engineering.asu.edu Office Hours: By appointment -
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 -
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. -
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 -
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? -
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 10 Questions
about YOUR projects § Velocity § D metric § A metric § Clean code cases § Diagrams § Etc. -
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 -
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 | 14 Review
§ Lecture 7: storyboard; epic vs story; INVEST; common errors [Rubin 5,6] § Lecture 8: Product backlog; DEEP; Planning Poker; Grooming; [Rubin 6] § Lecture 9: Sprint; Sprint characteristics; sprint planning; sprint backlog; [Rubin 4] § Lecture 10: KISS, DRY, Readable, Coding Guidelines for Java [Java] § Lecture 11: Estimation; Velocity; [Rubin 7] -
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 -
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 18 Patterns
§ Observer § Delegate § Factory -
Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 19 Simple
Design Rules § Write Tests. Why? § Simple How? § Expressiveness. What? How? § Minimize items? Why? -
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? -
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 ) { // .. } } -
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? -
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 -
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 -
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 -
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 -
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.