Structured Programming and Procedural Programming
We have been learning, accessing, and applying methods available in Python (it would be impossible to teach Python without doing so). Although the syntax and use of these methods are inherently object-oriented, we have been using them in the context of procedural program design and in the form of structured programs. Recall that procedural programs use functions as a way of breaking a program down into a set of procedures to solve a problem. Read this page to learn why we have been arranging our programs the way we have.
Software Documentation
Software documentation is an important part of the software process. A well-written document provides a great tool and means of information repository necessary to know about the software process. Software documentation also provides information about how to use the product.
A well-maintained documentation should involve the following documents:
Requirement documentation - This documentation works as a key tool for software designers, developers, and the test team to carry out their respective tasks. This document contains all the functional, non-functional, and behavioral description of the intended software.
The source of this document can be previously stored data about the software, already running software at the client's end, client's interview, questionnaires, and research. Generally, it is stored in the form of a spreadsheet or word processing document with the high-end software management team.
This documentation works as a foundation for the software to be developed and is majorly used in verification and validation phases. Most test-cases are built directly from requirement documentation.
Software Design documentation - These documentations contain all the necessary information, which is needed to build the software. It contains: (a) High-level software architecture, (b) Software design details, (c) Data flow diagrams, (d) Database design
These documents work as a repository for developers to implement the software. Though these documents do not give any details on how to code the program, they give all necessary information that is required for coding and implementation.
Technical documentation - These documentations are maintained by the developers and actual coders. These documents, as a whole, represent information about the code. While writing the code, the programmers also mention the objective of the code, who wrote it, where will it be required, what it does and how it does, what other resources the code uses, etc.
The technical documentation increases the understanding between various programmers working on the same code. It enhances the re-use capability of the code. It makes debugging easy and traceable.
There are various automated tools available and some come with the programming language itself. For example, java comes JavaDoc tool to generate technical documentation of code.
User documentation - This documentation is different from all the above explained. All previous documentations are maintained to provide information about the software and its development process. But user documentation explains how the software product should work and how it should be used to get the desired results.
These documentations may include software installation procedures, how-to guides, user-guides, uninstallation methods, and special references to get more information like license updation, etc.