Brainware: Synergizing Software Systems and Neural Inputs
The rapid advances in the field of Brain Computer Interfaces (BCI) are expected to enrich the quality of people’s lives. BCI connects computer actions with neural inputs—signals indicating the user’s intentions, desired actions, attention, thoughts, memories, and emotions. BCI applications present significant challenges for computer science and software engineering research: an avalanche of neural signals will make their way as direct input into software systems. Given the differences between neural inputs and behavioral ones, the integration of neural inputs will require special approaches, and not simply adding yet more user interface channels to pre-existing software systems. This paper explores the challenges of designing and implementing self-adaptive software systems that could synergize brain states. After framing the problem, its rationale and possible solutions, in this paper we argue that the software engineering community ought to investigate how to incorporate neural inputs into software systems. The days are now upon us when software systems can “feel” and “anticipate” the users’ intentions and therefore react self-adaptively and synergistically to their needs.
|
Shihong Huang and Emmanuelle Tognoli |
Florida Atlantic University, USA |
|
Quantifying Programmers' Mental Workload during Program Comprehension Based on Cerebral Blood Flow Measurement: A Controlled Experiment
Program comprehension is a fundamental activity in software development that cannot be easily measured, as it is performed inside the human brain. Using a wearable Near Infra-red Spectroscopy (NIRS) device to measure cerebral blood flow, this paper tries to answer the question: Can the measurement of brain blood-flow quantify programmers' mental workload during program comprehension activities? We performed a controlled experiment with 10 subjects; 8 of them showed high cerebral blood flow while understanding strongly obfuscated programs (requiring high mental workload). This suggests the possibility of using NIRS to measure the mental workload of a person during software development activities.
|
Takao Nakagawa, Yasutaka Kamei, Hidetake Uwano, Akito Monden, Kenichi Matsumoto, and Daniel M. German |
NAIST, Japan; Kyushu University, Japan; Nara National College of Technology, Japan; University of Victoria, Canada |
|
Who is the Expert? Combining Intention and Knowledge of Online Discussants in Collaborative RE Tasks
Large, distributed software development projects rely on the collaboration of culturally heterogeneous and geographically distributed stakeholders. Software requirements, as well as solution ideas are elicited in distributed processes, which increasingly use online forums and mailing lists, in which stakeholders mainly use free or semi-structured natural language text. The identification of contributors of key information about a given topic --called experts, in both the software domain and code-- and in particular an automated support for retrieving information from available online resources, are becoming of crucial importance. In this paper, we address the problem of expert finding in mailing-list discussions, and propose an approach which combines content- and intent-based information extraction for ranking online discussants with respect to their expertise in the discussed topics. We illustrate its application on an example.
|
Itzel Morales-Ramirez, Matthieu Vergne, Mirko Morandini, Alberto Siena, Anna Perini, and Angelo Susi |
Fondazione Bruno Kessler, Italy; University of Trento, Italy |
|
Who Asked What: Integrating Crowdsourced FAQs into API Documentation
Documentation is important for learning Application Programming Interfaces (APIs). In addition to official documents, much crowdsourced API knowledge is available on the Web. Crowdsourced API documentation is fragmented, scattered around the Web, and disconnected from official documentation. Developers often rely on Web search to retrieve additional programming help. We propose to connect these two types of documentation by capturing developers' Web browsing behavior in the context of document reading and integrating crowdsourced frequently asked questions (FAQs) into API documents. Such an integration not only provides relevant API help more conveniently, but also opens a new approach to promoting knowledge collaboration and studying API users' information needs.
|
Cong Chen and Kang Zhang |
University of Texas at Dallas, USA |
|
A World Full of Surprises: Bayesian Theory of Surprise to Quantify Degrees of Uncertainty
In the specific area of Software Engineering (SE) for self-adaptive systems (SASs) there is a growing research awareness about the synergy between SE and Artificial Intelligence (AI). However, just few significant results have been published so far. In this paper, we propose a novel and formal Bayesian definition of surprise as the basis for quantitative analysis to measure degrees of uncertainty and deviations of self-adaptive systems from normal behavior. A surprise measures how observed data affects the models or assumptions of the world during runtime. The key idea is that a "surprising'' event can be defined as one that causes a large divergence between the belief distributions prior to and posterior to the event occurring. In such a case the system may decide either to adapt accordingly or to flag that an abnormal situation is happening. In this paper, we discuss possible applications of Bayesian theory of surprise for the case of self-adaptive systems using Bayesian dynamic decision networks.
|
Nelly Bencomo and Amel Belaggoun |
Aston University, UK; CEA, France |
|
Modeling Self-Adaptive Software Systems with Learning Petri Nets
Traditional models have limitation to model adaptive software systems since they build only for fixed requirements, and cannot model the behaviors that change at run-time in response to environmental changes. In this paper, an adaptive Petri net is proposed to model a self-adaptive software system. It is an extension of hybrid Petri nets by embedding a neural network algorithm into them at some special transitions. The proposed net has the following advantages: 1) It can model a runtime environment; 2) The components in the model can collaborate to make adaption decisions; and 3) The computing is done at the local, while the adaption is for the whole system. We illustrate the proposed adaptive Petri net by modeling a manufacturing system.
|
Zuohua Ding, Yuan Zhou, and MengChu Zhou |
Zhejiang Sci-Tech University, China; New Jersey Institute of Technology, USA |