Keywords

1 Introduction

Software engineering (SE) is a discipline that studies the aspects of the process to build a software [1], it encompasses process, methods and tools destined to build the software with quality [2]. Scientific computing consists on tools, techniques and theories that were originated from mathematics, and are used solve problems from science and engineering in a computer by developing the solution based on mathematical models [3]. The Experimental Software Engineering (ESE) uses the SE to the identify and define new processes and tools for the evolution the discipline. The SE applied in scientific experiments tries to insert the methods and processes defined by the SE (commonly used by industries) into the academic research lifecycle.

One relevant aspect when applying the SE in scientific experiments is to consider the humans as part of the experimentation process. The discipline that studies computer domains involving humans is the HCI.

In addition, engineering ethics is a subcategory of professional ethics, it is professional ethics of and for engineers. It emphases on assisting engineers in shaping their professional responsibility through the construction of general ethical principles and professional codes, and by providing methods and techniques for tackling the moral issues and dilemmas that engineers encounter in their work.

To evaluate the results of a scientific software, it is necessary to make experimentations, that, like in any other field, encompasses hypothesis and tests that can evaluate, predict, understand, control, and improve a process or product. It has the objective to improve and refine a study to identify new ones. Considering the experimentation, all modalities of research involving human subjects should carefully consider the risks and benefits of the experiment [4]. In order to set the public interests as the main factor of ethics, the Research Ethics Committees (RECs) emerged to consider the conditions of uncertainty in the development of research and evaluate the conflicts impartially, protecting the subject of the study [5].

The Human-Computer Interaction (HCI) is a field of study applied in research and system development that contains theoretical and practical aspects from ethics, since the insertion of ethics in a project until the experimentation and test phase, and it can be applied researches or by industries. HCI has many aspects that collaborates with the ethical processes of SE (business vision or scientific vision). This article demonstrates the relationship of the concepts and how HCI collaborates with the evolution of the ethical aspects of the traditional SE, and its application to scientific computing, besides of contemplate some of the ethics applied in medicine.

2 Software Engineering

The term software engineering (SE) was proposed in 1968 at NATO Software Engineering Conference. The conference addressed problems in SE along with the discussions of techniques, methods and developments for possible solutions [6]. According with Sommerville [1], SE is a discipline that studies the aspects of the process to build a software. Pressman [2] defined SE as a framework that covers process, methods and tools destined to build software with quality. This topic will cover the concepts of ESE, and the aspects of the traditional SE applied for scientific computing.

2.1 Experimental Software Engineering

The experimental software engineering (ESE) analyzes methods and tools from software engineering through experimentations and empirical research [7], focusing on increase the quality of process management and research documentation.

The experimentation, applied in any field, encompasses hypothesis and testing that can evaluate, predict, understand, control, and improve a process or product [4]. It is a study with the objective to make new discoveries, collect data, and testing theories [7, 8], so the study can be improved and refined. The improvement of a discipline involves solve problems on the environment. The results of solving problems can be comprehend by modeling products characteristics (reliability, portability, efficiency, etc.). The evolution of solving problems is based on the encapsulation of knowledge into models, that will be validated and verified based on experimentation, empirical evidence and reflection, leading to the definition of the problem and the solution [9].

The experimentation concepts are applied in SE, where the results are analyzed and the impacts are evaluated according with the knowledge, helping the field to advance with iterative learning process, and providing furthering knowledge about the software process [4].

The experimentation in SE can face some challenges regarding its execution. One complication is the fact that most of the technologies are human based, so change may occur according with the individual creativity and ability, causing variations in the study. Besides that, a lot of other variables can affect the output in an experiment, like one set of processes can be more effective in one software than another set of process [9]. Another problem is lack of realism in the academic study experimentation, which it is more evident when the research is transferred to be used by industries, given the difficulty to have a group of people that represents the software developer real population while the research is being developed [10].

In SE, the dependency of the scientific community with the industry is more evident when we consider the roles of who makes the research and who uses the result of the research. Considering the responsibilities presented by [9], the importance of this relation is emphasized by defining that the responsibility of the researcher is to understand the nature of products and processes, and the practitioner (software engineer by industry) is to improve the system. So, the researcher needs the environment where practitioner builds the software, and the practitioner needs the model found by the researcher to improve the system.

Exist variations of experimental and analytic paradigms in different disciplines, if one of those paradigms is not being used, the study probably cannot be considered as a research project. The experimental paradigm is an inductive model that requires experimental design, observation, data collection and validation to try to find a model from the real world. In SE, it is used to understand the software process, product, people, or environment. An evolutionary approach for the experimental paradigm in software is to assume that the model exists and that it will be modified to improve the study, it can also propose a new model to study the effects of the process or the product by developing statistical/qualitative methods, use case studies, measuring and evaluating the model [9]. The analytic paradigm is a deductive model that provides an analytic framework to build models and identify the limits from the model manipulation, and propose axioms, develop theory, gather results, and analyze these results with empirical observations [11].

