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?
   45   46   47   48   49   50   51   52   53   54   55