Not Your Typical Prose: By Amy Hunt Documenting Software - - PowerPoint PPT Presentation

not your typical prose
SMART_READER_LITE
LIVE PREVIEW

Not Your Typical Prose: By Amy Hunt Documenting Software - - PowerPoint PPT Presentation

Not Your Typical Prose: By Amy Hunt Documenting Software Documentation The Intersect! 11 Years in the Industry Liberal Software Studies Development Annotation Terminology Software/ [Source] Code Software Documentation


slide-1
SLIDE 1

Not Your Typical Prose:

Documenting Software By Amy Hunt

slide-2
SLIDE 2

Documentation

slide-3
SLIDE 3

The Intersect!

Software Development

Annotation

11 Years in the Industry

Liberal Studies

slide-4
SLIDE 4

Terminology

  • Software/ [Source] Code
  • Software Documentation

– Internal Documentation – External Documentation

  • Comments/Annotation
  • Developers/Programmers
  • Self-Documenting Code (will get to later)
  • Literate Programming (will get to later)
slide-5
SLIDE 5

Outline

This thesis has three(3) distinct parts

  • Theoretical: History of code and
  • comments. Why have comments NOT

been talked about in software studies?

  • Qualitative analysis of comments as used

in practice using “QDA Miner”

  • Reflective: Survey of how programmers

think about their source code commenting habits.

slide-6
SLIDE 6

Abstract

  • Comments address future technical audiences

and serves to remind the software engineer of earlier decisions

  • Writing to your future self isn’t as easy as you
  • think. It’s part didactic, part egotistical, but

mostly an essential communication tool.

  • While computer languages have intuitive and

clear syntax, they were made for the compilers and not the developer; therefore, they still need some human interpretation of what it is doing

slide-7
SLIDE 7

Code is Open to Interpretation

Machine Code: 01001001 00100000 01101100 01101111 01110110 01100101 00100000 01100011 01101111 01101101 01101101 01100101 01101110 01110100 01110011 00100001

Source Code: print

Python 3.2

(‘I Love Comments!’)

#Print comment proclamation #so people know my passion

What? Why? Compiler

slide-8
SLIDE 8

Abstract Continued….

  • Writing readable code is an art that has

been extensively written about

– Self-Documenting code – Programmers should be able to read the code and understand what it is doing – If not, rewrite so it is clearer!

What happens if it’s not clear….

slide-9
SLIDE 9

Apply Literate Programming

  • Donald Knuth (1981)

“I believe that the time is ripe for significantly better documentation of programs, and

that we can best achieve this by considering programs to be works of literature. “

  • A programming language and

documentation system.

  • Good Code+ Narrative Comments
  • Almost…
slide-10
SLIDE 10

Why is it so important?

  • Today our world is dominated by rapidly

developing technologies that are built on collaboratively developed toolkits. Apps developed for the iPhone or the Android platform, for example, are complex and highly modular.

  • Maintaining and sharing code is essential
slide-11
SLIDE 11

Modularity – Real World Example

READ ME Model File View Files Controller File Configuration Set up Scripts Data File

slide-12
SLIDE 12

Cooperative Communities

  • A kind of code digital “commons”
  • Open Source

– Github – Google Code

  • Creating a community of software

developers who read and write code

slide-13
SLIDE 13

Interpretive movement

  • Ease of debugging (Maintenance)
  • Small program size
  • Comments are visible to all readers and

consumers of the code.

slide-14
SLIDE 14

Software Studies

Software studies are a series of short studies: “[a] speculative, expository, and critical text on particular digital objects, language, and logical structures.”

  • -Matthew Fuller
slide-15
SLIDE 15

Source Code Text Retrieval

  • QDA Miner is an easy-to-use qualitative

data analysis tool for coding, annotating (note features), retrieving and analyzing

  • Free Version
  • Licensed Version
  • Small learning curve for basic features

slide-16
SLIDE 16

QDA Miner

  • 180 Cases thus far…
  • 3 Variables (attributes to tag each

document)

– Language – Audience – Commented

  • 30 Codes (strings to retrieve, count, and

apply statistical analysis to)

slide-17
SLIDE 17

QDA Miner

slide-18
SLIDE 18

Survey Says…

  • Comment on Comments
  • Anonymous
  • Message Boards/Word of Mouth
  • 10 Questions/4 general categories

– Demographical – Academic Background – Experience – Habits

slide-19
SLIDE 19

Results

  • 168 Programmers
  • 23 Different Countries
  • 25 different states in the United States.
  • The biggest U.S. state representations

were from New Hampshire, New Jersey, and California.

slide-20
SLIDE 20

Statistics from Survey

86% 12% 0% 2%

Gender

Male Female Other I would rather not say No 45% Skipped 28% Yes, some kind 27%

Formal Training

slide-21
SLIDE 21

Conclusion

  • Developers think they are pretty good at

commenting, and generalize other’s comment habits as “poor”

  • “Whys” are always better than “hows”
  • Comments help with comprehension
  • Literate Programming is a life style change
  • Automatic documentation generation does helps
slide-22
SLIDE 22

Misconceptions

  • No Tower of Babel for Code/Comments

yet!

slide-23
SLIDE 23

Thank you!

  • Comments? J
  • Questions?