Evaluation of Software Development Paradigms and Processes for Web Application Engineering

This work has been finished in February 2011.

The thesis deals with the process of web engineering. Its purpose is to find a development model, covering all phases of the involved processes and the majority of aspects influencing the design of a web based software product. This knowledge is translated into the implementation of a template framework for the Microsoft Team Foundation Server (TFS). The usage of this template set is demonstrated by documenting the life cycle of a web software project to be carried out.

In order to meet this objective, it is necessary to determine the differences between developing classical (desktop-centric) software and applications being accessed via the web, both from a product and process point of view. The first part of this thesis will therefore screen existing literature on this topic to identify established solutions and approaches. Well-known attributes are then combined, distinguishing web engineering from other disciplines, with personal analysis to gather a comprehensive set of peculiarities identifying this field of software development.

Subsequently this work gives an introduction into common software development paradigms, both heavy weight (such as the Rational Unified Process) and light weight (such as Scrum and Extreme Programming). Those processes are outlined and evaluated against the specific requirements found in the previous chapter. Conclusively, the main objective is to find a single, or a combination of a certain set of paradigms, covering the needs of Web Engineering as complete as possible.

The practical part of the thesis capitalizes on the insights retrieved in the theoretical chapters. The ambition is to create a development framework consisting of templates for the Microsoft Team Foundation Server (TFS) reflecting all steps of the software development cycle. The TFS provides source control, data collection, reporting, and project tracking, and so provides a platform for collaborative software development projects. The implemented development framework leverages these features leading to efficient processes and usable work items. The latter is demonstrated by utilizing this basis to conduct a web software project involving a team of developers, designers and project managers.