ICSE-SEIS '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Society

Full Citation in the ACM Digital Library

SESSION: Engineering tools for society

Is using deep learning frameworks free?: characterizing technical debt in deep learning frameworks

Developers of deep learning applications (shortened as application developers) commonly use deep learning frameworks in their projects. However, due to time pressure, market competition, and cost reduction, developers of deep learning frameworks (shortened as framework developers) often have to sacrifice software quality to satisfy a shorter completion time. This practice leads to technical debt in deep learning frameworks, which results in the increasing burden to both the application developers and the framework developers in future development.

In this paper, we analyze the comments indicating technical debt (self-admitted technical debt) in 7 of the most popular open-source deep learning frameworks. Although framework developers are aware of such technical debt, typically the application developers are not. We find that: 1) there is a significant number of technical debt in all the studied deep learning frameworks. 2) there is design debt, defect debt, documentation debt, test debt, requirement debt, compatibility debt, and algorithm debt in deep learning frameworks. 3) the majority of the technical debt in deep learning framework is design debt (24.07% - 65.27%), followed by requirement debt (7.09% - 31.48%) and algorithm debt (5.62% - 20.67%). In some projects, compatibility debt accounts for more than 10%. These findings illustrate that technical debt is common in deep learning frameworks, and many types of technical debt also impact the deep learning applications. Based on our findings, we highlight future research directions and provide recommendations for practitioners.

From abstract specifications to application generation

We present an approach for platform-agnostic application modelling, complemented by an execution and lifecycle management protocol. It enables a systematic way of generating native applications capable of leveraging specific features and sensors for any target device while contextualizing them to the needs of the application logic. In addition, it provides a way to maintain and update all the deployed instances simultaneously across the variety of target devices, without requiring client-side intervention.

The application modelling is geared towards non-technical users, giving them the means to easily create, distribute and manage fully functioning applications across a range of client platforms such as mobile devices or voice assistants without worrying about device-level programming. When required, the generated applications can be quickly customized for better end-user experience by developers with device knowledge, starting from generated code and leveraging the same cloud-based application logic.

Building trust in the untrustable

Trust is a major aspect in the relationship between humans and autonomous safety-critical systems, such as autonomous vehicles. Although human errors may cause higher risks, failures of autonomous systems are more strongly perceived by the general population, which hinders the adoption of autonomous safety-critical systems. It is therefore necessary to devise approaches for systematically building trust in autonomous functions and thereby facilitate the adoption process. In this paper, we introduce a method and a framework for incrementally building trust in the context of autonomous driving. Within the envisioned solution, we employ the psychological narrative behind trust building through the formation of new habits and introduce a method where trust is established gradually for both the human and the autonomous safety-critical system via reputation building and step-by-step integration of smart software agents replacing human actions.

Refactoring community smells in the wild: the practitioner's field manual

Community smells have been defined as sub-optimal organizational structures that may lead to social debt. Previous studies have shown that they are highly diffused in both open- and closed-source projects, are perceived as harmful by practitioners, and can even lead to the introduction of technical debt in source code. Despite the presence of this body of research, little is known on the practitioners' perceived prominence of community smells in practice as well as on the strategies adopted to deal with them. This paper aims at bridging this gap by proposing an empirical study in which 76 software practitioners are inquired on (i) the prominence of four well-known community smells, i.e., Organizational Silo, Black Cloud, Lone Wolf, and Radio Silence, in their contexts and (ii) the methods they adopted to "refactor" them. Our results first reveal that community smells frequently manifest themselves in software projects and, more importantly, there exist specific refactoring practices to deal with each of the considered community smells.

Deep learning for smart sewer systems: assessing nonfunctional requirements

Combined sewer overflows represent significant risks to human health as untreated water is discharged to the environment. Municipalities recently began collecting large amounts of water-related data and considering the adoption of deep learning solutions like recurrent neural network (RNN) for overflow prediction. In this paper, we contribute a novel metamorphic relation to characterize RNN robustness in the presence of missing data. We show how this relation drives automated testing of three implementation variants: LSTM, GRU, and IndRNN thereby uncovering deficiencies and suggesting more robust solutions for overflow prediction.

How layered reuse can support harmful micropolitics: SAP ERP in surgery planning

Background: Enterprise Resource Planning (ERP) software was originally conceived for manufacturing contexts and has later been generalized to cover service contexts as well. In hospitals, adoption was accelerated by an increasing commodification and marketization of health care.

Questions: What impact do the manufacturing roots of SAP ERP have when the software is applied for service delivery in a hospital?

Method: A typical-case Yin Case Study about the surgery planning and execution processes in a large university hospital.

Results: One goal of the ERP implementation was to optimize the utilization of the operation rooms (ORs). This goal was largely missed because of too-low quality of planning data effectuated intentionally by the surgeons in order to pursue micropolitical agendas. This was possible because the software paid no attention to micropolitics at all, largely due to its roots in manufacturing and hidden by higher software layers that claimed to be adapted to the hospital domain.

Conclusions: Apparently, successful complex reusable application software can create a domain paradigm that subsequently creates product risk by being inappropriately and neglectfully extended into other domains where it does not apply. Software engineering should become aware of this effect and perform research to control it.

SESSION: Engineering an inclusive society

