We offer the following types of projects:
- (Research) internships and summer research projects (also eligible for COSC366 and COSC486)
- BE (Hons) projects (also eligible for SENG402)
- BSc (Hons) projects (also eligible for COSC460)
- ME / MSc projects
- PhD projects
All types of projects may require industry involvement. Also, projects may be conducted with international academic or industry partners. We encourage our students to conduct relevant and rigorous work. Frequently used methods include:
- Survey research
- Case study research
- (Quasi-) Experiments
- Systematic literature reviews and mapping studies (evidence-based software engineering)
- Prototype implementation and tool development
We conduct research in the area of software engineering. We are particularly interested in studying and improving the way we develop high quality software, including productive teams, processes and practices, and empirical software engineering. My focus is on software requirements engineering, software architecture, software development processes and practices. The goal of our research is to support software engineers to develop high-quality computer programs. We focus on better understanding and improving practices, processes and techniques for software requirements engineering and software architecture. Our research is characterized by a) practical relevance, b) empirical evidence and c) collaboration / community. Concrete projects can be defined depending on whether an internship, BE (Hons), BSc (Hons), MSc or PhD project is pursued. Below we list some example topics. However, we also welcome project suggestions from students.
1. General topics
- Software patterns in industry: For example, are patterns used in industry? What (types of) patterns are used? How are patterns used?
- Software metrics in industry: For example, are metrics used in industry? What (types of) metrics are used? How are metrics used?
- Software architecture knowledge management in industry: How is software architecture knowledge managed (i.e., created, shared, and used) in software industry?
- Software reference architectures in industry: For example, how can we design, validate and establish software reference architectures for and in software engineering practice?
- Variability in open source software systems: Variablity describes the ability of a software system to be used in different deployment scenarios and contexts. This topic is about studying open source software systems (World Press, OxWall, Drupal, etc.) to identify and recommend best practices, patterns and guidelines for implementing variablity-intensive software systems.
- Social media for software development: This topic is about studying how social media (Facebook, Twitter, etc.) can be used to support professional software development (e.g., by using sentiment analysis of Twitter messages to determine user satisfaction). This topic would require substantial tool development.
- Analysis of open source project data: Source and project repositories (such as GitHub, Ohloh, Open Hub) provide source code but also software project data. This topic is about studying existing projects to provide support for future projects. This topic would require substantial tool development. Research in this area may require methods and tools from the AI and machine learning domain.
- Design and program comprehension: Architecture, design and program comprehension is a cognitive activity that is hard to measure but affects developers in their everyday work. This topic is about studying techniques such as eye tracking, facial expressions, and brain performance metrics (focus, engagement, interest, excitement, affinity, relaxation, stress levels) with regard to their feasibility to measure architecture, design and program comprehension of software engineers. Research in this area may investigate coding activities as well as code and documentation analysis.
- Standard compliance: Regulated industries (e.g., health care, aerospace, government) require software development processes and software products to comply with standards and regulations. This topic is about assessing current software development standards for regulated industries and mechanisms to ensure that processes and products comply with standards before product release.
- Security requirements engineering (with DongSeong Kim): Security is a measure of a software system's ability to resist unauthorized usage while still providing its services to legitimate users. This topic is about investigating software requirements engineering for security. The research will investigate methods to determine required and achieved levels of security as well as methods to elicit and ensure security requirements in software intensive-systems.
2. Software engineering education and training
- Integration of teaching and research goals in software engineering courses.
- Peer evaluation in software engineering project courses.
- Training and education of novice software engineers in practice.
If you are interested in our topics please contact Matthias Galster.