Applied Software Visualisation: Active and Continuous Synchronisation of Code and Requirements in Agile Development Processes - Mujtaba, Alshakhouri (Auckland University of Technology, 2023)
Software engineering has long been facing a challenge of ever-increasing product/process complexity due to the large numbers of interdependent components that developers need to work with on a daily basis. Making sense of how those components relate, interact, and affect each other is required before developers can optimally fulfil a task at hand. As a result, researchers report that up to 50% of developers’ time is used—and perhaps wasted—on trying to figure such things out. This problem is further exacerbated by the fact that documentation and design requirements typically exist in a separate and disconnected state from their actual implementations, making it harder for developers to access, form, and understand the necessary associations and their implications for work. Software visualisation has been acknowledged as offering highly promising potential in presenting visual representations that allow software practitioners to approach their systems with reduced complexity—with many empirical works demonstrating advantages gained across varying sets of tasks and contexts. However, real-world software practitioners have not yet benefited from these advantages, and the field is facing an increase in calls for work that is “applied” to specific and real- world usage contexts. There is increasing focus on making software visualisation more practical, and more accessible to those who need it. For example, ‘integration into development environments’ has been a recurring topic for the past few years in the field’s top specialised research venues. The research reported in this thesis recognises the current disconnection between software visualisation research and practitioners in the real world. It employs a design science research approach that incorporates the end user in the design and development process from an early stage, with a sequence of iterative feedback-design loops. It argues that this is important to better align the resulting research artefact with the actual needs, environments, and ways of working of intended users. It further applies the technology to address important and outstanding issues in software engineering. This research contributes to the discipline by reporting on the processes followed, lessons learned, and the findings of a three-stage evaluation process with expert users. It further introduces a promising application of the technology to the software traceability problem, offering users the benefit of an advanced metaphorical software visualisation within the highly popular Vscode platform. It introduces the first language-agnostic visualisation approach, demonstrated over 15 open-source multi-language projects. Lastly, it introduces live and continuous synchronisation of design artefacts existing on agile dashboards with their actual code artefacts in the development environment, allowing users to access both side by side and so form and understand those important associations on the spot.