How to cite software is an evolving topic. There are, of course, instinctive proposals from conventional sources, such as the MLA but this is usually geared toward webpages or online articles.
The Software Sustainability Institute suggests citing an associated paper, when the developers request, but also notes that this is likely not enough. In cases when there is no such direct guidance, the software should be cited via a DOI (or other UUID) or URL. However, they do not go into detail about what the best or most appropriate citation style would be, instead taking a "something is better than nothing" approach.
Occam captures software as an artifact and detaches it from other software that may be required to build or run the original object. Therefore, it allows a stronger citation because a link to a particular version of a software artifact in Occam will also be a link to the provenance of that object. This would include descriptions and links to the exact versions of applications or software libraries used to compile the program.
Furthermore, data provenance would also include, if applicable, links to the versions of software used in its generation. For instance, a data file containing statistics would automatically be linked to the simulator or analysis script that generated it. This link would, in turn, link to software used in the creation or in support of that software.
Occam can generate, on any artifact landing page, a citation in a variety of formats, including BibTeX. The artifact can have its own associated citation in its metadata such that it can craft its own citation to a paper or other external artifact. Otherwise, Occam will generate its best approximation of a citation for the current artifact.
It is a goal that such a link or citation can be resolved to a page where the software is described, can run and/or build, and can have its own files and dependencies inspected. Furthermore, any external resources are linked and you can inspect their original sources. And finally, that you can fork that software and modify it, or simply easily use it in your own workflows.