slide-documentation

Documentation

The process of appropriately preparing, documenting and evaluating software designs is part of the software quality assurance process. Quality is about reliability, maintainability, reuse properties etc. of the software.

Templates, techniques and tools applied in the documentation process are based on standards and de-facto standard approaches.

Documents

All phases and activities in the software development process are properly documented.

Some examples of documents are:

  • Requirements Specification
  • Architectural Design
  • Detailed Design
  • Unit Test Specification
  • Integration Test Specification
  • Verification and Validation Test Specification

The package of documentation is project dependent and it is suited according to requests and requirements.

Techniques and Tools

Some documentation techniques and tools are:

  • View-based architectural design
    • Complying with IEEE 1471-2000, the ANSI/IEEE recommended practice for architectural description of software-intensive systems.
  • UML
    • Detailed design typically using the UML graphical modeling language visualizing, specifying, constructing and documenting the artifacts of a software system in a way that is intuitive and easy to understand.
  • Doxygen
    • Doxygen is a step towards closer integration between documentation and implementation if it is used appropriately.
Some structured approaches to software design and techniques are:

  • Design Patterns
  • Design by Contract
  • Modeling in UML

References

Selected references for documentation of software engineering activities:

  • Applied Software Project Management
    Andrew Stellman, Jennifer Greene. O’Reilly, 2006.
  • Software Cost Estimation with COCOMO II
    Barry W. Boehm et al. Prentice Hall PTR, 2000.
  • Software Requirements
    Karl E. Wiegers. Microsoft Press, 2003.
  • Software Architecture in Practice
    Len Bass, Paul Clements, Rick Kazman. Addison-Wesley, 2003.
  • Documenting Software Architectures
    Paul Clements et al. Addison-Wesley, 2003.
  • The Unified Modeling Language User Guide
    Grady Booch, James Rumbaugh, Ivar Jacobson. Addison-Wesley, 2005.
  • Real-Time Design Patterns
    Bruce Powel Douglass. Addison-Wesley, 2003.
  • Doing Hard Time
    Bruce Powel Douglass. Addison-Wesley, 1999.
  • Software Testing Fundamentals
    Marnie L. Hutcheson. Wiley, 2003.
  • Critical Testing Processes
    Rex Black. Addison-Wesley, 2004.
  • Interaction Design
    Helen Sharp, Yvonne Rogers, Jenny Preece. Wiley, 2007.

    Other references covering topics in software quality:

  • Software Quality Assurance
    Daniel Galin. Pearson Addison-Wesley, 2004.
  • Metrics and Models in Software Quality Engineering
    Stephen H. Kan. Addison-Wesley, 2004.
  • Code Complete
    Steve McConnell. Microsoft Press, 2004.
bilder