Introduction

  • Documentation is an integral part of the software development process and can not be ignored and should not be taken lightly.
  • Incomplete and inaccurate documentation may pose a serious hurdle to the success of a software project during development and implementation.
  • The documentation process itself requires proper planning like the software development process.

Definition

  • Documentation may be defined as the process of communicating about the system. The person responsible for this communication is called the Documenter. Here, the documenter is not responsible for the accuracy of the information, and his job is just to communicate or transfer information.
  • Documentation is a process that helps software users and other people interact with the system.

Characteristics

  • The document of a system communicates the details about the system to different connected or related audiences. It explains the system. The ever-increasing complexity of information systems requires emphasis on well-established systems of documentation.
  • Documentation becomes part of each step of system development throughout the process of system development even before the documentation starts officially.
  • During the process of system development, study reports and other necessary information are documented to help people involved in system development to understand the process.
  • Documentation should not be seen as an overhead for system development. Rather, documentation has to be seen as an investment for the development of high-quality software.
  • Any software project is associated with a large number of documents depending on the complexity of the project. Documentation that is associated with system development has several requirements.

Need/Importance of Documentation

Documentation is needed because it is –
  • Good documentation projects the quality of software. Good documentation conveys a message of intelligence and professionalism. The documentation affects very much the quality of the softwareEvery system should be delivered along with an accurate and understandable document to those who will use the software. Effective and accurate documentation is very necessary for the success of any system.
  • A means for the transfer of knowledge and details about the description of the system.
  • Communicate among different teams of the software project.
  • To help with corporate audits and other requirements of the organization.
  • To meet regulatory demand.
  • Needed for IT infrastructure management and maintenance and
  • Needed for migration to a new software platform.

    Types of Documentation/Document

    • Various necessary documents like System requirement specification (SRS), System Design Specification (SDS), Test Design Document, and User Manuals are normally produced during the life cycle of a software development process of a complex system.
    • There are many kinds of documentation namely –
      • System Requirements Specification(SRS) Documentation/Documents

    Link for SRS More Details

      • Analysis Documentation/Document

    Link for Analysis Document More Details

    •  
      • Design Documentation/System Design Specification (SDS) Document

    Link for SDS More Details

      • Interface Documentation/Document
        • Interface documentation is a critical part of software development that describes how different software components, systems, or modules interact with each other.
        • Interface documentation is essential for ensuring that software components can communicate and interact effectively.
        • It provides detailed guidance on how to use an interface, what data it requires, how it handles errors, and how it ensures security.
        • By following best practices and keeping the documentation clear, consistent, and up-to-date, you ensure that all stakeholders can effectively use and integrate the system’s components.
        • This documentation provides the necessary details to developers, testers, and integrators to ensure that the components can communicate effectively, exchange data correctly, and work together seamlessly.
        • This document defines how different systems or components will communicate, including data formats, protocols, and methods.
        • This document helps developers integrate different components or systems by providing clear guidelines on how interfaces should be used.
        • This document ensures that all system parts interact consistently, reducing the likelihood of errors or integration issues.
        • This document provides a reference for future maintenance and updates, making modifying or extending the system without breaking existing functionality easier.
        • It includes an introduction, an overview of the Interface, interface specification(data structures, function, etc), protocols and standards, security considerations, error handling, testing & validations, appendices, etc.
        • Criteria for Interface Documentation

          • Clarity and Precision: It should be ensured that the documentation is unambiguous and try to avoid jargon and be precise in describing the interface’s behavior.
          • Consistency: It is suggested to maintain consistency in terminology, structure, and formatting throughout the documentation.
          • Keep It Up-to-Date: It is believed that documentation should be regularly updated to reflect changes in the interface, such as new methods, deprecated features, or updated security practices.
          • Use Visual Aids: It is suggested that where appropriate, include diagrams, flowcharts, or tables to help illustrate complex interactions or data flows.
          • Accessibility: Try to make the documentation easily accessible to all intended users in their simple format, whether it’s through a web-based interface, PDF, or other means.
      • Internal Program Documentation/Document
        • Internal Program Documentation is crucial for the successful development, maintenance, and scaling of software applications.
        • By providing clear, concise, and relevant documentation within the code, developers can ensure that their work is easily understood, maintained, and extended by others.
        • Using best practices in this documentation not only improves the quality of the software but also enhances collaboration and reduces the likelihood of errors in the long term.
        • Internal program documentation is essential for understanding, maintaining, and updating software code.
        • It refers to the comments, annotations, and explanations embedded directly within the codebase, as well as any associated technical documents that describe the software’s structure, logic, and functionality.
        • This documentation is primarily intended for developers and technical stakeholders who work on or interact with the code, either during initial development or throughout the software’s lifecycle.
        • Internal Program Documentation is a set of documents, comments, and annotations within the source code of a software application that provides developers with insights into the design, structure, and logic of the code.
        • This documentation is vital for the maintainability, scalability, and understandability of the software, especially when multiple developers are involved, or when the software needs to be updated or debugged in the future.
        • This documentation helps developers quickly understand the purpose and functionality of different parts of the code.
        • This documentation makes it easier to maintain, update, and refactor the code by providing clear explanations of how the code works.
        • This documentation assists in identifying and fixing bugs by explaining the logic and flow of the program.
        • This documentation mainly includes code comments, method and function documentation, class and module documentation, variable and data structure documentation, algorithm and logic documentation, Configuration and Metadata Documentation, Version Control Annotations, etc. processes.
        • To make a good Internal Program Documentation –
          • Documentation should be concise and directly related to the code.
          • Avoid unnecessary comments that do not add value.
          • Use clear, simple language, and maintain consistency in terminology and style throughout the documentation.
          • Focus on explaining why the code is written a certain way, not just what it does. This helps future developers understand the rationale behind decisions.
          • Utilize tools like Javadoc for Java, Doxygen for C++, or Sphinx for Python to generate consistent and structured documentation from the codebase.
      • Test Design Documentation(TDD)/Document
        • Test Design Documentation is a critical element in the software testing process, providing a structured and detailed plan for how testing will be conducted.
        • By carefully planning and documenting the testing approach, teams can ensure thorough testing coverage, effective defect management, and clear communication with all stakeholders.
        • Test Design Documentation is a detailed document that outlines how the testing process for a software application will be conducted.
        • It includes the plan, scope, approach, resources, and schedule for the testing activities, and serves as a blueprint for the testing team to ensure comprehensive coverage and effective testing of the system.
        • This document is crucial for maintaining a structured and organized approach to testing, ensuring that all aspects of the software are thoroughly tested and that any issues are identified and resolved.
        • This documentation outlines the approach and methodology that will be used to test the software.
        • This documentation ensures that all aspects of the software, including functionality, performance, security, and usability, are covered.
        • This document provides a clear and detailed plan that can be communicated to all stakeholders, ensuring alignment on the testing approach.
        • Using the best practices in creating and maintaining this document is key to the success of the testing phase and, ultimately, the quality of the final software product.
        • For creating the best test design documentation – 
          • The document should be clear and detailed enough that any member of the team can understand and follow it.
          • The document should be kept up-to-date with any changes in the project or testing process.
          • The document should involve key stakeholders in the review process to ensure all requirements and concerns are addressed.
          • The document should structure the document into well-organized sections and subsections to make it easy to navigate and update.
        • Test Design Documentation includes an Introduction, Test objectives, Test Scope, Test Strategy(Test levels, Test types, Test design techniques, etc), Test environments, Test cases, Defect Management, Risk Analysis, Test metrics & reporting,  Test team roles and responsibilities, Appendices, etc.
      • User-Oriented Documentation/User Manual Document

    Link for More User Manual Details

    Stages of Documentation Process

    • Traditionally, documentation was done after the development of the software was completed. However, as the software development process is becoming complex, documentation has become an integral part of each system development process and documentation is now carried out at every stage as a part of the development process.
    • When the process of documentation is undertaken as a separate process, it requires planning in its own right. Documentation is done alongside each step of the development process. Design and development activities of software depend on a certain base document. Documentation is to be carried out before actually implementing the design. In such a case, any flaw in the design identified can be changed in the document thereby saving cost and time during implementation. 
    • If documentation is being developed for an existing software/system, then documentation is done alongside the software development process.
    • The following are common steps involved in the process of documentation:-
      • Collection of Source Materials:
        • The very first step of any documentation process is to acquire the required source material for the preparation of the document.
        • The material is collected including specifications, formats, screen layouts, and report layouts. A copy of the operational software is helpful for preparing the documentation for the user.
      • Documentation Plan:
        • The documenter is responsible for the preparation of a documentation plan, which specifies the details of the work to be carried out to prepare the document.
        • It also defines the target audience.
      • Review of Plan:
        • The plan as set out in the process above is reviewed to see that the material acquired is correct and complete.
      • Creation of Document:
        • The document is prepared with the help of the document generator.
      • Testing of Document:
        • The document created is tested for usability as required by the target audience.
      • Maintain Document:
        • Once the document is created and distributed, it must be kept up to date with the new version of the software product.
        • It must be ensured that the latest document is available to the user of the software.

    Documentation Standards (ISO and IEEE)

    Introduction
    • Since documentation comes in many forms, e.g., specifications, reports, files, descriptions, plans, source code listings, change requests, etc., and can be in electronic or paper form, and also studies shows that poor quality, out-of-date, or missing documentation is a major cause of errors in software development and maintenance hence an International Documentation Standard is required for proper functioning worldwide.
    • Inaccurate, incomplete, out-of-date, or missing documentation is a major contributor to poor software quality. That is why standard and international documentation and document control have been given due importance in ISO 9000 standards and, the SEI CMM software Maturity model. 
    Definition
    • The Documentation Standard defines various aspects of documentation such as style, format, and the document revision/change process of these documents.
    • The software documentation standard is required and is used in the organization for uniform practices for documentation preparation, interpretation, change, and revision, to ensure the inclusion of essential requirements of different standards.
    • This standard will also aid in the use and analysis of the system/sub-system and its software documentation during the system/software life cycle development of a software project.
    Characteristics
    • One basic goal of documentation standards using software engineering is to produce the best possible working software along with the best possible supporting documentation.
    • This software documentation standard is used in the organization for uniform practices for documentation preparation, interpretation, change, and revision, to ensure the inclusion of essential requirements of different standards.
    • Sometimes, documentation as per various standards is stated in the contractual agreement between the software vendor and the customer.
    • The software life cycle process describes documentation as one of the supporting parallel processes of the software development process.
    Types of Documentation Standards
    • The following are different documentation standards:-
      • ISO/IEC (International Standard Organization/International Electrotechnical Commission)12207: 
        • This standard is not a documentation standard but describes the process of documentation during the software development process.
        • This standard describes documentation “as a supporting activity to record information produced by a system development life cycle process.”
      • ISO/IEC 18019:
        • This standard describes and guidelines for the design and preparation of user documentation for application software.
        • This standard describes how to establish what information users need, how to determine how that information should be presented to the users, and then how to prepare the information and make it available.
        • It covers both online and printed documentation.
        • It describes the standard format and style to be adopted for documentation.
        • It gives principles and recommended practices for documentation.
      • ISO/IEC 15910:
        • This standard describes the Software user documentation process.
        • This standard specifies the minimum process for creating user documentation for software that has a user interface, including printed documentation (e.g., user manuals), online documentation, help text, and online documentation systems.
      • IEEE 1063:
        • This standard is considered Software User Documentation.
        • It provides minimum requirements for structure, information content, and format for user documentation.
        • It does not describe the process to be adopted for documentation.
        • It is applicable for both printed and online documentation.

    Use/Application of Documentation

    •  Documentation is used by different types of audiences in different ways for different purposes which are as follows:-
      • They act as a means of communication between the members of the development team.
      • Documents are used by the maintenance engineer.
      • Documents are used by the user for the operation of the software.
      • Documents are used by the system administrator to administer the system.

    Loading


    0 Comments

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    This site uses Akismet to reduce spam. Learn how your comment data is processed.