Research involves understanding how and why a tool might be useful, and it involves validating the tool according with certain properties or effects by designing carefully an experiment to measure the properties, or to compare it with other tools. The experimental method can be applied to validate hypotheses, or to understand the effects of the tool different environments. The SE field needs research to help establish the scientific and engineering basis. The researchers need to build, analyze and evaluate the models of the process, the environment where the project is being built, and the final product. The goal is to create conceptual scientific foundations of SE for future researches by discovering and validating small concepts that can be applied and used to find more complex and advanced ideas, building packages of knowledge [9].

2.2 Software Engineering for Scientific Computing

One of the continuing challenges of a software application domain is to apply the traditional SE in scientific computing, given the numerous differences on identifying the requirements, expected behavior and results of the system. This section will present some of the process, methods and tools of the traditional SE that are applied for scientific computing with the respective adaptations to attend the dynamic and development of the scientific computing project.

The difficulty to use the same process and methods of traditional SE in scientific computing software can be addressed to the changes of algorithms, models, and architecture according with the discoveries and progress of the project [12]. The steps of the development process might vary according with the project evolution and the output might be unknown.

The traditional SE consists on tools, methods, and procedures responsible for define the software lifecycle [1]. Some of the phases of SE can be applied in the scientific computing process. This section presents concepts and practices of the traditional SE that can be adapted and applicable for the scientific computing.

In the traditional SE, the software requirements phase is extremely important and it should be well defined at the initial of a project to minimize the risks of failure. Although, this phase can be hard to apply in a scientific software given the number of changes in the algorithms, models and architectures. In order to reduce the negative impacts of not having all the requirements well defined in the beginning of the scientific computing project, the developer can do constantly meetings with the user (in this case, people involved in the project). The software requirements can be categorized in user requirements, which the requirements are written in a comprehensive way to be easily understood by the user, and software requirements, that it is separated in functional, non-functional and domain requirements [1].

Functional requirements describe the functionalities of the system [13], by providing information of how the system should behave and react according to the set of inputs [1]. Non-Functional requirements are responsible for the constraints of the software, like programming standards, reliability or computational speed [12]. Domain requirements are defined based on the domain of the application; they might be new functional requirements (or constraints of an existing one) and they can specify particular computations [1].

The scientific computing has the domain requirement as fundamental to define models, equations and numerical algorithms for the project. The software development consists on the design, development, maintenance and testing of the software [12]. The software architectural design focus on the design of the system structure, obtaining the architectural model of how the system can be organized given a set of communicating components [1], and defines the flowcharts of the software, that contain the structure of the software sub-systems (components) and interfaces [12].

Configuration management is a general process to manage the software changes to control the codes and documentations updated [1]. The version control is a repository that contains all the source versions and it allows the people involved to the project to track all the history of the code or artifacts. It provides the latest version of a file, check the differences between the local version to the repository, merge the changes made, commit the local files, identify what was modified, who committed and when it was changed, and it also allows to undo the changes or get the previous version of the archive. The configuration management is also important in scientific computing to compare the results between two different moments of the scientific software, and undo the changes or get another version in case of the recent algorithm or numeric expression has failed [12].

The software testing consists on the process of verification and validation. The verification checks if the software matches to its specifications (function and non-functional requirement), and the validation ensures if the software meets with the expected results from customer [1]. For the scientific computing, the testing can be challenging because it compares experimental data and it does not always know the “correct” output [12].

3 Human-Computer Interaction

The Human-Computer Interaction (HCI) is a multidisciplinary field that studies the interaction of humans and computers, its main goal is to make systems more usable, providing information clearly and accessible to people [14]. HCI defines concepts, methods, and processes that can be integrated into the SE lifecycle by considering the users’ characteristics and needs to enhance product quality. The HCI defines techniques, methods, guidelines and standards that can be incorporated to the development of interactive software. The software lifecycles defined by SE were adapted to use the HCI techniques [15].

The techniques from HCI can generate artifacts that can contribute with the SE by helping to identify the functional requirements that meet with the customer expectation and focus on the user, creating prototype for UML, and software validation with real users that helps to identify if the software attends the user’s needs and identify possible bugs in the system that could occur in the routine of the user. The following aspects represent a few fields that collaborates do HCI study. The elements of those aspect are important to define how it will be the communication between the user and the system, and to design a software that attends a large number users.

Psychology is one of the fields that contributes directly with HCI in order to make systems more useful and usable. Some important fundaments are Hick-Hyman and Fitts law, Gestalt principles, Distributed Cognition, mental model [16]. The importance of psychology in HCI is not only applied for the tools and techniques, it has also an important role regarding the ethical aspects, which it will be mentioned in the ethics section.

