Lecture 36: Software Documentation (Internal & External)
Unit 5: Software Coding and Testing (4353202)
Lecture Agenda
- Recap of Code Review Techniques
- What is Software Documentation?
- Why is Documentation Important?
- Internal Documentation
- External Documentation
- Best Practices for Software Documentation
- Key Takeaways
Recap of Code Review Techniques
Code review techniques like Walkthroughs (informal, author-led) and Inspections (formal, structured) are crucial for finding defects, improving code quality, and facilitating knowledge transfer.
What is Software Documentation?
Software Documentation refers to all written materials that describe a software system. It includes information about the software's design, development, functionality, and usage.
It serves as a critical communication tool among developers, users, and other stakeholders throughout the software lifecycle.
Why is Documentation Important?
- Knowledge Transfer: Helps new team members understand the system quickly.
- Maintenance: Facilitates easier bug fixing, updates, and enhancements.
- Communication: Ensures a shared understanding among all stakeholders.
- Quality Assurance: Provides a reference for testing and verifying requirements.
- User Support: Enables users to effectively use the software and troubleshoot issues.
- Compliance: Meets regulatory and contractual requirements.
Internal Documentation
Internal documentation is created for the development team and maintainers. It focuses on the technical aspects of the software.
- Code Comments: Explanations within the source code itself, clarifying complex logic, purpose of functions, etc.
- API Documentation: Describes how different modules or components interact, including function signatures, parameters, and return values.
- Design Documents: Detailed descriptions of the software architecture, module designs, database schemas, and algorithms.
- Technical Specifications: Documents outlining technical requirements and implementation details.
External Documentation
External documentation is created for end-users, administrators, and other non-technical stakeholders. It focuses on how to use and operate the software.
- User Manuals: Step-by-step guides on how to use the software's features.
- Installation Guides: Instructions for setting up and configuring the software.
- Troubleshooting Guides/FAQs: Common problems and their solutions.
- System Administration Guides: For IT professionals on how to deploy, manage, and maintain the software in a production environment.
- Release Notes: Summaries of new features, bug fixes, and known issues in each software version.
Best Practices for Software Documentation
- Keep it Up-to-Date: Documentation should evolve with the software.
- Target Audience: Write for the intended audience (technical vs. non-technical).
- Clarity and Conciseness: Use clear, simple language and avoid jargon where possible.
- Consistency: Maintain a consistent style, format, and terminology.
- Version Control: Store documentation in a version control system alongside the code.
- Accessibility: Make documentation easily accessible to those who need it.
Key Takeaways
- **Software documentation** is crucial for successful software development and maintenance.
- It is categorized into **Internal** (for developers) and **External** (for users/admins) documentation.
- Good documentation facilitates **knowledge transfer, maintenance, and user support**.
- Adhering to **best practices** ensures documentation is effective and useful.
Next Lecture
Topic: Unit Testing
Q & A
Questions & Discussion

