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

March 03, 2019
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  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.