ERD, Flowcharts and Other Documentation

47
FooLab ERD, Flowcharts and Other Documentation Northeast PHP Conference - August 11, 2012 Saturday, August 11, 2012

description

Documentation is much more than just commenting code. It can be a lot more fun too. Learn what types of documentation are useful, when it is appropriate to use and how to write it. Through real-world examples, this talk will teach you how to create meaningful and helpful documentation.

Transcript of ERD, Flowcharts and Other Documentation

Page 1: ERD, Flowcharts and Other Documentation

FooLab

ERD, Flowcharts and Other DocumentationNortheast PHP Conference - August 11, 2012

Saturday, August 11, 2012

Page 2: ERD, Flowcharts and Other Documentation

FooLabWhat It’s Not About

• Not a full analysis and design course

• Not a demo of modeling tools

• Not a detailed explanation of symbology

2

Saturday, August 11, 2012

Page 3: ERD, Flowcharts and Other Documentation

FooLabWhat It Is About

• What diagrams serve what purpose

• Tie diagrams together

• Real world examples

• More examples

3

Saturday, August 11, 2012

Page 4: ERD, Flowcharts and Other Documentation

FooLabAnna Filina

• PHP Quebec - user group

• ConFoo - non for profit Web conference

• FooLab Inc. - IT consulting

• I write code.

• I train and supervise programmers.

• I make recommendations.

4

Saturday, August 11, 2012

Page 5: ERD, Flowcharts and Other Documentation

FooLabWhy No Docs?

• Don't know where to begin

• It's boring

• There’s no point

• Get out of date

• Nobody reads them

5

Saturday, August 11, 2012

Page 6: ERD, Flowcharts and Other Documentation

FooLabThe Real Problem

• Don't understand diagrams

• Diagrams serve no purpose, not helpful

• Inadequate tools

6

Saturday, August 11, 2012

Page 7: ERD, Flowcharts and Other Documentation

FooLab

Conference Management Software

Saturday, August 11, 2012

Page 8: ERD, Flowcharts and Other Documentation

FooLabUse Case

8

Saturday, August 11, 2012

Page 9: ERD, Flowcharts and Other Documentation

FooLabER Diagram

9

Saturday, August 11, 2012

Page 10: ERD, Flowcharts and Other Documentation

FooLabER Diagram

9

0 or more(many)

1

Saturday, August 11, 2012

Page 11: ERD, Flowcharts and Other Documentation

FooLabER Diagram

10

Saturday, August 11, 2012

Page 12: ERD, Flowcharts and Other Documentation

FooLabER Diagram

10

Non-identifying

Identifying

Saturday, August 11, 2012

Page 13: ERD, Flowcharts and Other Documentation

FooLabER Diagram

11

Saturday, August 11, 2012

Page 14: ERD, Flowcharts and Other Documentation

FooLabData Flow Diagram

12

Saturday, August 11, 2012

Page 15: ERD, Flowcharts and Other Documentation

FooLabData Flow Diagram

12

External entity

Saturday, August 11, 2012

Page 16: ERD, Flowcharts and Other Documentation

FooLabData Flow Diagram

12

External entity

Saturday, August 11, 2012

Page 17: ERD, Flowcharts and Other Documentation

FooLabData Flow Diagram

12

External entity

Saturday, August 11, 2012

Page 18: ERD, Flowcharts and Other Documentation

FooLabData Flow Diagram

13

Saturday, August 11, 2012

Page 19: ERD, Flowcharts and Other Documentation

FooLabData Flow Diagram

13

1 2 3 4 5 6

78

Saturday, August 11, 2012

Page 20: ERD, Flowcharts and Other Documentation

FooLabData Flow Diagram

14

Saturday, August 11, 2012

Page 21: ERD, Flowcharts and Other Documentation

FooLabCommon Mistakes

15

• Data not stored.

• Black hole.

• Grey hole.

• Spontaneous generation.

Saturday, August 11, 2012

Page 22: ERD, Flowcharts and Other Documentation

FooLabFlowchart

16

Saturday, August 11, 2012

Page 23: ERD, Flowcharts and Other Documentation

FooLabFlowchart

16

Input

Output

Saturday, August 11, 2012

Page 24: ERD, Flowcharts and Other Documentation

FooLabMockups

17

