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

ERD, Flowcharts and Other Documentation

ERD, Flowcharts and Other Documentation

Documentation is much more than just commenting on code. It can be a lot more fun, too. Learn what types of documentation are useful, when it is appropriate to use documentation, and how to write it. Through real-world examples, I will teach you how to create meaningful, helpful documentation not only for posterity but also to guide you in your development efforts.

Anna Filina

March 22, 2017

More Decks by Anna Filina

Other Decks in Programming


  1. @afilina ERD, Flowcharts and Other Documentation NWVDNUG - March 22,

  2. What It’s Not About • Not a full analysis and

    design course. • Not a demo of modelling tools. • Not a detailed explanation of symbology.
  3. What It Is About • Which diagrams serve what purpose.

    • Tie diagrams together. • Real world examples.
  4. Anna Filina • Project rescue expert • Dev, trainer, speaker

    • 1 company • 2 conferences
  5. None
  6. Why No Diagrams? • Don't know where to begin. •

    It's boring. • Get out of date. • Nobody reads them. • There’s no point. • Lean and mean.
  7. Not Always Boring

  8. The Real Problem • Don't understand diagrams. • Diagrams serve

    no purpose, not helpful. • Mistake diagrams for waterfall model. • Inadequate tools.
  9. Conference Management

  10. Use Case

  11. ER Diagram 0 or more (many) 1

  12. ER Diagram Non-identifying Identifying

  13. ER Diagram

  14. Data Flow Diagram External entity

  15. Data Flow Diagram 1 2 3 4 5 6 7

  16. Data Flow Diagram

  17. Common Mistakes • Data not stored. • Black hole. •

    Grey hole. • Spontaneous generation.
  18. Flowchart Input Output

  19. Mockups

  20. Mockups

  21. Function Reference • Session ◦ bool isSelected() ◦ void mailConfirmation(),

    check logs ◦ bool saveVote($user, $vote) • Automate tests of input/output.
  22. Source Comments • // Simple and short explanations. • /**

    * Document the "why" more than the "what".
 */ • Comment when it’s fresh. • Big functions with lots of comments = split function. • Better naming > comments.
  23. Putting it All Together A.K.A. “The Manual”

  24. Manual • Define chapters. Example: 1.Scope (Use Cases) 2.Database (ERD)

    3.Processes (DFD + Flowchart) 4.Mockups (later screenshots) 5.Classes + usage
  25. Manual • Write topics in bullet point. • Add diagrams.

    • Write paragraph under each bullet. • Move topics and chapters around. • Fill in with details.
  26. How Much to Write?

  27. Application Complexity More docs Less docs Grandma’s recipes

  28. Security Requirements Grandma’s recipes
 IAFIS fingerprints More docs Less

  29. Financial Impact Grandma’s recipes
 Forex currency trading More docs

    Less docs
  30. Team Size Yourself
 20 devs More docs Less docs

  31. Team Proximity Same office
 Remote More docs Less docs

  32. Good Documentation • Makes your software easier to build and

    maintain. • Makes your team more effective. • Discover new features before implementation.
  33. Mind Maps Also Helpful Mind Maps

  34. Takeaways • Systems Analysis and Design and/or UML book. •

    Get professional software, like Astah. • Diagrams are part of the process, not extra work. • Good diagrams increase dev speed and software quality.
  35. @afilina afilina.com