Page 73 -
P. 73

44            PART ONE  THE PRODUCT AND THE PROCESS


                       therefore enable the software engineer to discover and correct errors that might
                       go undetected.
                          Although it is not destined to become a mainstream approach, the formal meth-
                       ods model offers the promise of defect-free software. Yet, the following concerns
                       about its applicability in a business environment have been voiced:
                        1.  The development of formal models is currently quite time consuming and
                            expensive.
                        2.  Because few software developers have the necessary background to apply
                            formal methods, extensive training is required.
                        3.  It is difficult to use the models as a communication mechanism for techni-
                            cally unsophisticated customers.
                       These concerns notwithstanding, it is likely that the formal methods approach will
                       gain adherents among software developers who must build safety-critical software
                       (e.g., developers of aircraft avionics and medical devices) and among developers that
                       would suffer severe economic hardship should software errors occur.




                2.10   FOURTH GENERATION TECHNIQUES

                       The term fourth generation techniques (4GT) encompasses a broad array of soft-
                       ware tools that have one thing in common: each enables the software engineer
                       to specify some characteristic of software at a high level. The tool then automat-
                       ically generates source code based on the developer's specification. There is lit-
                       tle debate that the higher the level at which software can be specified to a machine,
                       the faster a program can be built. The 4GT paradigm for software engineering
                       focuses on the ability to specify software using specialized language forms or a
                       graphic notation that describes the problem to be solved in terms that the cus-
                       tomer can understand.
                          Currently, a software development environment that supports the 4GT paradigm
                       includes some or all of the following tools: nonprocedural languages for database
                       query, report generation, data manipulation, screen interaction and definition, code
                       generation; high-level graphics capability; spreadsheet capability, and automated
                       generation of HTML and similar languages used for Web-site creation using advanced
                       software tools. Initially, many of the tools noted previously were available only for
                       very specific application domains, but today 4GT environments have been extended
                       to address most software application categories.
                          Like other paradigms, 4GT begins with a requirements gathering step. Ideally, the
                       customer would describe requirements and these would be directly translated into
                       an operational prototype. But this is unworkable. The customer may be unsure of
                       what is required, may be ambiguous in specifying facts that are known, and may be
                       unable or unwilling to specify information in a manner that a 4GT tool can consume.
   68   69   70   71   72   73   74   75   76   77   78