Fourth Generation Techniques
Fourth Generation Techniques
Fourth Generation Techniques
GENERATION
TECHNIQUES
introduction
• The term fourth generation techniques (4GT)
encompasses a broad array of software tools
that have one thing in common: each enables
the software engineer to specify some
characteristic of software at a high level.
introduction
• The tool then automatically generates source
code based on the developer's specification.
There is little debate that the higher the level
at which software can be specified to a
machine, the faster a program can be built.
introduction
• 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 customer can
understand
4GT TOOLS
• 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.
requirements gathering
• 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.
design
• For small applications, it may be possible to
move directly from the requirements
gathering step to implementation using a
nonprocedural fourth generation
language(4GL) or a model composed of a
network of graphical icons.
• However, for larger efforts, it is necessary to
develop a design strategy for the system, even
if a 4GL is to be used.
design
• The use of 4GT without design (for large
projects) will cause the same difficulties (poor
quality, poor maintainability, poor customer
acceptance) that have been encountered
when developing software using conventional
approaches.
implementation
• Implementation using a 4GL enables the
software developer to represent desired
results in a manner that leads to automatic
generation of code to create those results.
• Obviously, a data structure with relevant
information must exist and be readily
accessible by the 4GL.
implementation
• To transform a 4GT implementation into a
product, the developer must conduct
thorough testing, develop meaningful
documentation, and perform all other
solution integration activities that are
required in other software engineering
paradigms.
• In addition, the 4GT developed software must
be built in a manner that enables
maintenance to be performed expeditiously.
advantages and
disadvantages
• Proponents claim dramatic reduction in
software development time and greatly
improved productivity for people who build
software.
• Opponents claim that current 4GT tools are
not all that much easier to use than
programming languages.
• the resultant source code produced by such
tools is "inefficient," and that the
maintainability of large software systems
developed using 4GT is open to question
current state of 4GT
approaches
• The use of 4GT is a viable approach for many
different application areas. Coupled with
computer-aided software engineering tools
and code generators, 4GT offers a credible
solution to many software problems.
• Data collected from companies that use 4GT
indicate that the time required to produce
software is greatly reduced for small and
intermediate applications and that the
amount of design and analysis for small
applications is also reduced.
• However, the use of 4GT for large software
development efforts demands as much or
more analysis, design, and testing (software
engineering activities) to achieve substantial
time savings that result from the elimination
of coding.