FooLab
ERD, Flowcharts and
Other Documentation
Northeast PHP Conference - August 11, 2012
Saturday, August 11, 2012
Slide 2
Slide 2 text
FooLab
What 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
Slide 3
Slide 3 text
FooLab
What It Is About
• What diagrams serve what purpose
• Tie diagrams together
• Real world examples
• More examples
3
Saturday, August 11, 2012
Slide 4
Slide 4 text
FooLab
Anna 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
Slide 5
Slide 5 text
FooLab
Why 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
Slide 6
Slide 6 text
FooLab
The Real Problem
• Don't understand diagrams
• Diagrams serve no purpose, not helpful
• Inadequate tools
6
Saturday, August 11, 2012
Slide 7
Slide 7 text
FooLab
Conference
Management Software
Saturday, August 11, 2012
Slide 8
Slide 8 text
FooLab
Use Case
8
Saturday, August 11, 2012
Slide 9
Slide 9 text
FooLab
ER Diagram
9
Saturday, August 11, 2012
Slide 10
Slide 10 text
FooLab
ER Diagram
9
0 or more
(many)
1
Saturday, August 11, 2012
Slide 11
Slide 11 text
FooLab
ER Diagram
10
Saturday, August 11, 2012
Slide 12
Slide 12 text
FooLab
ER Diagram
10
Non-identifying
Identifying
Saturday, August 11, 2012
Slide 13
Slide 13 text
FooLab
ER Diagram
11
Saturday, August 11, 2012
Slide 14
Slide 14 text
FooLab
Data Flow Diagram
12
Saturday, August 11, 2012
Slide 15
Slide 15 text
FooLab
Data Flow Diagram
12
External entity
Saturday, August 11, 2012
Slide 16
Slide 16 text
FooLab
Data Flow Diagram
12
External entity
Saturday, August 11, 2012
Slide 17
Slide 17 text
FooLab
Data Flow Diagram
12
External entity
Saturday, August 11, 2012
Slide 18
Slide 18 text
FooLab
Data Flow Diagram
13
Saturday, August 11, 2012
Slide 19
Slide 19 text
FooLab
Data Flow Diagram
13
1 2 3 4 5 6
7
8
Saturday, August 11, 2012
Slide 20
Slide 20 text
FooLab
Data Flow Diagram
14
Saturday, August 11, 2012
Slide 21
Slide 21 text
FooLab
Common Mistakes
15
• Data not stored.
• Black hole.
• Grey hole.
• Spontaneous generation.
Saturday, August 11, 2012
Slide 22
Slide 22 text
FooLab
Flowchart
16
Saturday, August 11, 2012
Slide 23
Slide 23 text
FooLab
Flowchart
16
Input
Output
Saturday, August 11, 2012
Slide 24
Slide 24 text
FooLab
Mockups
17
Saturday, August 11, 2012
Slide 25
Slide 25 text
FooLab
Mockups
18
Saturday, August 11, 2012
Slide 26
Slide 26 text
FooLab
Function Reference
• Session
• bool isSelected()
• void mailConfirmation(), check logs
• bool saveVote($user, $vote)
• Automate tests of input/output.
19
Saturday, August 11, 2012
Slide 27
Slide 27 text
FooLab
Source 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
Slide 28
Slide 28 text
FooLab
Putting it all together
A.K.A. “The Manual”
Saturday, August 11, 2012
FooLab
Manual
• 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
Slide 31
Slide 31 text
FooLab
How much to write?
Saturday, August 11, 2012
Slide 32
Slide 32 text
FooLab
Application Complexity
25
Grandma’s
recipes
vs Facebook
Saturday, August 11, 2012
Slide 33
Slide 33 text
FooLab
Application Complexity
25
More docs
Less docs
Grandma’s
recipes
vs Facebook
Saturday, August 11, 2012
Slide 34
Slide 34 text
FooLab
Security Requirements
26
Grandma’s
recipes
vs
IAFIS
fingerprints
Saturday, August 11, 2012
Slide 35
Slide 35 text
FooLab
Security Requirements
26
Grandma’s
recipes
vs
IAFIS
fingerprints
More docs
Less docs
Saturday, August 11, 2012
Slide 36
Slide 36 text
FooLab
Financial Impact
27
Grandma’s
recipes
vs
Forex
currency
trading
Saturday, August 11, 2012
Slide 37
Slide 37 text
FooLab
Financial Impact
27
Grandma’s
recipes
vs
Forex
currency
trading
More docs
Less docs
Saturday, August 11, 2012
Slide 38
Slide 38 text
FooLab
Team Size
28
Yourself vs 20 devs
Saturday, August 11, 2012
Slide 39
Slide 39 text
FooLab
Team Size
28
Yourself vs 20 devs
More docs
Less docs
Saturday, August 11, 2012
Slide 40
Slide 40 text
FooLab
Team Proximity
29
Same
office
vs Remote
Saturday, August 11, 2012
Slide 41
Slide 41 text
FooLab
Team Proximity
29
Same
office
vs Remote
More docs
Less docs
Saturday, August 11, 2012
Slide 42
Slide 42 text
FooLab
Good Documentation
• Makes your software easier to build and maintain
• Makes your team more effective
• Discover new features before implementation
30
Saturday, August 11, 2012
Slide 43
Slide 43 text
FooLab
Mind Maps
Saturday, August 11, 2012
Slide 44
Slide 44 text
FooLab
Systems Analysis and
Design and/or UML book
Saturday, August 11, 2012
Slide 45
Slide 45 text
FooLab
Next Steps
• I will tweet the slides:
@afilina
• Please leave feedback:
http://joind.in/6838
33
Saturday, August 11, 2012
Slide 46
Slide 46 text
FooLab
Ask me which software
I use.
Saturday, August 11, 2012
Slide 47
Slide 47 text
FooLab
Ask me which software
I use.
astah, Balsamiq
Saturday, August 11, 2012