Issue Software Engineering Engineering
Based on computer science,
Based on science, mathematics, and empirical
Foundations information science, and
Compilers and computers are
cheap, so software engineering
In some projects, construction and
and consulting are often more
manufacturing costs can be high, so
than half of the cost of a
Cost engineering may only be 15% of the cost of a
project. Minor software
project. Major engineering cost overruns may
engineering cost-overruns can
not affect the total project cost.
adversely affect the total
Replication (copying CDs or Radically new or one-of-a-kind systems can
downloading files) is trivial. require significant development effort to
Most development effort goes create a new design or change an existing
into building new (unproven) design. Other kinds of systems may require
or changing old designs and less development effort, but more attention to
adding features. issues such as manufacturability.
Engineers generally try to apply known and
Software engineers often apply
tested principles, and limit the use of untested
Innovation new and untested elements in
innovations to only those necessary to create a
product that meets its requirements.
Software engineers emphasize
Some engineers solve long-ranged problems
Duration projects that will live for years
(bridges and dams) that endure for centuries.
Engineers in some disciplines, such as civil
Management Few software engineers
engineering, manage construction,
Status manage anyone.
manufacturing, or maintenance crews.
Software engineers must blame Engineers in some fields can often blame
Blame themselves for project construction, manufacturing, or maintenance
problems. crews for project problems.
Practitioners 611,900 software engineers 1,157,020 total non-software engineers
Software engineering is about Engineering as a whole is thousands of years
50 years old. old.
Software engineers are In many jurisdictions it is illegal to call
typically self-appointed. A yourself an engineer without specific formal
computer science degree is education and/or accreditation by
common but not at all a formal governmental or engineering association
Some engineering disciplines are based on a
closed system theory and can in theory prove
Methods for formally verifying
formal correctness of a design. In practice, a
correctness are developed in
lack of computing power or input data can
Analysis computer science, but they are
make such proofs of correctness intractable,
Methodology rarely used by software
leading many engineers to use a pragmatic
engineers. The issue remains
mix of analytical approximations and
empirical test data to ensure that a product will
meet its requirements.
Engineers have nominally refined synthesis
techniques over the ages to provide exactly
this. However, this has not prevented some
notable engineering failures, such as the
SE struggles to synthesize
Synthesis collapse of Galloping Gertie (the original
(build to order) a result
Methodology Tacoma Narrows Bridge), the sinking of the
according to requirements.
Titanic, and the Pentium FDIV bug. In
addition, new technologies inevitably result in
new challenges that cannot be met using
Traditional engineering nominally separates
Software engineering is often these activities. A project is supposed to apply
Research busy with researching the research results in known or new clever ways
during unknown (e.g. to derive an to build the desired result. However, ground-
Projects algorithm) right in the middle breaking engineering projects such as Project
of a project. Apollo often include a lot of research into the
Codified Best Software engineering has just Some engineering disciplines have thousands
Practice recently started to codify and of years of best practice experience handed
over from generation to generation via a field's
literature, standards, rules and regulations.
teach best practice in the form Newer disciplines such as electronic
of design patterns. engineering and computer engineering have
codified their own best practices as they have