Is it Really Engineering?
Chapter 3
What's Different about Software?
• Is it a “dark art”?
• It‟s a strange amalgam of art,
craftsmanship, science and the application
of theory (engineering).
Artificial Science
• Perhaps one way to describe it is as an
“artificial science”: it is difficult to quantify
it software engineering rules
mathematically (they‟re “fuzzy”).
• Perhaps another way is as a “meta science”:
it relies upon a mathematics to provide for
other sciences.
• But, in either case…. “not quite…”
The Analogy to Other
Professions
• So, if “Software Engineering” is really
“engineering” how does it stack up against
the other engineering professions?
• Let‟s look at some other engineering
professions, such as Civil Engineers,
Architects, Mechanical Engineers,
Hardware Engineers, Doctors, and so on.
Civil Engineering
• Civil engineers design buildings, bridges and
roads. Is software anything like these?
• Civil engineers use specification and design to
define them, and apply mathematical techniques
(“Statics” and “Dynamics”).
• However, it is possible to visualize, build physical
models, and the acutal end product can be
touched, and visually inspected!
• Not so with software. This makes it much more
difficult to describe, inspect and test.
Architecture
• Architects design spaces (building and
landscape architectures) that are both
functional and aesthetically pleasing.
• Architects apply principles of lighting,
balance and visual design.
• Once again, though, they produce a product
that can be visually inspected and found
pleasing or not.
Mechanical/Aeronautical
Engineering
• Mechanical and Aeronautical engineers design
complex physical systems where safety and
reliability are arguably more important that
aesthetics.
• Even so, the end product can (and should!) be
subjected to rigorous testing and visual inspection.
• Software may have to be safe and reliable, but
testing something that can‟t be touched is much
more difficult!
Computer (Hardware)
Engineering
• Computer hardware engineering is more in line
with software engineering, but still, tools are
provided to be the „eyes‟ of the engineer (scopes,
logic analyzers, DVMs). These tools are much
easier to apply than debuggers.
• With hardware, defects can be found quickly, but
take a while to fix (board turns, etc.)
• With software, defects take a while to find, but
can usually be fixed quickly.
Medicine
• Medicine diagnosis can be much easier in some
circumstances (the physician asks “where does it
hurt?”) but not all (pediatrics).
• Safety and competence is a life and death issue.
• It is not always easy to see what‟s going on inside
the patient, so in that respect, it resembles the
problems faced by the software engineer.
Responsibility of Software
Developers
• In all the previous professions, as is the case in
software engineering, competence and respect for
the safety of the customer are of great importance.
• The minimum responsibilities of engineers has
been codified in law: tort law.
• It is our hope that engineering students will realize
that their responsibilities as engineers goes well
beyond what the legal system mandates.
Engineering Institutions
• There are many institutions that have an impact on
the engineering establishment.
• The market itself is one: some things sell, others
don‟t.
• Typically, society protects itself with a set of rules
and expectations, codified in law.
• Businesses will proclaim agreements (warranties)
based (hopefully) on these laws.
• Engineers will work to advance their professions.
Market forces
• The market also causes engineering communities
to conform to values by providing a financial
reward.
• Consider safety standards certification agencies
(such as Underwriters Laboratories.)
• Sometimes markets are closed unless a certifying
agency has documented conformity to a particular
set of safety codes.
The legal system
• Tort law is the law of injury and loss. (“Tort” is
the root word in “torture.”)
• The legal system prescribes remedy for people
who are injured (or whose property is injured) by
a product produced by negligent means.
• These remedies can include “punitive damages”
that go beyond compensation: they are intended
to “punish” the producer so as to encourage others
to not do the same!
Warranties
• Warranties can be either expressed
(indicated in writing) or implied (obvious
from the intent of the product.)
• Warranties cannot legally disclaim
customer rights protected by, or preserved
under the law.
• So, if warranties disclaim all liability for
injury, it doesn‟t mean that it is binding!
Professional organizations
• Engineering organizations are composed of
professional engineers (people who earn their
living by being engineers).
• Their purpose is to promote the advancement of
the profession by sponsoring research and setting
standards for the engineering community.
• These organizations may also serve an
“ombudsman” function by acting as an arbitrator
in disputes or misunderstandings.
Government regulation
• Government can both enforce existing laws,
and codify new laws and circumstances
change.
• In addition, government can establish
specialized agencies to regulate technology
and products associated with areas in the
public interest (such as the FDA).
Professional engineers and
accreditation
• The need for regulation of technology in the
public interest also implies a need for regulation of
the applications of technology.
• Examination and certification of engineer‟s
competence becomes a matter of the public
interest.
• Usually, certification examinations are developed
in collaboration with educational, governmental
and professional organizations. (Such as the
CSAB, the Computer Science Accreditation
Board.)
“Software engineers” are legal
only in Texas
• Since software engineering is a “new”
science, certification of software engineers
is essentially non-existent!
• Some states forbid the use of the title
“engineer”, unless state certified.
• So, legally, in many states, the term
“software engineer” can‟t legally be used!