Omhyggelig forberedelse, design og evaluering af software designs er en del af processen omkring kvalitetssikring af software. Kvalitet omfatter pålidelighed, vedligeholdelsesvenlighed, genbrugelighed og andre ikke-funktionelle egenskaber af softwaren. Tidlig dokumentation af software befordrer højere kvalitetsegenskaber før kodning af designet.
Skabeloner, teknikker og værktøjer, der anvendes i dokumentationsprocessen, er baseret på standarder og de-facto-standardtilgange.
Dokumenter
Alle faser og aktiviteter i softwareudviklingsprocessen bliver hensigtsmæssigt dokumenteret.
Nogle eksempler på dokumenter er:
- Kravspecifikation
- Arkitektur Design
- Detaljeret Design
- Unit Test Specifikation
- Integrationstest Specifikation
- Verifikations- og Valideringstest Specifikation
Dokumentationspakken er projektafhængig, og den tilpasses ønsker og krav.
Teknikker og Værktøjer
Nogle dokumentationsteknikker og -værktøjer er:
- View-based arkitektur design
- I overensstemmelse med IEEE 1471-2000, ANSI/IEEE’s anbefalede bedste praksis for arkitekturbeskrivelse af software-intensive systemer.
- UML
- Detaljeret design, der typisk bruger det grafiske modelleringssprog UML, til visualisering, specifikation, konstruktion og dokumention af artefakterne i et softwaresystem på en måde, der er intuitiv og let at forstå.
- Doxygen
- Doxygen er et skridt i retning af tættere integration mellem dokumentation og implementering, hvis det bruges hensigtsmæsssigt.
Nogle strukturerede tilgange til softwaredesign og teknikker er:
- Design Patterns
- Design by Contract
- Modellering i UML
Referencer
Udvalgte referencer til dokumentation af softwareudviklingsaktiviteter:
- 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.
Andre referencer vedrørende softwarekvalitet:
- 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.