Towards automatically generating explanations of software systems Generating explanations of a web-template system in different abstraction levels
Examensarbete för masterexamen
Traditional software documentation is often challenging to manage as its content grow. For example, information becomes scattered, information become hard to retrieve and the documentation has to satisfy multiple different stakeholders. The aim of this study was to find ways to address these challenges. It followed a design science research approach, with one case used for demonstration and evaluation. A tool, System Explanation Composer (SEC), was built to explore how software artifacts and architectural knowledge (AK) could be interrelated and how different aspects of the case system could be explained and presented. A meta-model which presents software artifacts and AK was designed. This meta-model interrelates knowledge in the following four categories; requirements, architecture, rationale, and implementation. SEC generates explanations to a selected set of commonly asked development related questions using this meta-model. These explanations were evaluated using a quantitative and a qualitative approach. Although the sample size of the evaluation was too small for making any generalizable statements, the quantitative results strongly indicate that participants in this study solved development-related tasks faster, more accurately and more independently using SEC as opposed to using file-based documentation. The qualitative results also support this statement and indicate that SEC could further assist developers in performing their daily tasks more efficiently after improving two main aspects: the behavior and rationale sections of the meta-model and the query system of SEC.
software , explanation , architectural view , requirement , architecture , rationale , implementation , ontology , artifacts , architectural knowledge