August 1st, 2012 (orig) March 20th, 2014 (last updated)
APA Software Reference and Citation
The field of Software Engineering is not exempt from maintaining the same academic standards of other STEM disciplines. Yet it has been the case that citation for software has been largely ignored, even suggestively so. For my own papers and research I have adopted an APA-style of citation for software which I present here.
APA Format Structure - Software Reference
Developer, A. [(Programmer)] [Dev, B., ...]. (Year[, Month[ Day]] of Release[; Version 1.0]). [Publisher:] Title of Software [; Container file]. [path/to/]filename] [Retrieved from url [on Date]]
APA Format Example - Software Reference
Smith, A., Smith, B. (Designer) (1996, February 22; Alpha 0.0.8). QualSoft: Quikpak: quikpak.exe. Retrieved from ftp://ftp.qualsoft.net on 03/11/96
APA Format Structure - Software Citation
(Title of Software; Year[, Month[ Day]] of Release[; Version])
APA Format Example - Software Citation
The XML export feature was removed (Quikpak; 2007; v3.2) which caused quite a stir.
When citing software with many developers/authors (e.g. AAA Video Game with hundreds of developers) you may choose to select a more relevant sub-group such as the Programming Leads, the Directors, or even the specific developer(s) that worked on the subject matter being referenced. When including non-software engineers (e.g. Animator) then it would be appropriate to reference that with parentheses after the name.
That Authors/Developers are software engineers/programmers is implicit, unless otherwise noted, and as such the title/position/job is optional.
Usernames, screen names, handles, may be more prominent, more relevant, or the only viable option than actual (legal) names. If you come across a user whose real name isn’t available, use only their screen name without brackets.
Version is optional if date of release is known. If the release date is unknown, every effort should be made to at least obtain the specific version. With in-text citations, it is recommended to include version with release date.
Not all software has a real publisher, therefore it is an optional component.
Container files are optional, and even then may not be a traditional container type (e.g. ZIP file) but rather an installation type (e.g. executable)
A filename is not limited to source code, or even text files, but may also be media (e.g. MKV file) or any filetype which is able to convey or provide support for the reference being made.
Since there may not be a URL from which to retrieve (e.g. from a CD), or is behind a paywall, the retrieval url section is optional.
For url retrieval, non-HTTP[S] protocols are permitted (e.g. ftp://).
For url retrieval, a link to something like a GitHub repository would be acceptable.