Explore chapters and articles related to this topic
Ethics for Individual Engineers
Published in Robert D. Hunter, for Engineers, 2017
Computers have a central and growing role in commerce, industry, government, medicine, education, entertainment, and society at large. Software engineers are those who contribute, by direct participation or by teaching, to the analysis, specification, design, development, certification, maintenance, and testing of software systems. Because of their roles in developing software systems, software engineers have significant opportunities to do good or cause harm, or to influence others to do good or cause harm. To ensure, as much as possible, that their efforts will be used for good, software engineers must commit themselves to making software engineering a beneficial and respected profession. In accordance with that commitment, software engineers shall adhere to the following Code of Ethics and Professional Practice.
Metaphors in software engineering
Published in Don Harris, Engineering Psychology and Cognitive Ergonomics, 2017
The discipline of software engineering is concerned with the specification, development, management and evolution of software systems. These systems are abstract, in that they do not have any physical form, so that, unlike other engineering disciplines, software engineering is not constrained by physical laws or by manufacturing processes (Sommerville, 1996). Software systems are usually complex, invisible, and subject to the need for frequent change. Unlike other engineering disciplines, software engineers cannot exhaustively test their end product. There is, therefore, a need to focus on models and the method of production, in the hope that a ‘good’ method will produce a ‘good’ product.
Fundamentals of Systems Engineering
Published in Julio Sanchez, Maria P. Canton, Software Solutions for Engineers and Scientists, 2018
Julio Sanchez, Maria P. Canton
From an engineering viewpoint a software system is a product that serves a function. However, one unique attribute makes a computer program much different from a bridge or an airplane: a program can be changed. This malleability of software is both an advantage and a danger. An advantage because it is often possible to correct an error in a program much easier than it would be to fix a defect in an airplane or automobile. A danger because a modification in a program can introduce unanticipated side effects that may impair the functionality of those components that were executing correctly before the change.
Extending data-driven model of software with software change request service
Published in Enterprise Information Systems, 2018
Zeljko Stojanov, Dalibor Dobrilovic, Jelena Stojanov
Software maintenance mainly relates to modifications of software systems after their delivery into target environments. Most of the costs of software systems occur in the maintenance phase of software life cycle (Jones 2010; Sommerville 2011; Concas et al. 2013; Bourque and Fairley 2014; Ulziit et al. 2015). Sousa (1998) reported that only 2.7% of specialists involved in software maintenance activities considered software maintenance process as being very efficient, while 70.2% of them thought that maintenance process has a very low efficiency level. According to Sousa, the costs and the complexity of maintenance are the consequences of the complexity of change requests, the complexity of systems to be changed or the lack of qualified software maintainers. In the practice, users expect software systems that are reliable and easy to maintain, while software development organizations see important economic benefits from maintenance. Users usually initiate maintenance activities by issuing maintenance requests that relate to: identified problems within software systems, enhancements of software systems, or adaptation of software systems to new conditions in environments (Junio et al. 2011; Sommerville 2011). In any case, the fundamental process in software maintenance relates to modification of software, and in that case maintenance request is named modification request or change request (which is adopted in this approach).