WebCodeGen - Web Application Code Generation with Adesso (Industry Partner)

Introduction

Software architecture and its implementation has always been hard to keep in sync. Stakeholders define functionality that a software should deliver and programmers implement these in a formal (programming) language. There is an inherent mismatch between the languages that both parties speak. Currently, there is no out-of-the-box solution where stakeholders can define their requirements and developers get a formal specification/framework that is well understood.

Goals of this master project

In this master project, the students are expected to investigate the current state of code generation based on requirement documents, especially in the context of web applications (e.g., Angular Schematics). As part of an academia-industry collaboration, they will design and implement a solution that generates web application code for Angular projects based on requirement specifications (user stories, validations, and GUI guidelines) in text/PDF form. First, the requirements should be transformed into into an intermediate representation; second, this machine-readable specification (e.g., domain-specific language) is then parsed and client (Angular) and server (Java/Spring Boot) code is automatically generated.

Task description

The main tasks of the project are (depending on number of students, this list is adaptable):

  • Familiarize with code generation tools for web applications
  • Design an architecture that enables generating web applications based on requirements
  • Develop a domain-specific language that can express web applications in a machine-readable way
  • Developer code generators for client proxies and server stubs based on Angular and Spring Boot
  • Work closely with an academia-industry team from UZH and Adesso on a real-world problem
  • Write a report summarizing the results of the master project and present it to the assistant/professor

 

The project is aimed for 2-3 students with strong programming skils. This project is also available as a master thesis.

References

Posted: 18.02.2020

Contact:

Christoph Laaber

Pasquale Salza