Research Topics

This page gives you an overview of the various topics that are actively researched by the Software Engineering Research Group. If you are interested in collaborating with us on one or several of these topics as industrial, academic partner or as a PhD student/Postdoc do not hesitate to contact Martin Pinzger. Your input and feedback is very welcome.

Software engineers’ needs to develop software systems

In order to provide software engineers with better techniques and tools, we need to deepen our knowledge of their needs to develop software systems. For instance, the needs to understand the changes done by other software engineers and their effects on the design and quality is still an open issue and of particular interest for us. Recent studies provide first results, however we argue that a much deeper understanding of the engineers’ needs is necessary. Furthermore, these needs might change over time since developers and their environments are changing, too. To address this topic, we are interested in interviewing and observing software engineers from industrial and open source software projects to come up with a well defined set of their needs.

Software evolution and quality analysis

Previous research has identified a number of causes for design erosion, such as software engineers perform quick fixes, or the original engineers have left the project and the new engineers lack experience. Although design erosion has been studied, there exists only general knowledge of the effects of (source code) changes on the quality of the design and implementation of software systems and moreover whole software ecosystems (i.e., systems of systems). The goal of this research is to study these effects for different programming paradigms and domains of software systems, such as spreadsheets, object-oriented, component-based, service-oriented, and develop sophisticated techniques and tools that allow software engineers to monitor the quality of the implementation and design of software systems and to mitigate design erosion. We have published a number of research papers in this area. Key research results on extracting and visualizing software project data have been presented in our papers at ICSM 2003, WCRE 2003, SotVis 2005, MSR 2005, IEEE TSE 2007, FSE 2008, and IEEE Software 2009. Recent results with a focus on change and defect prediction have been presented in our papers at MSR 2011, ICSM 2011, MSR 2012, ICWS 2012, ESEM 2012, and WCRE 2012.

Advanced Software Comprehension Techniques

Today’s systems become more and more software-intensive which typically means that software is the major component that provides the needed functionality. Formal specifications seem to be a silver bullet, but there are a couple of drawbacks: at first, not all stakeholders are familiar with the notations used, and agreeing upon assertions in specifications (and thus agreeing upon requirements) is complicated. Secondly, mathematically dense notations in combination with the inherent complexity might be an impediment for the understanding of the specified system – even for experts. Finally, for gaining maximum benefit from the specifications, it needs effort to keep them up-to-date during the development live-cycle. Specifications evolve, and without guidance developers do not know whether the overall quality increases or decreases. In the ViZ project these impediments are addressed and visualization, concept location and transformation techniques are used to support the different stakeholders. Recent research results have been presented in the Journal on Software Maintenance and Evolution: Research and Practice 2008, the Journal of Communications in Computer and Information Science 2010, in LNCS 2011, in the International NASA Journal on Innovations in Systems and Software Engineering 2012, and at WS-FMDS 2012.

Professionalizing spreadsheet engineering

Spreadsheets are widely used by a mass of end-user programmers. They often represent important/critical business assets. The goal of this research is to professionalize spreadsheet engineering by investigating means to ease the understanding of large complex spreadsheets and to shorten the development time of spreadsheets and custom software applications created from spreadsheets. We do this by investigating ways to gather, integrate, abstract and visualize the mass of diverse information about spreadsheets and their usage within a company. They allow spreadsheet users and developers to understand single spreadsheets as well as a company’s spreadsheet ecosystem. Regarding reducing development time and costs, we investigate the extraction of domain concepts from multiple spreadsheets and means to use them to design, implement, and test spreadsheets. Recent research results in this area haven been presented at ECOOP 2010, ICSE 2011, ICSE 2012, ICSM 2012, and ICSE 2013.

Collaborative Software Development

This research aims at supporting software engineers who understand the code and want to proactively document and share this understanding with their team members. We are investigating various ways to advance current (online) collaboration platforms, such as github, and integrated development environments (IDEs), such as Eclipse. This involves research on means to exchange information on source code using micro-blogging, linking it to the right context in which the software engineer performs a task, and furthermore using the information to provide recommendations to engineers, such as relevant code elements, co-developers, work items, etc.. Recent research results have been presented at ICSE NIER 2010, ICSM ERA 2010, ICPC 2011, and MSR 2013

Topic revision: r9 - 2018-07-11 - MartinPinzger

Copyright © 2012-2021 by the Software Engineering Research Group, University of Klagenfurt, Austria