Today's large-scale software-intensive systems exhibit an increasing complexity due to a broad spectrum of technical and socio-technical components. Engineering such systems requires varying abilities and sophisticated methods which traditional software engineering approaches cannot provide because most requirements cannot be planned a priori due to the very dynamic character of the software system as well as fast evolving technologies.
A software system needs to fulfill the end-users' needs in order to become widely accepted and used. To ensure the success of software, software engineers have to get to know their end-users better. End-users' experience and knowledge, however, is difficult to get because among other things there exist communication barriers. Moreover, users cannot easily be questioned since they are not able to reliably identify subsystems responsible for an unexpected system behavior. To overcome these problems, we developed the ConTexter feedback system which capture user needs on site with smartphones at very low effort and cost improving the requirements engineering process.
Our approach facilitates feedback in context efficiently for requirement engineering by utilizing off-the-shelf mobile devices. such as smartphones. At first, end-user feedback is gathered with our mobile feedback system and analyzed by a requirements engineer in order to identify problem areas, user needs or innovative ideas. Secondly, the identified issue is confirmed by conducting further techniques and reasonable requirements are established. Finally, the system is adapted to new requirements to satisfy end-users' needs.
The ConTexter feedback system is geographical deployed based on pre-defined entities for which feedback can be given. In our approach, an entity is a geographical deployed object (e.g. ticket machine, train station, etc.) introduced by the service provider in order to attract feedback. Thus, entities are the primary aid for mediating incoming feedback by the end-user to increase its relevance. Thus, the end-user does not have to know all surrounding subsystems. The relevance of an entity for an end-user is determined automatically based on the user's context. Therefore, each entity is assigned to a context vector containing geographical information (e.g. GPS coordinates, WiFi MAC address and signal strength) as well as additional user information (e.g. last visited URL). Since the feedback is sent anonymously to the service provider, privacy issues do not play an essential role in our approach. Feedback consists of a narrative text message enriched with a pre-defined entity as well as optional multimedia artifacts. It can be negative, positive or expressed as proposal.
The ConTexter feedback system consists of a server and a mobile feedback elicitation tool installed on the smartphone. An overview of the ConTexter feedback system is presented in Figure 1.
Figure 1: Overview of the ConTexter Feedback System
The architecture of the presented end-user feedback system is implemented using the REST architectural style. The implementation of the ConTexter server as a lightweight RESTful service allows having only one unique interface that all kinds of client applications can refer to. That makes it easy to extend the system without adding additional extensions to the service. Moreover, REST services work on a set of well-tested and widely used standards (e.g. HTTP, URI). Hence, it fits best for distributed systems with different types of client applications. For the technical implementation, we used the Jersey framework, which is the reference implementation of the Java API for RESTful Web Services (JAX-RS).
Due to evolving capabilities of mobile devices, their usage becomes feasible for various kinds of applications. Our mobile feedback elicitation tool assists the user to easily submit multimedia feedback enabled by semi-automatic context identification. The client is implemented in Java for the Android operating system. A mobile phone can be used that is equipped with GPS, WiFi, and Bluetooth in order to provide contextual information. Moreover, a camera is also required to take photos or shot videos to enrich textual feedback messages.
Since giving feedback distracts users from their current tasks, creation of feedback supported by a mobile device should be as easy as possible. Therefore, we designed a workflow for giving feedback on mobile devices, which only consists of four easy steps as shown in Figure 2.
Figure 2: The flow of giving feedback in a ticket-buying scenario.
When end-users want to provide feedback, the actual user context is determined according to the contextual data that are sent anonymously to the ConTexter server. A sorted list of relevant entities is returned to the smartphone. The final selection of an entity is made by the user. Afterwards, users can choose from pre-defined feedback messages or can type in a text message by themselves. Before sending the feedback to the ConTexter server, users can take photos or shot videos of the regarded issue to emphasize their statement.
Besides the mobile client application, we developed an administration tool, which is realized as a web application. It allows creating, defining, and editing entities. During operation of the ConTexter feedback system, requirements engineers and domain experts can use this tool to review the received feedback.
In end-user feedback-driven requirements engineering, feedback has to be reviewed and analyzed by analysts in order to establish useful requirements. In large software intensive systems with an enormous amount of feedback, this task can cause high expenditure without any satisfactory result. Our proposition is to automatically rank feedback according to their relevance with respect to the domain in which the software system under consideration is embedded. Therefore, feedback information such as keywords and their distribution, number and size of artifacts as well as signal words should be considered properly. This approach is expected to guide the analyst through feedback. The benefit would be that analysts can easily see which feedback should be considered at first. As a result, relevant feedback can be considered in a timely manner leading to higher customer satisfaction.
Should you need further information, please don't hesitate to get in contact with us.
Prof. Kurt Schneider
Software Engineering Group
Leibniz Universität Hannover
Welfengarten 1, 30167 Hannover
Technical questions, suggestions, and problems are also appreciated. Please contact Tristan Wehrmaker or Stefan Gärtner.