Page 50 -
P. 50
CHAPTER 2 THE PROCESS 21
FIGURE 2.1
Software Tools
engineering
layers
Methods
Process
A quality focus
development of increasingly more mature approaches to software engineering. The
bedrock that supports software engineering is a quality focus.
The foundation for software engineering is the process layer. Software engineer-
ing process is the glue that holds the technology layers together and enables rational
and timely development of computer software. Process defines a framework for a set
of key process areas (KPAs) [PAU93] that must be established for effective delivery of
software engineering technology. The key process areas form the basis for manage-
ment control of software projects and establish the context in which technical meth-
ods are applied, work products (models, documents, data, reports, forms, etc.) are
produced, milestones are established, quality is ensured, and change is properly man-
aged.
Software engineering methods provide the technical how-to's for building soft-
ware. Methods encompass a broad array of tasks that include requirements analy-
sis, design, program construction, testing, and support. Software engineering methods
Software engineering
encompasses a rely on a set of basic principles that govern each area of the technology and include
process, management modeling activities and other descriptive techniques.
and technical methods, Software engineering tools provide automated or semi-automated support for the
and tools. process and the methods. When tools are integrated so that information created by
one tool can be used by another, a system for the support of software development,
called computer-aided software engineering, is established. CASE combines software,
hardware, and a software engineering database (a repository containing important
information about analysis, design, program construction, and testing) to create a
software engineering environment analogous to CAD/CAE (computer-aided
design/engineering) for hardware.
2.1.2 A Generic View of Software Engineering
Engineering is the analysis, design, construction, verification, and management of
technical (or social) entities. Regardless of the entity to be engineered, the following
questions must be asked and answered:
• What is the problem to be solved?
• What characteristics of the entity are used to solve the problem?