If you have ever seen a computer directory on a network drive in your company named "software documents" or "software guides" and then looked at documents you had permission to view, you probably realized the number of documents and types of documents for software are numerous. It would also appear that some documents placed in one category apply to other categories as well. Software documents are used at every stage of a typical software life cycle, so that is a good place to investigate the type of documents created.
A software proposal specifies software system requirements and delineates the purpose of the software and the issues it resolves. It will also specify the estimated time the software project will take and other factors affecting the proposal.
The feasibility study usually takes place at the outset of the project. This stage determines whether the software plant satisfies the business needs of the customer. The outcome of a feasibility study decides whether a project will go ahead or not.
A requirements analysis provides the means to translate business requirements into automated software solutions. An external consultant or company management usually performs this task. The requirements translate business requirements into actual specifications for hardware, software and components.
Design documents provide the basis for software development to commence on a technical level. As the name suggests, a number of graphical and textual designs for databases, interfaces, communications, web developments and other aspects of the software will be designed before coding can commence.
Coding documents refer to the actual source code used for the programming of software. The code may be written in any number of available computer languages, including Java, C++, PHP and hundreds of other computer languages depending on the system used.
Testing teams and developers create testing documents at various stages of the software life cycle. Developers create unit-testing documents for their own code. The testing team or other people not directly associated with the code undertake integration testing and business requirements testing.
User Guides and Marketing
User guides provide instructions on how the new software works. If the system is large and complex, user guides are usually backed up by formal training courses for staff. Marketing documents illustrate the benefits of the new software system to potential customers.
The issuing of software licenses make the software use legal as far as the end user is concerned. Users use software under the terms of a software license issued by the authoring company. Not all software has strict licensing terms, and this is particularly true in the case of open source. Generally, software systems have some form of licensing document in place specifying how and where the software can be used.