scholarly journals Is there a "software engineering ethics"? Comparing commercial and research software engineering

Author(s):  
Graham Lee
2015 ◽  
pp. 997-1012
Author(s):  
Jagadeesh Nandigam ◽  
Venkat N Gudivada

This chapter describes a pragmatic approach to using open source and free software tools as valuable resources to affect learning of software industry practices using iterative and incremental development methods. The authors discuss how the above resources are used in teaching undergraduate Software Engineering (SE) courses. More specifically, they illustrate iterative and incremental development, documenting software requirements, version control and source code management, coding standards compliance, design visualization, software testing, software metrics, release deliverables, software engineering ethics, and professional practices. The authors also present how they positioned the activities of this course to qualify it for writing intensive designation. End of semester course evaluations and anecdotal evidence indicate that the proposed approach is effective in educating students in software industry practices.


Author(s):  
Gada Kadoda

The difficulties inherent in the nature of software as an intangible object pose problems for specifying its needs, predicting overall behavior or impact on users, and therefore on defining the ethical questions that are involved in software development. Whereas software engineering drew from older engineering disciplines for process and practice development, culminating in the IEEE/ACM Professional Code in 1999, the topic of Software Engineering Ethics is entwined with Computer Science, and developments in Computer and Information Ethics. Contemporary issues in engineering ethics such as globalization have raised questions for software engineers about computer crime, civil liberties, open access, digital divide, etc. Similarly, computer-related ethics is becoming increasingly important for engineering ethics because of the dominance of computers in modern engineering practice. This is not to say that software engineers should consider everything, but the diversity of ethical issues presents a challenge to the approach of accumulating resources that many ethicists maintain can be overcome by developing critical thinking skills as part of technical training courses. This chapter explores critical pedagogies in the context of student outreach activities such as service learning projects and considers their potential in broadening software engineering ethics education. The practical emphasis in critical pedagogy can allow students to link specific software design decisions and ethical positions, which can perhaps transform both student and teacher into persons more curious about their individual contribution to the public good and more conscious of their agency to change the conditions around them. After all, they share with everyone else a basic human desire to survive and flourish.


2009 ◽  
Vol 2 (2) ◽  
pp. 1299-1333
Author(s):  
A. M. Horseman ◽  
A. R. MacKenzie ◽  
M. P. Chipperfield

Abstract. A new modelling tool for the investigation of large-scale behaviour of cirrus clouds has been developed. This combines two existing models, the TOMCAT/SLIMCAT chemistry transport model (nupdate library version 0.80, script mpc346_l) and cirrus parameterisation of Ren and MacKenzie (LACM implementation not versioned). The development process employed a subset of best-practice software engineering and quality assurance processes, selected to be viable for small-scale projects whilst maintaining the same traceability objectives. The application of the software engineering and quality control processes during the development has been shown to be not a great overhead, and their use has been of benefit to the developers as well as the end users of the results. We provide a step-by-step guide to the implementation of traceability tailored to the production of geo-scientific research software, as distinct from commercial and operational software. Our recommendations include: maintaining a living "requirements list"; explicit consideration of unit, integration and acceptance testing; and automated revision/configuration control, including control of analysis tool scripts and programs. Initial testing of the resulting model against satellite and in-situ measurements has been promising. The model produces representative results for both spatial distribution of the frequency of occurrence of cirrus ice, and the drying of air as it moves across the tropical tropopause. The model is now ready for more rigorous quantitative testing, but will require the addition of a vertical wind velocity downscaling scheme to better represent extra-tropical continental cirrus.


Author(s):  
Gada Kadoda

The difficulties inherent in the nature of software as an intangible object pose problems for specifying its needs, predicting overall behavior or impact on users, and therefore on defining the ethical questions that are involved in software development. Whereas software engineering drew from older engineering disciplines for process and practice development, culminating in the IEEE/ACM Professional Code in 1999, the topic of Software Engineering Ethics is entwined with Computer Science, and developments in Computer and Information Ethics. Contemporary issues in engineering ethics such as globalization have raised questions for software engineers about computer crime, civil liberties, open access, digital divide, etc. Similarly, computer-related ethics is becoming increasingly important for engineering ethics because of the dominance of computers in modern engineering practice. This is not to say that software engineers should consider everything, but the diversity of ethical issues presents a challenge to the approach of accumulating resources that many ethicists maintain can be overcome by developing critical thinking skills as part of technical training courses. This chapter explores critical pedagogies in the context of student outreach activities such as service learning projects and considers their potential in broadening software engineering ethics education. The practical emphasis in critical pedagogy can allow students to link specific software design decisions and ethical positions, which can perhaps transform both student and teacher into persons more curious about their individual contribution to the public good and more conscious of their agency to change the conditions around them. After all, they share with everyone else a basic human desire to survive and flourish.


Author(s):  
Jagadeesh Nandigam ◽  
Venkat N. Gudivada

This chapter describes a pragmatic approach to using open source and free software tools as valuable resources to affect learning of software industry practices using iterative and incremental development methods. The authors discuss how the above resources are used in teaching undergraduate Software Engineering (SE) courses. More specifically, they illustrate iterative and incremental development, documenting software requirements, version control and source code management, coding standards compliance, design visualization, software testing, software metrics, release deliverables, software engineering ethics, and professional practices. The authors also present how they positioned the activities of this course to qualify it for writing intensive designation. End of semester course evaluations and anecdotal evidence indicate that the proposed approach is effective in educating students in software industry practices.


IEEE Software ◽  
2021 ◽  
Vol 38 (1) ◽  
pp. 97-105
Author(s):  
Jeremy Cohen ◽  
Daniel S. Katz ◽  
Michelle Barker ◽  
Neil Chue Hong ◽  
Robert Haines ◽  
...  

Sign in / Sign up

Export Citation Format

Share Document