Slide 1

Slide 1 text

foolab.ca | @foolabca ERD, Flowcharts and Other Documentation php[tek], St. Louis - May 25, 2016

Slide 2

Slide 2 text

What It’s Not About • Not a full analysis and design course. • Not a demo of modelling tools. • Not a detailed explanation of symbology. 2

Slide 3

Slide 3 text

What It Is About • Which diagrams serve what purpose. • Tie diagrams together. • Real world examples. 3

Slide 4

Slide 4 text

Anna Filina • Developer • Problem solver • Teacher • Advisor • FooLab + ConFoo 4

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

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. 6

Slide 7

Slide 7 text

Not Always Boring 7

Slide 8

Slide 8 text

The Real Problem • Don't understand diagrams. • Diagrams serve no purpose, not helpful. • Mistake diagrams for waterfall model. • Inadequate tools. 8

Slide 9

Slide 9 text

Conference Management Software

Slide 10

Slide 10 text

Use Case 10

Slide 11

Slide 11 text

ER Diagram 11 0 or more (many) 1

Slide 12

Slide 12 text

ER Diagram 12 Non-identifying Identifying

Slide 13

Slide 13 text

ER Diagram 13

Slide 14

Slide 14 text

Data Flow Diagram 14 External entity

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Data Flow Diagram 16

Slide 17

Slide 17 text

Common Mistakes • Data not stored. • Black hole. • Grey hole. • Spontaneous generation. 17

Slide 18

Slide 18 text

Flowchart 18 Input Output

Slide 19

Slide 19 text

Mockups 19

Slide 20

Slide 20 text

Mockups 20

Slide 21

Slide 21 text

Function Reference • Session ◦ bool isSelected() ◦ void mailConfirmation(), check logs ◦ bool saveVote($user, $vote) • Automate tests of input/output. 21

Slide 22

Slide 22 text

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. 22

Slide 23

Slide 23 text

Putting it All Together A.K.A. “The Manual”

Slide 24

Slide 24 text

Manual • Define chapters. Example: 1.Scope (Use Cases) 2.Database (ERD) 3.Processes (DFD + Flowchart) 4.Mockups (later screenshots) 5.Classes + usage 24

Slide 25

Slide 25 text

Manual • Write topics in bullet point. • Add diagrams. • Write paragraph under each bullet. • Move topics and chapters around. • Fill in with details. 25

Slide 26

Slide 26 text

How Much to Write?

Slide 27

Slide 27 text

Application Complexity 27 More docs Less docs Grandma’s recipes
 vs
 Facebook

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

Team Size 30 More docs Less docs Yourself
 vs
 20 devs

Slide 31

Slide 31 text

Team Proximity 31 More docs Less docs Same office
 vs
 Remote

Slide 32

Slide 32 text

Good Documentation • Makes your software easier to build and maintain. • Makes your team more effective. • Discover new features before implementation. 32

Slide 33

Slide 33 text

FooLab Mind Maps

Slide 34

Slide 34 text

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. 34

Slide 35

Slide 35 text

Anna Filina • Development. • Fix bugs & performance issues. • Workshops on testing, frameworks & APIs. • Advisor on testing strategy, legacy code. 35

Slide 36

Slide 36 text

@afilina afilina.com joind.in