1
Software Engineering
Article by: Pranshu Gupta, Department of Mathematics and Computer Science,
DeSales University, Center Valley, Pennsylvania. "Software engineering." AccessScience, McGraw Hill, Sept. 2021.
Access to this content is available to Ward's World readers for free
from McGraw Hill's AccessScience, an award-winning, digital STEM
resource that provides immediate, authoritative answers to students' thirst
for scientific knowledge on topics such as climate change, virology,
pollution, and more. Ward's World and McGraw Hill have partnered to
offer educators a no-obligation, free trial subscription to this product.
Request your free trial today and discover how valuable AccessScience
can be for you and your students.
The production of software through a
progression of disciplined and controlled
steps. As the need for complex, real-time,
and life-critical software proliferates, there is
a demand for an effective software develop-
ment process that guarantees the correctness
and quality of the software produced. To meet
this challenge, the computer science commu-
nity has developed a process called software
engineering that aims to build software that
meets all the specifications for its intended
use. The term engineering refers to software
being produced with the objective of deliver-
ing a successful final product created with
as much integrity as a building or a road
built by a civil engineer. For this reason, it is
necessary that software engineers have a full
understanding of the intended design and
are certain of its correctness and reliability
of operation in a specific operating environ-
ment. In other words, software engineers
should aim to develop the counterpart of the
civil engineer's blueprints to guarantee the
functionality, correctness, and behavior of the
+
ward
'
s
science
Key Concepts
• Software is typically produced through a progression of controlled steps, including requirements gathering, design,
coding, testing, debugging, deployment, and maintenance.
• An important component of software engineering is documentation of the final system, which substantiates the needs
of the system and describes how it operates.
• Software engineering tools include programming languages, Unified Modeling Language (UML), and Model-Driven
Architecture (MDA).
• Waterfall, Agile, and several other popular models exist for approaching the software development process, all of which
have as their goal a correctly working system that satisfies all user requirements and is easy to use and maintain.
Fig. 1: Software engineer reviewing code.