Page 41 -
P. 41
24 Chapter 1 Introduction
KEY POINTS
Software engineering is an engineering discipline that is concerned with all aspects of software
production.
Software is not just a program or programs but also includes documentation. Essential software
product attributes are maintainability, dependability, security, efficiency, and acceptability.
The software process includes all of the activities involved in software development. The high-
level activities of specification, development, validation, and evolution are part of all software
processes.
The fundamental notions of software engineering are universally applicable to all types of
system development. These fundamentals include software processes, dependability, security,
requirements, and reuse.
There are many different types of systems and each requires appropriate software engineering
tools and techniques for their development. There are few, if any, specific design and
implementation techniques that are applicable to all kinds of systems.
The fundamental ideas of software engineering are applicable to all types of software systems.
These fundamentals include managed software processes, software dependability and security,
requirements engineering, and software reuse.
Software engineers have responsibilities to the engineering profession and society. They should
not simply be concerned with technical issues.
Professional societies publish codes of conduct that set out the standards of behavior expected
of their members.
FURTHER RE ADING
‘No silver bullet: Essence and accidents of software engineering’. In spite of its age, this paper is a
good general introduction to the problems of software engineering. The essential message of the
paper still hasn’t changed. (F. P. Brooks, IEEE Computer, 20 (4), April 1987.)
http://doi.ieeecomputersociety.org/10.1109/MC.1987.1663532.
‘Software engineering code of ethics is approved’. An article that discusses the background to the
development of the ACM/IEEE Code of Ethics and that includes both the short and long form of the
code. (Comm. ACM, D. Gotterbarn, K. Miller, and S. Rogerson, October 1999.)
http://portal.acm.org/citation.cfm?doid=317665.317682.
Professional Issues in Software Engineering. This is an excellent book discussing legal and
professional issues as well as ethics. I prefer its practical approach to more theoretical texts on
ethics. (F. Bott, A. Coleman, J. Eaton and D. Rowland, 3rd edition, 2000, Taylor and Francis.)