Saturday, August 11, 2012

Page 25: ERD, Flowcharts and Other Documentation

FooLabMockups

18

Saturday, August 11, 2012

Page 26: ERD, Flowcharts and Other Documentation

FooLabFunction Reference

• Session

• bool isSelected()

• void mailConfirmation(), check logs

• bool saveVote($user, $vote)

• Automate tests of input/output.

19

Saturday, August 11, 2012

Page 27: ERD, Flowcharts and Other Documentation

FooLabSource Comments

• Inline comments // simple and short explanations

• /** * Commonly used above functions. * Can use annotations with phpDocumentor or other. */Descriptive blocks

• Comment when it’s fresh.

• Big functions with lots of comments = split function.

20

Saturday, August 11, 2012

Page 28: ERD, Flowcharts and Other Documentation

FooLab

Putting it all togetherA.K.A. “The Manual”

Saturday, August 11, 2012

Page 29: ERD, Flowcharts and Other Documentation

FooLabManual

• Define chapters. Example:

1. Scope (Use Cases)

2. Database (ERD)

3. Processes (DFD + Flowchart)

4. Mockups (later screenshots)

5. Classes + usage

22

Saturday, August 11, 2012

Page 30: ERD, Flowcharts and Other Documentation

FooLabManual

• Write topics in bullet point

• Add diagrams

• Write paragraph under each bullet

• Move topics and chapters around

• Fill in with details

23

Saturday, August 11, 2012

Page 31: ERD, Flowcharts and Other Documentation

FooLab

How much to write?

Saturday, August 11, 2012

Page 32: ERD, Flowcharts and Other Documentation

FooLabApplication Complexity

25

Grandma’s recipes

vs Facebook

Saturday, August 11, 2012

Page 33: ERD, Flowcharts and Other Documentation

FooLabApplication Complexity

25

More docsLess docs

Grandma’s recipes

vs Facebook

Saturday, August 11, 2012

Page 34: ERD, Flowcharts and Other Documentation

FooLabSecurity Requirements

26

Grandma’s recipes

vsIAFIS

fingerprints

Saturday, August 11, 2012

Page 35: ERD, Flowcharts and Other Documentation

FooLabSecurity Requirements

26

Grandma’s recipes

vsIAFIS

fingerprints

More docsLess docs

Saturday, August 11, 2012

Page 36: ERD, Flowcharts and Other Documentation

FooLabFinancial Impact

27

Grandma’s recipes vs

Forex currency trading

Saturday, August 11, 2012

Page 37: ERD, Flowcharts and Other Documentation

FooLabFinancial Impact

27

Grandma’s recipes vs

Forex currency trading

More docsLess docs

Saturday, August 11, 2012

Page 38: ERD, Flowcharts and Other Documentation

FooLabTeam Size

28

Yourself vs 20 devs

Saturday, August 11, 2012

Page 39: ERD, Flowcharts and Other Documentation

FooLabTeam Size

28

Yourself vs 20 devs

More docsLess docs

Saturday, August 11, 2012

Page 40: ERD, Flowcharts and Other Documentation

FooLabTeam Proximity

29

Same office

vs Remote

Saturday, August 11, 2012

Page 41: ERD, Flowcharts and Other Documentation

FooLabTeam Proximity

29

Same office

vs Remote

More docsLess docs

Saturday, August 11, 2012

Page 42: ERD, Flowcharts and Other Documentation

FooLabGood Documentation

• Makes your software easier to build and maintain

• Makes your team more effective

• Discover new features before implementation

30

Saturday, August 11, 2012

Page 43: ERD, Flowcharts and Other Documentation

FooLab

Mind MapsSaturday, August 11, 2012

Page 44: ERD, Flowcharts and Other Documentation

FooLab

Systems Analysis and Design and/or UML book

Saturday, August 11, 2012

Page 45: ERD, Flowcharts and Other Documentation

FooLabNext Steps

• I will tweet the slides: @afilina

• Please leave feedback: http://joind.in/6838

33

Saturday, August 11, 2012

Page 46: ERD, Flowcharts and Other Documentation

FooLab

Ask me which software I use.

Saturday, August 11, 2012

Page 47: ERD, Flowcharts and Other Documentation

FooLab

Ask me which software I use.

astah, BalsamiqSaturday, August 11, 2012