Some of the techniques and tools from HCI are useful in the process of integrating HCI and SE, and requires the user participation during the experimentations and validation. The integration scenario of both fields justifies the necessity of ethics during the project development. This also occurs when companies try to use the theoretical concept (like semiotic) in the projects, or integrate it with other field of Human-Robot Interaction.

The Semiotic is a field that study the signs, system signs, and the process that involves the interpretation of these signs. Semiotic Engineering is described in HCI as the human communication through a computational system, focusing in the communication between designers, users and system [16].

The Human-Robot Interaction (HRI) is an interdisciplinary field that studies the interaction between the human and robot. The study of HRI focus on functionality and usability aspects of the best way to design and implement the robot for tasks that involves humans [17, 18].

At the beginning of the study of HCI, the researches were based on graphic interface, then the challenge became to understanding how people use computers for different activities. According with [14], the evolution of HCI research can be listed as Collaborative Human-Computer Systems, From Novice to Skilled Domain Worker, Knowledge-Based HCI, Design Time and Use Time, Saying the “right” thing at the “right” time in the “right” way, which focused on improve human-computer collaboration, make the system more usable, evidence the communication channel between human and the computer, how to make the system to a lot of users and cause the impression that it was made for him, provide relevant information according with the intended audience.

4 Ethics

The term ethics is defined in different ways from numerous philosophers, according with J.M. Kizza, it can be defined as the study of the human conduct, that helps to distinguish the difference of what is right and wrong, as why and what reason our judgement is justified. “The purpose of ethics is to interpret human conduct, acknowledging and distinguishing between right and wrong” [19]. This section will present some of the codes and ethical aspects applied in SE, HCI, scientific computing as some of the ethics from biomedicine.

4.1 Ethics in Software Engineering

Considering the growth of SE as a discipline, the Institute of Electrical and Electronics Engineers (IEEE) [20] and Association for Computing Machinery (ACM) [21] stablished the Code of Ethics and Professional Practice to advance the professionalism of SE. The Software Engineering Code of Ethics and Professional Practice provides standard for teaching and practicing of the discipline, and it documents the ethical and professional obligations. The code is destined for SE profession, and it instructs about the standards society expectations, informing the public about the responsibilities that are relevant to this profession [19, 22].

The code provides practical advice, principles, and methods of the application of its guidelines to help the software engineer in technical and ethical decisions [22]. It contains important information related to the software engineer ethical behavior and obligations to make it a respected profession by teaching, and executing tasks of analysis, specification, design, development, certification, maintenance, and testing the software, and by preserving the ethics obligations of health, safety and welfare [19].

There are eight principles related to the behavior and decisions made by software engineers that reflect the ethical obligations to be consider in this profession. These Principles should be considered by the software engineers, and the people related or affected by the profession. The central of the code is the Public Interest, which it encompasses the concerns about the health, safety and welfare of the public [19, 22, 23]: Public (software engineers shall act according to the public interest, accepting responsibilities), Client and employer (software engineers shall act to meet with the client and employer best interests, and being consistent with public interest), Product (software engineers have to ensure that the product and its modifications meet the highest professional standards), Judgment (software engineers should maintain integrity and independence in their professional judgment), Management (SE managers and leaders shall subscribe and promote an ethical approach to the management of software development and maintenance), Profession (software engineers shall advance the integrity and reputation of the profession consistent with the public interest), Colleagues (software engineers shall be fair and supportive of their col- leagues), Self (software engineers shall participate in lifelong learning regarding the practice of their profession, and promote an ethical approach to the practice of the profession).

Considering the relevance of the computer in the industry and society, the SE roles have the possibility to do good or cause no harm. In order to ensure that the acts of this profession will be good, the software engineers have to commit themselves to make this profession beneficial and respected, following the Code of Ethics and Professional Practice [19, 23].

4.2 Ethics in Human-Computer Interaction

In HCI, the participant of humans to validate a product or a research is fundamental, generating ethical concerns for the research community. The research in HCI needs to go through an ethical review process to prevent the research to violate any ethical conduct [24].

HCI research adopted codes of ethics from different institutes, like IEEE [20], ACM [21], Australian Computer Society (ACS) [25], American Psychological Association (APA) [26], and British Psychological Society (BPS) [27]. For being a field that involves directly human participation, HCI involves The HCI researches adopt codes of ethics from computing and engineering institutes that focus on principles related to technology, and psychological institutes that emphasizes the problems related to psychological profession [24]. The codes from psychological society were adopted considering that HCI involves the cognition of the users (humans) and that the discipline has fundaments based on psychology study.

The computing and psychological code of ethics provide clauses that concerns with: the transparency of information with the participants, guarantee the public interest, accept responsibilities for the actions, respect individual knowledge and skills, treat people equally, ensure the safety and welfare of the individuals [24], guarantee the confidentiality of the data, anonymity of the individual, request any permission when the experiment is recorded, and free consent term signed by subject of study (who can refuse to collaborate to the experiment anytime) [16].

