Back to top

Master's Thesis Ankitaa Bhowmick

Last modified Sep 21, 2015
   No tags assigned

Improving the Software Architecture Documentation Processes for the MediaWiki Software

Abstract

The task involves the initial research on the available state-of-the-art Software Architecture (SA) documentation processes, tools, etc. that help to maintain a Software Architecture documentation.

Comprehension of the SA documentation process at Wikimedia keeping the evaluation goals in mind is an essential part of this thesis. It also focuses on critical evaluation of the SA documentation process to derive requirements for its improvement.

That is why an improved SA documentation process will be proposed and evaluated.

Motivation

A good software architecture is the starting point or more so, a focal point of a good software. But to make this software maintainable, extendable and sustainable, a state-of-the-art SA documentation process is required. Especially, complex open-source software that grow exponentially with time, e.g. MediaWiki, this documentation needs to satisfy the needs of new developers, provide a holistic view of the current changes to the users and also provide means for documenting the ideas of the software architect himself.

This research thesis aims to analyze the current software architecture documentation process of MediaWiki and understand its utility for different stakeholders. The evaluation of this existing documentation process will reveal its level of usability and maintainability. This will further give a way for possibly a better standard of a maintainable documentation process that can be utilized in similar large open-source projects in future.

Also, an idea for a SA documentation tool can be proposed that can improve the documentation process with respect to the different views for different stakeholders.

Research Questions

  1. What state-of-the-art architecture documentation process (methodology, tools) are available in the industry?
  2. What are the metrics for evaluation of the software architecture documentation process?
  3. Are there any processes that meet domain-specific requirements?
  4. How software architecture documentation process can be improved for Wikimedia Software?
  5. Which specific requirements should be met by architecture documentation tool at Wikimedia?
  6. Automatic quality assurance - identify missing parts 

Methodology

Step1: Review the available SA documentation processes and analyze its quality.

            Find out who are the stakeholders

            Interview the stakeholders

            Derive new requirements from the interviews

Step 2: Present ideas for a better maintainable SA documentation.

            IRC is not enough as a documentation process.

            Analysis of the existing tools for documentation process

            Defining a tool that satisfies previously derived requirements (??)

            Perform documentation process using previously defined tool

Step 3: Evaluate improvements of the process inside Wikimedia by interviewing the stakeholders.  

Requirements for the tool (the list can be extended or changed):

Maintainability:

Access rights, roles (who sees what, who can edit what?)

Accessibility (navigation, index, glossary, search)   

Versioning (Conflicts resolution)

Consistency (broken links, metrics)

Extra

  • Work on the MediaWiki software architecture to understand all the complexities of an open social software
  • Build the Static Structure of the software architecture. Identify control flow for various user scenarios (dynamic structure).

Aspects of MediaWiki that need to be reviewed:

  • User Access Management and stakeholders Security
  • Internationalization and Localization
  • Installation / Update / Deployment procedures

.

Work plan

 

Files and Subpages

Name Type Size Last Modification Last Editor
Ankitaa FinalPresentation.pptx 1,81 MB 16.09.2015
Ankitaa_main.pdf 3,56 MB 16.09.2015
kick_off_Ankitaa_Bhowmick.pdf 744 KB 13.04.2015