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:
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).
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:
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:
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 magniﬁes 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.