For the professional perspective, the User Experience Professional’s Association (UXPA) [28] have a code of conducts for professionals to ensure the best interests of the participants by concerning about their welfare and how are they are being treated [24]. There are several projects that consider the ethical aspects of HCI [29,30,31], while several other researches are justified by not requiring the direct involvement of the user in experiments [32,33,34,35].

4.3 Ethics in Scientific Research

The goal of a scientific research is to generate knowledge, which it can be a theoretical inspiration, technological or practical. A new knowledge can emerge and be spread by the common sense, traditions from multiple sources and cultures, and the practical knowledge [36].

The practical purpose of producing a knowledge is to contribute to social purpose. The knowledge advance occurs when it exists a problem, a challenge or something to be improved. At the begging of every research, ethical and moral issues need to be assumed, once ethic is the idea of how the life should be lived, and the moral is the perspective of right and wrong [36]. Ethics in scientific research provides a framework that analyzes the ends and goals of the research. The researchers have to ensure that their works reach the goals and attend the democratic freedom, social welfare, equity, and improve of knowledge [37].

The ethics and morality are dynamic; they are components founders and active of social life. The ethic in scientific research is not reduced to how to do, how to communicate and limit what to say, it refers to what and who was investigated [36].

The ethical violations in scientific research can be listed in: negligence in the acknowledgment of previous work, “deliberate fabrication of data you have collected”, omission of data that go against with the hypothesis, use the data from another researcher as it was yours, publication of other researchers results without their consent, not recognize the researchers involved in the work, conflict of interest, publication works with too-similar results or reviews, breach of confidentiality, misrepresenting others’ work [38].

Ethics and morals elements in a scientific project are constantly being questioned, in contradiction to the past, when the ethics in scientific research used to be assumed as natural. It seems that researchers, managers, publishers, users and funders are facing three challenges based on the democratic culture that used to support the scientific communities and guarantee the circulation of knowledge. The first challenge is related to the exclusive scientific research to powerful private economic groups, where economic incentives and pressure for products impact the production of knowledge. The concern of ethic is related to how we do science. The second challenge is partially an impact from the first challenge. The problem is how to deal with the pressure from the researchers to find resources and achieve academic status, and from the universities that are worried about the ranking in national and international evaluation. It is difficult to understand what the research represents, considering that the work is measured by the number of publications. The consequences of this are the number of publications shared between multiple authors, research programs where results are published in multiple articles and examples as plagiarism. The ethic issue in this challenge is about how to report or communicate science. This challenge is about the pressure of being transparent regarding the use of expressions like “The science shows…”, “from the technical point of view…”. In this case, the ethical issue is about what and where the science can or should opine, the responsibility that scientific communities have according with the society [36].

The São Paulo Research Foundation (FAPESP) [39] is a public foundation that supports research projects and institutions. The code of good scientific practice from FAPESP establishes ethical guidelines for the scientific activities from any person or entity that has a relation to the foundation. This code provides information about the responsibilities of the researcher, the members involved and the institution linked to the project. It also emphasizes important requirements related the research. According with FAPESP, the researcher responsibilities include to agree on build an original project, have the scientific capacity to realize it, keep confidential data and information collected along with the procedures and partial results until the publication of the results. To communicate the research and authorship results, the researcher should expose the results accurately with all data, information and procedures relevant, the ethical or legal reasons for not exposing same specific data, any possible conflicts of interest, credits of ideas from existing works and authors, the researches involved in the work that agreed of having the names published [40].

4.4 Ethics in Biomedicine Versus Scientific Research

In the past, many researchers believed that their determination to do good, the integrity of character, and the scientific rigor were sufficient to ensure the ethics of the research. Then, the ethical issues applied to health passed by discussions where the old conception is no longer consensus, given the transformation in the society such as the incorporation of new technologies in the healthcare, the further diffusion of scientific knowledge, the expansion of social movements in defense of the individual and collective rights. Scientific advance does not justify the experimentation by itself, even when the results of experiments promise benefit to humanity [5].

Research Ethics Committees.

Over the centuries, trials in humans have been conducted with different standards of quality and ethics. In history, there are several shocking cases of the use of human subjects in studies and research, where the absence of control mechanisms based on ethical and moral criteria, resulted in abuses of experiments [5].

Considering the abuses of experiments reported worldwide, the International Court of Nuremberg developed in 1947 the Nuremberg Code, the first code of conduct in research internationally accepted [5]. The code has 10 principles: the voluntary consent of the subject; the experiment should be applied in order to produce fruitful results; the experiment should be designed and based on the animal experimentation and a knowledge of the natural history, disease or other problem in the study; the experiment should be conducted avoiding unnecessary physical and mental suffering, and injury; the experiment should not be conducted if exist any reason to believe it can lead to death or disabling injury, except when experimental physicians are also subjects of study; the level of risk should not exceed the level determined by humanitarian importance of the problem; proper preparations and adequacy of the facilities should be made to protect the subject; the experiment should be conducted by qualified people; the subject has the right to end the experiment if he reaches the physical or mental state that make impossible to continue the experiment; the scientist conducting the experiment must be prepared to end the experiment at any time [41]. Even after creation of the Nuremberg Code, the ethical infractions continued occurring [5].

