Software
Development is a Layered Technology: Software development is
totally a layered technology. That means, to develop software one will have to
go from one layer to another. The layers are related and each layer demands the
fulfillment of the previous layer. Figure below is the upward flowchart of the
layers of software development.
01. A Quality Focus: Software engineering must rest on an organizational commitment to
quality. Total quality management and similar philosophies foster a continuous
process improvement culture, and this culture ultimately leads to the development
of increasingly more mature approaches to software engineering. The bedrock
that supports software engineering is a quality focus.
02. Process: The foundation for software engineering is the process
layer. Process defines a framework for a set of Key Process Areas (KPAs)
that must be established for effective delivery of software engineering
technology. This establishes the context in which technical methods are
applied, work products such as models, documents, data, reports, forms, etc.
are produced, milestones are established, quality is ensured, and change is
properly managed.
03. Methods: Software engineering methods provide the
technical how-to's for building software. Methods will include requirements
analysis, design, program construction, testing, and support. This relies on a
set of basic principles that govern each area of the technology and include modeling
activities and other descriptive techniques.
Describe the KPAS.