From RE Cares to SE Cares: software engineering for social good, one venue at a time

As software practitioners, we can help society by using our communities of experts to address a software need of a socially-conscious organization. Doing so can benefit society in the locale of a software engineering conference, and provides access to international experts for local organizations which may otherwise not have access. Furthermore, established Software Engineering (SE) researchers as well as practitioners and students have the opportunity for a unique learning experience. In this paper, we argue that the SE community should use SE conferences as the focal points for activities that benefit society at the locations of the conferences, and make such activities an integral, valued, and recognized part of the conference programs. The proposed series of events, termed SE Cares, can follow and learn from the model of Requirements Engineering (RE) Cares events that took place in 2018 and 2019, and can be a co-located event at all interested SE-related conferences.

Society-oriented applications development: investigating users' values from bangladeshi agriculture mobile applications

Limited consideration of users' values in mobile applications (apps) can lead to user disappointments and negative socio-economic consequences. Therefore, it is important to consider values in app development to avoid such adverse effects and to secure the optimum use of apps. With this aim, we conducted a case study to identify the users' desired values that are either reflected or missing in the existing Bangladeshi agriculture mobile apps. We manually analyzed 1522 reviews from 29 existing Bangladeshi agriculture apps in Google Play by following a widely used human values theory, Schwartz's theory of basic human values. Our results show that users of the selected apps have twenty one (21) desired individual values where eleven (11) values are reflected in the apps and ten (10) values are missing. This research provides a basis for the developers to design apps that consider users' values. It also provides a direction on which values they should address while developing apps. Moreover, repeating this research in different domains or societies would result in society-oriented apps that are more sensitive to users' values.

Designing edutainment software for digital skills nurturing of preschoolers: a method proposal

The children born nowadays are called digital natives, but their digital skills are under the expectations of the future workforce, which will be tremendously digital. Education has a key role in supporting the development of digital skills even from the early childhood. Designing educational software for preschoolers, that would support learning and digital skills development, needs focus both on children (to ensure engagement) and their instructors (to ensure appropriateness and acceptance). Edutainment software possesses educational content and an entertainment model, being a promising perspective in education support. In this paper we propose a user-centered design method that focuses on both users categories (preschoolers and kindergarten teachers) and that consists of two steps: product development and product validation. A case study of applying and assessing the proposed method to design educational software for preschoolers is also presented.

Debugging hiring: what went right and what went wrong in the technical interview process

The typical hiring pipeline for software engineering occurs over several stages---from phone screening and technical on-site interviews, to offer and negotiation. When these hiring pipelines are "leaky," otherwise qualified candidates are lost at some stage of the pipeline. These leaky pipelines impact companies in several ways, including hindering a company's ability to recruit competitive candidates and build diverse software teams.

To understand where candidates become disengaged in the hiring pipeline---and what companies can do to prevent it---we conducted a qualitative study on over 10,000 reviews on 19 companies from Glassdoor, a website where candidates can leave reviews about their hiring process experiences. We identified several poor practices which prematurely sabotage the hiring process---for example, not adequately communicating hiring criteria, conducting interviews with inexperienced interviewers, and ghosting candidates. Our findings provide a set of guidelines to help companies improve their hiring pipeline practices---such as being deliberate about phrasing and language during initial contact with the candidate, providing candidates with constructive feedback after their interviews, and bringing salary transparency and long-term career discussions into offers and negotiations. Operationalizing these guidelines helps make the hiring pipeline more transparent, fair, and inclusive.

Developing software for motivating individuals with intellectual disabilities to do outdoor physical activity

People with intellectual disabilities (IDs) often have a sedentary lifestyle that can lead to long-term issues like cardiovascular diseases, diabetes, obesity and depression. Few games and apps promoting physical activity for people with IDs exist, and they do not have a focus on the motivational aspect. This paper aims to find how to develop software that can motivate people with IDs to do physical activity outdoors. For this purpose, we have followed a design and creation research strategy using several qualitative methods such as semi-structured interviews with health care workers, special education experts and software engineers; a focus group with occupational therapists, physical therapists and software engineers; and a preliminary pilot user test with 3 users and 2 caregivers aiming to a test of the software on the field and at the refinement of its specifications. Having social interaction during the physical activity turned out to be a major motivational aspect of the system, whereas rewards systems did not attract much of the users' attention. Regarding the adapted navigational assistance, easy-to-read text, visual communication and street-level pictures were the key features to achieve successful and understandable guidance outdoors for people with intellectual disabilities.

Human behaviour centered design: developing a software system for cultural heritage

This paper introduces an integrated framework for sustainability and urban security socio-technical systems. The focus is to design and develop a hardware/software system based on human expected and real behaviour.

The paper explains the steps taken through developing the Uffizi Museum crowd monitoring and queue management system. The goal of implementing such system was to remove queues outside the Museum which is in line with urban security and visitors comfort. We took advantage of a data-driven approach mapped on sustainability framework. Such approach which was fed with both real-time sensory data and prediction models, successfully eliminated long queues to access the museum. We took into consideration performance of software system as well to reduce the response time to a threshold that is compliant with real-time requirements. We started our experiments from fall 2016 and operationalized it in October, 2018. During this experimentation period, we learned a lot of lessons that we report in this paper.