In Brazil, the National Health Council [42] adopted a document aimed to create ethical standards for research in health, CNS 01 (1988), which it was replaced by CNS 196 (1996). The CNS 196 is an ethical recommendation for all researches that directly or indirectly involves human beings.

The Research Ethics Committees (RECs), also known as Ethical Review Board (ERB), Ethical Review Committee (ERC), Human Research Ethics Committee (HREC), or Institutional Review Board (IRB) emerged from the idea that experiments with humans need to be reviewed based on ethical principles. It is multidisciplinary committee formed by individuals from different fields of human knowledge, that has the objective to preserve the integrity of the subjects of scientific research, ensuring that the study attends international and local ethical guidelines, monitoring the study once started, and making a follow-up of the research after it ends [5, 43].

The Protocol Research is a document written by the researchers that must contain all the details of the experimentation [43]. The REC will analyze the Protocol Research evaluating the risks and benefits contemplated in the introduction or a special section of the project, the competence of the researcher to conduct the research, the informed consent, and the consent form [5].

Informed Consent.

The informed consent of the participant is required for all international codes and it is one of the pillars of ethics in scientific research. The importance to obtain informed consent is based on ethical, sociological and legal reasons [5]. When a subject intends to participate of an experimentation, it is necessary to provide full information of the experiment process, so it can be considered as informed [44].

Biomedical research can only be done through informed consent, which it is very difficult to acquire, and consequently it turns out to be a challenge for the researcher. The consent requires adequate information, that should be understood by the patient [5]. The individuals must be informed about that the research intends to produce scientific knowledge and it is not a medical treatment, the duration of the study, risks and inconveniences, alternative treatments, measures to protect the confidentiality of personal information, voluntary and reversible consent, what to do in case of adverse effects, compensation in case harm is experienced from the research, if they will continue to receive intervention after the end of the study [43].

To participate of a research, the subject of study should sign an informed consent form, which must be written with accessible language and be part of the research protocol. When the experiment is conducted with vulnerable people, the issue of informed consent is severe. Vulnerable people are those who for any reason have a reduced capacity for self-determination. In cases that the individual’s competence is diminished, someone else can give the informed consent [5].

Analysis of Risks and Benefits.

In any research project involving humans, the researcher should reflect on the ethical aspects of their conduct. The critical analysis of risks and benefits are very important. The researcher must keep in mind the consequences of any project that it will be proposed [5].

The risk and benefit evaluation is challenging for the research ethics committees, and this evaluation requires the involvement of stakeholders of the research, investigators, representative of community and civil society, lawyers, health authorities, etc. The risks must be evaluated through the previously conducted research analysis in the laboratory, in animals and other human groups, and it should not be limited to the individual, considering also the community and health systems [5, 43].

Bioethics and Scientific Research.

The term bioethics has had different definitions through time, in its first concept, it was defined as a matter about the equilibrium in the relationship of the humans with the ecosystem and the planet. Recently, the bioethics can be defined as the systematic study of the moral dimensions of the life sciences and health care, using a variety of ethical methodologies in a multidisciplinary context [5]. The common principles of bioethics are: individual autonomy, beneficence, non-maleficence, and justice [43]. In all researches with humans, the principles of bioethics must be considered, in order to assure that the experiment preserved dignity of the human beings [5].

The principle of autonomy represents one of the ethical pillars in a research with humans, it is the ability of the participant to make decision by himself, the consent is the free. The beneficence prevents from harm, and it is the obligation to “do good”. Non-maleficence is the obligation to avoid causing harm, for example it can be represents when previous experiments with animals or in vitro tests, and even computerized simulations can help predict and avoid the damages of an experiment. The justice principle is based on moral concerns [5, 43, 45].

In Brazil, the principles of Bioethics were incorporated in the resolution that handles the research with human beings (Resolution 196), which it is related with: the free and clarified consent, the ponderation between risks and benefits, the assurance that the predictable risks will be avoid, and the social relevance of the research [5].

5 Ethics Discussion

According with [24], based on 50 issues identified in the analysis of papers from 2010 to 2015, the issues in ethics were separated in 13 categories: human and robots, autonomy and self-determination, welfare of participants and researchers, privacy, individual differences, deception, forced and restricted actions, use of subliminal cues, ethical requirements and research approval, professional ethics, role of participants, children participants, animal-computer interaction.

Taking these categories as reference, this section will discuss each category with the ethical aspects used by the SE, scientific computing and HCI. Considering the fields that will be analyzed, the Software Engineering ethical aspects will be related to the professional and ethics used by industries.

Human and Robots.

Considering the ethical aspects of this first category, the relation to HCI addressed by [24] is related to HRI field. The ethical concerns are about the robot replacing the humans (this possibility was discarded by HRI researches), minimization of the risks in the contact between the robot and human, if the robot should have free will, and that humans can be emotionally affected by robots.

The ethical aspect of the emotions that a human be affected about a robot encompasses different and divergent emotions like love, hate, discomfort, happiness, sadness, etc. that can be related to the person interacting with the robot of even who watch this interaction. In 2015, the company Boston Dynamics, responsible to build advanced robots with agility and mobility, released a video of a robot dog that could walk in different environment situations and keep standing when it was kicked. This video was a demonstration of the robot capabilities but it generated ethics debate, once it caused discomfort to some people. Some media vehicle and social media users expressed the concerns of the kicking behavior as wrong and cruel, others defended the action by being an experiment of the stability of the robot. To some people, the sense of cruel became a discussion of how it can affect the human social behavior in long-term by allowing this kind action with the robots. Considering that this happened in 2015, it demonstrates how the ethical aspect in HRI are still evolving.

For the SE, the ethics applied in robotics, according with [46] can use some of the guidelines from the professional codes of IEEE [20], ACM [21], and American Society of Mechanical Engineers (ASME) [47] but those codes might not be enough to contemplate particularities that involves robots. The existing codes does not emphasize that the engineers should take responsibility for their decisions, actions and creations, which it is important to protect all parties and help the professionals make ethical decisions. The authors proposed a code for robotics engineers encompassing to recognize the responsibilities for the actions and creation, respect peoples’ rights, not knowingly misinform and correct existing misinformation, respect the laws applicable, disclose any conflicts of interest, “accept and offer constructive criticism”, assist colleagues, take responsibilities for the well-being of: most people as possible, environmental concerns, government, profession and colleagues’ reputation, meet customers’ expectations and safety, company’s financial and reputation.

For the scientific computing, according with [48], the ethical aspects in robotics need to be consider by the researchers based on the realistic future designs, instead of focusing in pre-defined vision of robots that might not be feasible, and that robot ethics are grounded in empirical data, by identifying the ethical implications and design challenges in existing robots. The authors emphasize the importance of the ethics based on the knowledge from social reality, how the technology is being used, and reflections and concerns based on empirical studies of robotic artifact.

Analyzing the ethical aspects of the SE and HCI, the scientific research ethics can consider the aspects from both fields. For SE, besides of following existing code of ethics related to technology, it is important that the researcher take responsibilities for the decisions and creations in order to protect and respect all parties. For the assist colleagues, and profession and colleagues’ reputation, the ethics in scientific computing should be applicable to the members involved in the research. By meet customers’ expectations, we can consider align the research requirements with the advisor of the project. The company’s financial and reputation in this case is the institution where the research is being conducted. And, to the disclose of conflicts of interest, this might refer to the people involved in the research, as the advisor and the institution. Regarding the HCI, the ethical aspects for HCI were about concerns of the HRI. The ethical aspects mentioned should be relevant when conducting a research that involves the interaction between the human and the robot in order to guarantee the safety of person that it is interacting, the level of intelligence that a robot should have, the emotions that the person might feel about the robot.

Autonomy and Self-determination.

According with the authors of [24], the participants have the right to decide to participate, refuse to continue collaborating at any time, and decide give or not the consent. All participants should be informed of the discomfort and risks that can occur during or after the experimentation.

One recent and common scenario that has been occurring is related to the web environment. The web provides the user’s personal information in social media but those data should only be collected with the user consent. If the consent is not given, it is a violation of user’s privacy, autonomy and self-determination.

The ethical aspects approached by the second category must be applied in any field of study in order to respect the person free will to participate to an experiment. The consent is required in all kind of experiments, requiring a physical interaction or even a form. The participant should know all possible risks of the experimentation, and the person responsible to conduct the experiment must present the information clearly and should not hide details from the participant. Some ethics discussion around the free will of people to participate of an experiment are based on cases where the person or organization conducting the experiment offers gift, money or any kind of compensation or incentive as benefit to gather more participants. Unfortunately, this practice is common by the industries for market research.

In Brazil, some companies are associated to ABEP (Brazilian Association of Research Companies) [49], which contains guidelines and recommendations for market research. Regarding the incentive with money or any kind of benefit, ABEP consider that this practice might negatively affect the research results, once the participant could be participating just for the benefit that was offered. Although, the association recognize that this is a usual practice and that the gratification might change according with the research complexity, user’s profile, duration of the interview, the distance of the research location from the participant, etc. Considering some of those aspects, ABEP consider valid the granting incentives but it is totally against to the use of this practice if the researcher uses as a way to easily select participants, and if the participants use this practice to receive an alternative income. So ABEP consider that the gratification should be used only for refund for participant expenses, like transport, parking, food or eventual costs, or indemnification.

Welfare of Participants and Researchers.

This category defines that the participants should be respected and protected mentally and physically. The mental well-being encompasses sensitive issues, emotion states, and self-esteem, the researchers need to be careful when approaching sensitive memories, negative emotions, or emotionally fragile individuals [24].

HCI researches can directly and indirectly involve the mental well-being of participants. Some HCI researched focus on the study of the emotions effect, so the researcher needs to be careful when approaching sensitive memories, negative emotions, or emotionally fragile individuals [24].

In Sect. 3, this work presents some of the ethical aspects from different SE, HCI, scientific research and bioethics, emphasizing the importance to procect the subject of study and do cause harm. So, all professionals and researchers from any field need to respect and protect the participants during experiments in order to avoid any physical injury or mentally affect the participant by offending, causing embarrassment or put the individual in a negative state of mind.

Privacy.

The Privacy category is based on the protection users’ data, maintain the anonymity of the participants, and confidentiality of the collected data [24].

The HCI researchers need to carefully design research methodology to avoid the privacy violation by collecting data that the user did not consent, like life-log information from social network, wearable devices, monitoring user’s behavior, etc. [24].

It is important to keep the privacy of the users during an experiment in order to not expose any personal information, avoiding any feeling of discomfort, shame or exposure by the participant. The text, audio and video artifact should be confidential. In case of the forms, the data collected should be presented to show numbers, ranges, opinions, probabilities and metrics but it should never specify who filled what information. There are some exceptions, like the researches based on face recognition, which the research needs to expose the participant photography but it should only be published with the participant consent.

Individual Differences.

This category evidence the cultural differences, different range of age, physical disabilities, etc. From the HCI field, the system should not indicate different usability with the culture that it is destined because the user might feel frustrated or discomfort. The Universal Accessibility and Universal Design focus on producing universally and accessible systems in order to build systems that attend physical disabilities such as hearing, visions, mobility, cognitive, speech, etc. [24].

The SE practiced by the industries does not always attend the universal accessibility and universal design, some of them does not even consider those aspects when gathering software requirements, in some cases it is created two different versions of the software to attend people with and without disabilities. For the cultural aspect, sometimes the software is implemented in different locations and uses different graphic interfaces or functionalities to attend different necessities, restriction of the laws according with the country or nation, or to follow the trend of each place.

From the scientific computing perspective, it is important that the research is accessible for most people as possible, especially the research community, in order to contribute with further studies and even avoid duplicate research, that can lead to plagiarism.

Deception.

Deception category involves designing, manipulation and display of information in HCI. It can preserve system image or social disruption by showing a progress bar when something is being processed but some deceptions lead to clicks in something that it is not the purpose of the user’s action, like advertisement, phishing and subscribe function [24].

In SE, the deception category can be related to the ethical aspect of client and customer, for the scenario when the software does not meet with the customer’s expectation by not having requirements that was requested or erroneous functionality behavior.

For the scientific research, it is possible to adapt the category of Deception presented as an HCI ethical aspect by the deception in a research or paper, which it contains and objective but the information of the rest of the paper leads to a different approach and conclusion that was not what the readers expect.

Forced and Restricted Actions.

It was categorized based on some HCI research that forces or restrict the user to some actions. In some cases, the system does not allow a simple task that the user should be able to execute but sometimes the system is preventing some action to guarantee the safety of the user. The ethical aspect of rather the system should allow or not some user’s actions is arguable, besides the design heuristic supports that the system should be used without restrictions [24].

This category is more related with the user interaction with the system. It was not identified a relevant aspect of this category applied for the SE during the development of this paper.

Use of Subliminal Cues.

It is a category that handles the subliminal cues that might interfere on the individual’s behavior or decisions without the participant even notice [24].

In HCI, especially when it is related to scientific computing, the aspect of this category should be handle carefully to not provide any cue that can lead to the participant be influenced in his decisions, answers or reaction. The researcher needs to be aware to not send any subliminal message, so the experimentation does not generate false results.

In SE, the professional that conducts the interviews with the customer should gather the customer’s requests, and be careful to not induce the customer to agree on the easier solution, different functionalities, or unnecessary requirements. This might lead the customer to feel uncomfortable or disappointed by receiving a software that does not attend his needs.

Ethical Requirements and Research Approval.

This category is based on the necessity of the research to go through ethical review, have protocols that meet with legal and institutional requirements, and attending some previous categories as Autonomy and Self-Determination, and Privacy.

As we saw in previous sections, the researches that involves experimentations with humans should have a Research Protocol detailing the experiment and submitted to the Research Ethics Committees, that will evaluate the protocol based on ethical aspects, for example the safety of the participants and that if they are treating with respect. The experimentation can only be executed if the Research Protocol is approved.

