Summary: | Evidence from literature indicates prevailing issues in relation to the documentation of software systems. Documentation requires significant effort to create and maintain and this can often reduce the inclination to produce it in a timely manner and to ensure that it remains up to date with the program which code it corresponds to. As a result, documentation is not entirely trusted as a source of consultation during software maintenance tasks. Existing tool support neglects important aspects of detailed design documentation for software systems. This work proposes a design for a novel research tool which provides improved support for the detailed design and documentation of software systems and which addresses the prevailing issues identified. At the core of this tool is a ‘dynamic synchronization’ feature which automates the process of detecting and synchronizing changes between program code and documentation at the level of detailed algorithms in code; preventing them from getting out of date. An evaluation experiment was designed and conducted wherein the research tool was used to complete a series of programming and documentation tasks representing typical software development and code maintenance scenarios. The results show that software developers using the dynamic synchronization feature had a significant 66 percent reduction in the time required to keep their documentation up to date during a code maintenance task (p < 0.01), and a significant 31 percent reduction in the time to complete the maintenance task (p < 0.01). In a questionnaire, they expressed a significant 20 percent higher confidence level that their documentation was an accurate reflection of their code than software developers using non-synchronized forms of documentation (subjective measure, p = 0.03). Further areas of research and development are proposed.
|