30
CHAPTER 2
Generic Software
Development Framework
Throughout this book a generic software development framework is utilized to iden-
tify and consider compelling software engineering propositions. Without this frame-
work, software engineering cannot be understood or expressed since it operates
within a project environment undertaking a software development objective. This sug-
gests that the practice of software engineering is
always
carried
out within a software
development project environment. It is not possible to discuss software engineering
without broaching the topics of software development or project management. This
implies that software engineering is closely related and integral to software project
management. However, because it represents a technical discipline, software engi-
neering must emphasize the
techniques employed to design, implement, and maintain
software products. Therefore, the discipline of software engineering must stress the
nature of this technical burden while accentuating its affiliation with software pro-
ject management or a larger system development project management framework.
Fundamentally, software engineering represents the supervisory function that bridges
the technical effort with the project management domain.
This chapter establishes the vernacular that will be
utilized to convey the prin-
ciples and practices that form a software engineering branch of knowledge. Several
dominant concepts are revealed and examined to initiate our investigation of soft-
ware engineering. These concepts address fundamental observations concerning
what is a software product, how software is fashioned in a project context, and how
some of the basic management
tools are utilized to organize, monitor, and keep a
software development project directed toward successful completion. It is impor-
tant to comprehend these concepts because the software engineering philosophy
and principles are dependent on this foundation and will be expressed utilizing this
lexicon.
Even the term
software
has a specific meaning that is similar to, but more
influential than, the term
product
. Therefore, every technical term or expression
used throughout this book
has a specific connotation, and the use of one term over
another designates a precise meaning.
The expression of a generic software development framework is predicated on
understanding the term
software
. Similar to the word
system
,
software
has been
overburdened with connotations to the point that its
value as a means to commu-
nicate has been lost. Therefore, the term
software
will be examined so that its use
throughout this material will be apparent. The software development framework is
discussed to provide a frame of reference within which software engineering tech-
niques and practices can be investigated. When
software development
is mentioned
it should invoke a project representation with several increments of time separated
by project milestones and reviews. Software development shares both a project and
a product creation connotation. The development of a software product must pro-
gress through several natural stages of evolution. The
software development pro-
cess involves a series of development stages through which the software product
progresses. These basic stages of software development are requirements, design,
implementation, and testing.
Development process
Project stages
Product stagesof developmen
→
→
tt