4gt PDF
4gt PDF
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, the tool then automatically generates source code
based on the developers specification.
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.
Currently, a software development environment that supports the 4GT paradigm includes some
or all of the following tools:
Like other paradigms, 4GT begins with a requirements gathering step, the customer would
describe requirements and these would be directly translated into an operational prototype.
Advantages
Simplified the programming process.
Use non-procedural languages that encourage users and programmers to specify
the results they want, while the computers determines the sequence of
instruction that will accomplish those results.
Use natural languages that impose no rigid grammatical rules.
Disadvantages
Less flexible that other languages
Programs written in 4GLs are generally far less efficient during program
execution that programs in high-level languages. Therefore, their use is limited
to projects that do not call for such efficiency.
Questionnaires
Questionnaires are a further method of information gathering where the
potential users of the system are given questionnaires to be filled up and
returned to the analyst.
Questionnaires are special purpose documents that allow the analyst to collect
information and opinions from respondents.
Questionnaires are defined by Dibb Base document for research purposes,
providing the question and structure for an interview or self completion and
providing space for respondents answers.
Marshall said Questionnaires can help you collect information about what
people do, what they have, what they think, know, feel or want. Using this
technique we gather facts about the existing system from number of persons.
Types of Questionnaires
1. Structured
In structured questionnaires, respondent needs to select from possible options for
answers and thus the range of answers is limited. Examples of structured questionnaires
are- multiple choice, selection or ranking scale, selection of a rating and fill in the blanks.
2. Unstructured
In such method, respondents are made to answer freely. Such questions are open
ended. An open ended questionnaire just includes a question and has a sufficient space
for an unstructured reply.
Advantages
Questionnaires are considered as an economical way of collecting facts from a
huge number of people.
If it is well formatted and designed, then the results can be easily analyzed and
computerized.
Respondents get time to think over the questions and provide more accurate
data.
Disadvantages
Good questionnaires are difficult to construct.
Disadvantages
This technique is too time-consuming and the analyst should not jump to conclusions or
draw assumption from minute samples of observation rather the analyst should be more
patient in gathering the information.
Abstraction
Refinement
Modularity
Software architecture or structural design
Control hierarchy or program module
Data structures
Software procedures
Information hiding
1.Abstraction
Abstraction let a designer to focus on solving a dilemma (problem) without
being concerned about immaterial (irrelevant) lower level details. In other words, abstraction is
closing the eyes (ignoring) to insignificant facts and focusing on key attributes.
Abstraction is the act of representing essential features without including
the background details or explanations. In the computer science and software engineering
domain, the abstraction principle is used to reduce complexity and allow efficient design and
implementation of complex software systems.
Types of abstraction:
1] Procedural abstraction
A procedural abstraction is a named sequence of instructions that has a
precise (exact) and limited function. An example of a procedural abstraction would be the word
open for a door. Open implies a long sequence of procedural steps (e.g., walk to the door, reach
out and grasp knob, turn knob and pull door, step away from moving door, etc..)
2] Data abstraction
A data abstraction is a named collection of data that describes a data object.
In the framework of the procedural open noted above, we can identify a data abstraction called
door. For example, the data object door includes a set of characteristics (door type, door
dimension) that depict the door object clearly. In this abstraction mechanism, representation
and manipulation details are ignored.
3] control abstraction
The third form of abstraction is the control abstraction. Like procedural and
data abstraction, control abstraction implies a program control mechanism without specifying
internal details.
2.Refinement
Its the course of elaboration (explanation) where the designer provides consecutively
(successively) more detail for each design component.
Stepwise refinement is a top-down design strategy originally proposed by Niklaus wirth.
A program is developed by successively refining levels of procedural detail.
LEVEL 1- SYSTEM representing the overall product to be built.
LEVEL 2 SUB-SYSTEMS representing the business processes associated with the
system (one or more).
LEVEL 3 PROCEDURES representing the work flow of each sub-system. There are
essential two types of procedures; Administrative representing procedures executed
by humans; and computer.
LEVEL 4 PROGRAMS representing the programs needed to execute each computer
procedure.
Under stepwise refinement the levels are decomposed top-down during the design process,
and implemented bottom-up; a common engineering/ manufacturing technique.
3. Modularity
A module is a named entity that:
Modularity is the scale (degree) to which software can be understood by examining its
components independently of one another.
Myer defines five criteria that permit us to assess a design method with
respect to its ability to define an effective modular system:
Expose the structure of the system but hide the implementation details.
Realize all of the use cases and scenarios.
Try to address the requirements of various stakeholders.
Handle both functional and quality requirements.
Horizontal partitioning
Vertical partitioning
Function 3
Function 1
Function 2
Worker
modules
Disadvantage
6. Data structure
Its the representation of the logical relationship among individual data
elements.
7. Software procedures
8. Information hiding
Information hiding is conceivably the most significant intellectual instrument developed to hold
software design. Modules should be designed as well as specified in such an approach that
information enclosed within one module is inaccessible to other modules that do not require
such information.
Function Independence
The concept of functional independence is a direct outgrowth of modularity and the
concepts of abstraction and information hiding.
Functional independence is achieved by developing modules with single-minded
function and an aversion to excessive interaction with other modules. Stated another
way, we want to design software so that each module addresses a specific sub-function
of requirements and has a simple interface, when viewed from other parts of the
program structure. It is fair to ask, why independence is important. Software with
effective modularity, that is, independent modules, is easier to develop because
functions may be compartmentalized and interfaces are simplified (consider the
ramifications when development is conducted by a team). Independent modules are
easier to maintain (and test) because secondary effects caused by design or code
modification are limited, error propagation is reduced, and reusable modules are
possible. To summarize, functional independence is a key to good design, and design is
the key to software quality.
Cohesion
Coupling