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

SER516 Lecture 26

SER516 Lecture 26

Software Agility: Project and Process Management
Final Review
(202004)

Javier Gonzalez-Sanchez PRO

March 03, 2019

Transcript

36 slides
  1. 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
  2. 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.
  3. 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
  4. 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?
  5. Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 10 Questions

    about YOUR projects § Velocity § D metric § A metric § Clean code cases § Diagrams § Etc.
  6. 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
  7. 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]
  8. 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]
  9. 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
  10. Javier Gonzalez-Sanchez | SER516 | Spring 2018 | 19 Simple

    Design Rules § Write Tests. Why? § Simple How? § Expressiveness. What? How? § Minimize items? Why?
  11. 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?
  12. 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 ) { // .. } }
  13. 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?
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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.

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming