Ethical Decisions In Software Development Answers


  • Internal Code :
  • Subject Code :
  • University :
  • Subject Name : IT Computer Science

How safe are Self-Driving Cars

Executive Summary of Ethical Decisions in Software Development

Ethical decisions play a vital role in the deployment and use of software and it has a direct impact on the users of this software, development organization and the environment as we can see different ethical scandals occurred in recent past like Facebook’s Cambridge Analytical scandal in which the data was used for the election campaign of Donald Trump and Google’s executive scandal for sexual misconduct. Different organizations like ACM and IEEE introduces different code of conducts that guides the development companies about ethical decisions. In this report, we will briefly discuss ethical decision making, its role in organizational progress and prosperity. We will discuss different organizations introducing the ethical code of conduct for software development, different types of ethical conduct, and how they help in improving the integrity of development and making the user information confidential.

Another major focus of this report is the safety of self-driving cars, their impact on human life. Self-driving cars are considered as the future of transportation and they are being discussed from different prospective such as social, economic, design, and engineering. Safety is one of the major concerns related to the adoption of self-driving cars and is has the most complex requirements. The issues related to self-driving cars that could be faced in case of neglecting the security and networking threats which could occur due to the lack of security and can help the intruders to control and can cause major damages to any society adopting this innovation. In the end, there are few recommendations based on the facts and figures discussed in the body of the report.

Table of Contents

1) Introduction:

2.0) Software Engineering Code of Ethics:

2.1) Public:

2.3) Product:

2.4) Judgment:

2.5) Management:

2.6) Profession:

2.7) Colleagues:

2.8) Self:

3.0 Safety in Self-Driving Cars.

3.2) Security:

3.3) Trust:

3.6) Transparency:

3.7) Privacy:

3.8) Reliability:

3.9) Accountability:

3.10) Quality Assurance:

4.0) Conclusion:

5.0) Recommendations:

1) Introduction to Ethical Decisions in Software Development

Humans have been manufacturing things centuries ago and faced different ethical challenges. The growing role of computers in industry, commerce, medicine, and education requires several software to be deployed to organize the work and increase efficiency. It is important for software engineers to consider different ethical rules during the design, development, maintenance, and testing of a software system. It is difficult to highlight any issue in advance while developing the software so the people have to trust software engineering experts more than the experts of any other field. At times the software engineers unintentionally behave unethically or unprofessionally. Thus, the code of conduct warns practitioners from unethical behavior that could harm others(Bastiaan, 2018 ). In this regard there is a task force has created by ACM/IEEE to address the issues related to unethical behavior but its major focus is on headline scenarios and not on the initial situations.

Software developers and organizations must make ethical considerations such as the number of users, the data collected from users and balancing different functionalities that have adverse environmental effects, and taking care of risks to reduce the security bugs in the system. These types of ethical decisions can harm people's organizations and our planet too. Organizations started making codes of conduct since 1913 for the people facing such unethical situations. The computing society ACM adopted the code of conduct for software development in 1972 and the code of conduct of ACM was updated in 2018 first time after the year 1992 because of the scandals of Diesel gate and Uber vs Waymo clash and this change in code of conduct of ACM lead us to briefly explain the impact of ethics on decision making in the software development field. Self-driving cars are controlled by software thatis operated and do the decision is making part of a self-driving car(Rajkumar, 2017).

2.0)Software Engineering Code of Ethics

2.1) Public:

Software engineers shall work consistently in the public interest and moderate software development with the employer, client, and user interests. He should only approve software that has passed enough security tests and has no impact on the quality of life and does not disclose the privacy of personal data of the user to any third party. He should disclose the bugs related to any potential threat such as public, user, or environment(Szczepanek, 2018).

2.2) Client and Employer:

A software engineer should behave in a way that is best in the interest of the client, employer as well as in the public interest. They should provide the services and work for the betterment in their area of expertise honestly about any limitations. They should not use the software obtained unethically or illegally. They should take care of the confidentiality of information related to public interest during their work. 

2.3) Product:

It is the responsibility of software engineers to ensure the highest professional standards in their products and any modifications in their previous projects. They should stick to realistic and feasible goals and outcomes for their ongoing or future projects. Identification of legal cultural, ethical, or social issues related to any project is one of the primary concerns of developers. They should be fully qualified for the ongoing projects or proposed projects having a combination of education, training, and experience and should follow the professional standards. The estimation of cost schedule, quality, and outcomes of a project are to be ensured. The proper documentation of issues and adopted solutions for that, the privacy policy of users or developers who can be affected by the software is mandatory. The data used for this purpose should be collected ethically and lawfully having minimum or no errors(Bastiaan, 2018 )

2.4) Judgment:

The professional judgment of a software engineer should be independent. They should maintain a professional objective concerning any software or related documents to which they are evaluating. They should not engage in improper or unethical financial practices such as double billing, bribery, or other improper financial practices. Disclosure of all the conflicts of interests that could not be avoided with the parties, client, and employer is also an important part of the software engineer’s job. He should not participate in any government or private body concerned with the software related issues in which their employer or client has an undisclosed potential conflict of interests (Yaman et al. 2017).

2.5) Management:

Software development managers should promote an ethical approach to manage the development process and maintenance of already developed software. The management should adopt an effective process and technique to reduce the risk and improve the quality of developed software. The management should decide the realistic deadlines and also the developers working on the project should be aware of the password protection, information, files, and data which are confidential to the employer. There should be a clear agreement for the software ownership and the management should attract potential software engineers having the relevant experience and terms and conditions of employment should be mentioned clearly and avoid a person to be assigned a post for which he is not qualified. (McNamara, 2018)

2.6) Profession:

Software engineers should maintain and improve the integrity and reputation of their profession. They should help to develop an organizational code of conduct and promote awareness about software engineering in public. All the laws concerning software development should be obeyed and the business and development in contrast with these codes of conduct should be avoided. The violations of these codes of conduct should be reported to relevant authorities incase if it is not possible to warn and stop that specific organization for disobeying the code of conduct(Mooney, 2016).

2.7) Colleagues:

A software engineer should be supportive of their colleagues and encourage them and assist them in professional development. Credit should be given to others for their work and listen to their opinions and complaints carefully. Colleagues should be fully aware of current work standards for password protection and the security of other sensitive information and documents. The priority should be given to the opinion of experts in the fields in which the software does not have enough experience(Mooney, 2016)

2.8) Self:

Software engineers should learn new technologies and practices related to their fields. They should improve their skills to create more secure and reliable software. Improvement in their understanding of software and documentation on which it has been developed is also necessary and they should not give unfair treatment to anyone. They should recognize the violence of the code and should not influence others to breach the code.(Holstein, 2018)

3.0 Safety in Self-Driving Cars

There are several ethical factors to be considered in self-driving cars to make their use reliable and acceptable for the society to adapt and avoid the drawbacks and problems related to them to avoid any potential threat. Some of the major factors are discussed below:

3.1) Safety

This is the primary and most concerning requirement of self-driving cars. The most important question related to the safety of such a car is; how we can ensure that it is safe to use because the standards for self-driving cars are under development based on the experience? The source code of self-driving cars is very important and not publically available so should there be any organization to judge the accuracy of this code and is it possible for any other developer to understand the code written by the company’s developers. When it comes to the hardware of self-driving cars, it is important to keep the cost of car minimum while keeping its decision-making accuracy maximum. For example, the price of laser radar is very high as compare to cameras and sensors but its accuracy is very good in diverse weather conditions. But what if the decision-making system of the car does not work properly? Will it stop or keep moving. Will it be possible for the police to stop a self-driving car to check the passenger inside the car? The cost of the car is also considered as an economic point of view but using the cheap apparatus makes the decision making the process of car slow or it can make wrong decisions which can cause damages to public property or harm the human life so choosing a cheap component for this car is unethical and unacceptable(Mooney, 2016)

3.2) Security:

The security of self-driving cars is also one of the key factors to be considered. There are issues related to self-driving car’s security because of the external attacks to the sensor and data collecting devices to manipulate and make changes in the data fed to the system to manipulate the decision making. Should the car be connected to the network for the latest updates in the software and better the decision-making capability based on other online resources? There are more chances of a car’s system to be attacked and controlled while it is connected to the network that can endanger human life and can damage the public property

3.3) Trust:

Another issue related to the self-driving car is trust. This can be appearing in different forms while manufacturing the hardware and software of a car the developer can manipulate the code and later can control it. The second trust-related issue is that these cars collect data from their sensors for decision making and pathfinding to reach the final destination. This data is shared with third parties like maps GPS and other external devices that can use this data and thus the user’s information could be used to harm him(Holstein, 2018). 

3.6) Transparency:

Transparency is the prerequisite for ethical engagements in the development of the systems for self-driving cars. It is the central part of all other issues related to autonomous vehicles. Transparency defines that how much information will be shared to whom because in self-driving cars several companies are collaborating for the software and hardware manufacturing of the cars and they have to take care of the performance after the deployment to remove the possible bugs and software up-gradation of the car(Holstein, 2018).

3.7) Privacy:

The decision making in self-driving cars took place on the bases of several factors. The more information is provided to the system, the more accurate decisions are taken place. The active signals of devices used by the people moving around may interrupt the decision making and data feeding of sensors. How long the data should be stored and when it should be destroyed and how it should be avoided from a third party to use. These risk factors related to privacy and the use of data for improper purposes are to be dealt with and needed to be controlled(Holstein, 2018).

3.8) Reliability:

Reliability is one of the major concerns related to self-driving cars. Because of the factors that in the absence of cellular network signals or case of any sensor failure the decision making could be affected and can cause harm to the passenger or public property. The issues could be diagnosed in a network-connected mode where different levels of security are maintained and the performance of sensors could be observed(Rajkumar, 2017)

3.9) Accountability:

In the case of autonomous vehicles, accountability is the factor to be redefined in case of accidents and incidents. Who will be responsible for any accident or potential harm because of its automated functionality? Obviously, in case of any fault in the hardware or software part of this car, the production company will be responsible. In the case of any cyber-attack, there should be a special type of rules and regulations to deal with such type of activities and improve the security systems of the software used in it. (Bastiaan, 2018)

3.10) Quality Assurance:

There should be an organization developed to assure the quality of components used, the standards followed for the development of software and security checks used to avoid any intruder activity to control the decision making of the car(Holstein, 2018)

4.0) Conclusion on Ethical Decisions in Software Development

Self-driven vehicles are the future of transportation as several companies are developing such cars and in different countries, the use of autonomous cars is allowed under a controlled environment. Issues related to their use are being resolved and the organizations are working on the improvement in the technology. The major concerns are the security and privacy of humans as well as the safety of users. The major focus should be on the social consequences of these cars. There should be a proper bordering in the data access for different organizations developing the technology and improving the bugs in it. User’s data storage and the cybersecurity organizations should play their role in the improvement in the technology and the development organizations should take care of the ethical code of conduct while developing the software.

5.0) Recommendations on Ethical Decisions in Software Development

Autonomous cars will be the revolutionary era of transportation but a set of rules and regulations should be introduced before their practical use. The software used in these cars should not be allowed to access publically and should be updated from time to time. There should be limitations to access the data to make improve privacy and the most important part of software development is to make it secure from cyber-attacks. All the ethical codes of conduct of software engineering should be followed during the development of software. So, the ethical code of conduct should be followed in the decision making the process of software engineering development to consider and then betterment in the impacts of software on the employer client and the environment and to avoid any misconduct causing the law enforcement agencies to interrupt the development process.

References for Ethical Decisions in Software Development

Bastiaan, J. P. a. J. 2018. Characterizing the Safety of Self-Driving Vehicles: A Fault Containment Protocol for Functionality Involving Vehicle Detection. Madrid, IEEE International Conference on Vehicular Electronics and Safety (ICVES).

Holstein, T. 2018. Ethical and Social Aspects of Self-Driving Cars. Västerås, Sweden, Mälardalen University.

McNamara, A. &. S. J. &. M.-H. E. 2018. Does ACM’s code of ethics change ethical decision making in software development?s.l., IEEE.

Mooney, C. 2016. Save the driver or save the crowd? Scientists wonder how driverless cars will ’choose’.. s.l., s.n.

Rajkumar, S. A. a. R. 2017. A Merging Protocol for Self-Driving Vehicles. Pittsburgh, PA, ACM/IEEE 8th International Conference on Cyber-Physical Systems (ICCPS).

Szczepanek, S.-Ż. a. M. 2018. Autonomous vehicles and their impact on road infrastructure and user safety. Casta, XI International Science-Technical Conference Automotive Safety.

Yaman, S., Fagerholm, F., Munezero, M., Mäenpää, H. and Männistö, T. 2017, November. Notifying and involving users in experimentation: ethical perceptions of software practitioners. In 2017 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM) (pp. 199-204). IEEE.

Remember, at the center of any academic work, lies clarity and evidence. Should you need further assistance, do look up to our Computer Science Assignment Help


Book Online Sessions for Ethical Decisions In Software Development Answers Online

Submit Your Assignment Here