Research
Context Aware Adaptive Systems
Context Aware Adaptive Systems observe their users and their environments to detect the context and automatically adjust and optimize their behavior to it. Context might be physical (e.g. location, infrastructure, temperature), logical (e.g. the user intention, user preferences, tools used, information needed, problem encountered), or social (e.g. the role in the group and interaction with the community). The main questions to be studied include:
- What are meaningful application scenarios and domains for context aware adaptive systems (e.g. self-healing or adaptation of user interface)?
- Which architectures are appropriate for context-aware systems and why?
- How can context be efficiently collected, represented, sessionized, and aggregated?
- How can the privacy of users be protected and what are acceptable trade-offs for different stakeholders?
How can the intentions and experience of the users be detected and used?
In particular, we are interested in context aware recommender systems, which support individuals as well as groups in accessing information, sharing information, and taking collective decisions. We focus on software engineering and management scenarios (e.g. recommender systems for release planning, requirements negotiations, useful documentation), as well as, software usage scenarios (e.g. recommenders for knowledge workers or for a group of drivers to avoid a traffic jump).
Innovative Mobile Services
Mobile is becoming mainstream. Nowadays, mobile devices are among the most sold computers in the world, often outperforming a typical five-year-old desktop computer. They offer novel human-computer interfaces like touch-screens or speech recognition, and employ powerful sensors, such as GPS, gyroscopes, or cameras. These interfaces and sensors enable a fully new spectrum of context-aware, personalized, and innovative services and applications. Examples include mobile learning, personal productivity management, mobile documentation, mobile project management. Common topics we are researching include:
- Mobile analytic, i.e. collecting, analyzing, and using data of (ad-hoc) mobile communities.
Detection of intentions of mobile users.
Moreover, the powerful, modern software frameworks and libraries, which enable the design of new mobile “apps” in several hours, together with the huge, highly dynamic user communities make mobile also attractive from the engineering perspectives. We are researching the potentials and challenges of mobile computing for the engineering and management of software, including:
- User communities in app stores.
- Mobile requirements (including usability, privacy, security, and performance).
- Tools, frameworks, and design patterns for mobile applications and services.
- Integration of mobile apps with conventional software systems.
- Mobile service deployment and composition (App engines, app stores).
Social Software Engineering
Social software engineering (SSE) covers two areas: (a) social and human aspects in software engineering and (b) engineering of social software. On the one hand, software engineering is a social activity, performed by different individuals. This necessitates methodologies and tools to deal with issues such as communication, coordination, knowledge sharing, compensation, and reconciliation. On the other hand, social computing is an expanding paradigm, which inherently incorporates intensive social interactions and implications. Engineering social software magnifies a spectrum of challenges like group requirements engineering, user involvement, social-awareness, privacy, security, and trust.
Software Socialness is a subfield of SSE, which aims at the systematic involvement of end users and their communities in the software lifecycle (e.g. by performing documentation, testing, marketing, or even development and integration tasks). This field revolutionizes the role of users, who become an integral part of the software processes and systems. The target software applications include a main component, which observes its usage with the objective of improving the quality of existing features and detecting needs for new features.