Professional Ethics.

It encompassed some the ethical aspects of accept responsibilities for the action and decisions made, not misinform participants, disclose any conflicts of interest, accept and offer constructive criticism, and assist colleagues in professional environment. In HCI, those elements ensure research competence and protect the research from damage, and the researchers should be aware of any misinterpretations of the research [24].

Since the [24] contains the analysis on papers between 2010 and 2015 [24], the elements of Professional Ethics category were based on [46], which it was already presented in this discussion for the first category (Smart System) of the applicability of ethics for robot engineers. So, the aspects of this category are also applicable for SE professional, and in scientific computing, as it was discussed before, it can be applied adapting to the researcher and the people involved in the research.

Role of Participant.

In HCI research, this category encourages the participation of the stakeholders and public but the participant should have more influence than the other subjects of study [24].

In scientific computing, the role of participant is to provide relevant information or participate of activities (if it the participant agrees) to the improvement research. The research can conduct the experimentation by requesting personal information in a form or interview, request the user to interact with system or a technology that is being developed. It is common to have students from the same institution performing the experimentation but sometimes it requires people with specific characteristics or experience.

In SE the experimentation can also occur with gathering personal information in a form or interview, user interaction with the software or a new technology but in this case, usually the participants are the company staff. For the ESE, the test of the method or tool is conducted by the academic institution but the ideal was that for the participants to be practitioners (or engineers) from the industry.

Children Participation.

It is regarding on the increased number of researches involving Child-Computer Interaction (CCI). The CCI is under HCI field and has the children as the focus group. It requires a special attention given the vulnerability of this group. The ethical aspect in this case does not depends only on the willingness of the child to participate but it also need a guardian to consent and make some decisions of this participation [24].

Animal-Computer Interaction (ACI).

It is based on the growth technologies that monitor daily activities, and the desire of the users to track their pets. The ACI is under the HCI field [24], this field has the objective to study the interaction between the animals and technology. The ethical principles of the researches in this field are: Respect all species of the research without discrimination, “human and nonhuman participants as individuals equally deserving of consideration, respect and care”, choose species only if the intention is to advance knowledge or technology for those specific species, protect physically and mentally human and nonhumans participants, allow the human and nonhuman participant to refuse the experiment at any time, obtain informed consent for humans participants and the informed consent by the legally responsible for nonhumans participants [50].

Any scientific research, including in computing field, involving animals should submit a protocol to the animal ethics committee that will evaluate if the research does not cause any harm or pain to the animal. Even if the research has the approval from the ethics committee, the researches involving animals can face some critics by the organizations in defense of animals.

6 Conclusion

The main objective of this paper was to demonstrates the relationship of the HCI with the evolution of the ethical aspects of the traditional SE and its application to scientific computing. With the analysis made in this paper, it was possible to identify tools and method of the SE that can be applied in scientific computing, and how the scientific research can contribute with the ESE by identifying new tool and methods, or improving the existing ones. The experimentations in SE usually requires humans’ participation, and the field that involves the interaction between human and computer is HCI. The participation of human in experimentation involves ethical aspects in order to protect the subject of study. The discussion of Sect. 5, based on the categories from [24], shows some of the relations of the ethical aspects from HCI applied in SE and scientist computing.

The ethic is highly important in any field. There is some similarity regarding the clauses of different code ethics related to computer science field. Most of those codes of ethics set the public interests as the main factor of ethics, the roles and the responsibilities should be respected according with the clauses. Every time an experiment involves a human interaction, the tests should be approved by ethics committees. Analyzing the ethics from SE and medicine, both contain similar aspects but the differences are the level of risk, and influences in the human health and society.

Based on the discussion of the ethics of SE, HCI and scientific computing, some of the ethical aspect can be applicable, adapting to the person who is conducting the experimentation, the participants, the organization and the final product. All fields contain concerns about ethics, some are from new studies that are emerging with the growth of the technology, like in scientific research and improvement of the HCI study, and others are related to the absence of a regulatory entity of experimentation conducted by industry in some countries.

One problem with the increasing number of experiments and tests conducted by industries is the overload of ethics committees regarding the evaluation and supervision processes of the projects. This requires the investment of smart system that can help the member from ethics committees on performing their tasks. Another problem based on the theme of this paper is the diversity of researches in robotics, autonomous systems and smart systems. The projects from these fields of study (sometimes with more than one field integrated like [51]) have specific characteristics that involve users, besides of they could contain benefits and risks that are not clearly recognized.

The ethics and the codes of ethics are evolving according with the time and evolution of the researches. Software, mobile devices, sensors and robots are gaining more functionalities and autonomy, new technologies or future technologies are emerging, and the ethics need to be adapting and evolving, so the society can feel more secure, know what to expect, and what is the expected behavior in relation to these technologies.