Chapter 11: Software Engineering Professional Practice
- Association for Computing Machinery
- British Computer Society
- Certified Software Development Associate
- Certified Software Development Professional
- International Electrotechnical Commission
- IEEE CS
- IEEE Computer Society
- International Federation for Information Processing
- Intellectual Property
- International Organization for Standardization
- Non-Disclosure Agreement
- World Intellectual Property Organization}
- World Trade Organization
The Software Engineering Professional Practice knowledge area (KA) is concerned with the knowledge, skills, and attitudes that software engineers must possess to practice software engineering in a professional, responsible, and ethical manner. Because of the widespread applications of software products in social and personal life, the quality of software products can have profound impact on our personal well-being and societal harmony. Software engineers must handle unique engineering problems, producing software with known characteristics and reliability. This requirement calls for software engineers who possess a proper set of knowledge, skills, training, and experience in professional practice.
The term “professional practice” refers to a way of conducting services so as to achieve certain standards or criteria in both the process of performing a service and the end product resulting from the service. These standards and criteria can include both technical and nontechnical aspects. The concept of professional practice can be viewed as being more applicable within those professions that have a generally accepted body of knowledge; codes of ethics and professional conduct with penalties for violations; accepted processes for accreditation, certification, and licensing; and professional societies to provide and administer all of these. Admission to these professional societies is often predicated on a prescribed combination of education and experience.
A software engineer maintains a professional practice by performing all work in accordance with generally accepted practices, standards, and guidelines notably set forth by the applicable professional society. For example, the Association for Computing Machinery (ACM) and IEEE Computer Society (IEEE CS) have established a Software Engineering Code of Ethics and Professional Practice. Both the British Computer Society (BCS) and the International Federation for Information Processing (IFIP) have established similar professional practice standards. ISO/IEC and IEEE have further provided internationally accepted software engineering standards (see Appendix B of this Guide). IEEE CS has established two international certification programs (CSDA, CSDP) and a corresponding Guide to the Software Engineering Bodyof Knowledge (SWEBOK Guide). All of these are elements that lay the foundation for of the professional practice of software engineering.