• No results found

Fourth Generation Techniques model

Unit 3 : Software Process Evolutionary Models

3.7 Fourth Generation Techniques model

The term 4GT is 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 4GT paradigm for software engineer focuses on the ability to specify software using specialized language forms or a graphic notation that describes the problems to be solved in terms that the customers can understand. The Fourth Generation Technique (4GT) is based on NPL that is the Non-Procedural Language techniques. Depending upon the specifications made, the 4GT approaches uses various tools for the automatic generation of source codes. It is the vital tool which uses the non-procedural language for Report generation, Database query, Manipulation of data, Interaction of screen, Definition, Generation of code, Spread Sheet capabilities, High level graphical capacity, etc.

Like any other models used, the 4GT approach requires the requirement analysis step. Once the requirement analysis is done upto the expectations, its translation into the operational prototype begins. The most important phase in the 4GT approach is the "customer developer approach", all the major

decisions regarding the implementations, costs and functioning of the system is taken in this phase. The Fourth Generation Technique (4GT) is usually successful in implementing smaller applications as we can easily switch from the requirement analysis phase to the implementation phase. Prototypes of any applications can be easily developed with the help of the 4GT approach. This prototype helps the clients to give a rough idea of how the system will look when it is done. The 4GT model is very useful approach in small projects but it is not a dominant approach for large software development. 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 designed software must be built in a manner that enables maintenance to be performed expeditiously.

For small applications, it may be possible to move directly from the requirement specification to implementation using a non-procedural fourth generation languages (4GL).

Advantages

 The use of 4GT has broadened considerably over the past decade and is now a viable approach for many different application areas.

 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.

Disadvantages

 Not much easier to use as compared to programming languages.

 The maintainability of large software systems built using 4GT is open to question.

3.8 Comparison of Software Process Models

Table 3.1

Strengths Weaknesses Types of Projects

Waterfall

•Simple

•Easy to execute

•Intuitive and logical

•All or nothing approach

•Requirements frozen early

•Disallows changes

•Cycle time too long

•May choose outdated hardware technology

•User feedback not allowed

•Encourages req. bloating

short duration

project, automation of existing manual systems

Prototyping

•Helps in requirements elicitation

•Reduces risk

•Leads to a better system

•Front heavy process

•Possibly higher cost

•Disallows later changes

Systems with novice users When

in requirements

When UI is very important

Iterative

•Regular/quick deliveries

•Reduces risk

•Accommodates changes

•Allows user feedback

•Allows reasonable exit points

•Avoids req. bloating

•Prioritizes requirements

•Each iteration can have planning overhead

•Cost may increase as work done in one iteration may

have to be undone later

• System architecture and structure may suffer as frequent changes are made

For businesses where time is of essence

Where risk of a long project cannot be taken Where requirements are not known and will be known only with time

3.9 Summary

Evolutionary Models take the concept of “evolution” into the engineering paradigm. Therefore Evolutionary Models are iterative. There is growing recognition that software, like all complex systems, evolves over a period of time.

The Incremental Model - The incremental model combines elements of the linear sequential model with the iterative philosophy of prototyping. The model is designed, implemented and tested incrementally that is, functionality is delivered in small increments and added till the product is completed.

The Spiral Model - Software is developed in a series of incremental releases. During initial iterations, the incremental release might be a paper model or prototype. The spiral model is a software development process which combines elements of design and prototyping, to unite advantages of top-down and bottom-up concepts. The spiral model is a realistic approach to the development of large scale systems and software.

The Component Assembly Model - This model incorporates many of the characteristics of the spiral model. It is evolutionary in nature, demanding an interactive approach to the creation of software. However, this model composes applications from prepackaged software components. This model leads to software reuse and reusability provides number of benefits to software engineers.

The Concurrent Development Model - The concurrent model is often more appropriate for system engineering projects where different engineering teams are involved. The concurrent process model defines a series of events that will trigger transitions from state to state for each of software engineering activities, actions or tasks. The concurrent process model is applicable to all types of software development and provides an accurate picture of the current state of a project.

The Formal Methods Model - This model encompasses a set of activities that lead to mathematical specification of computer software. Formal methods enable a software engineer to specify, develop, and verify a computer-based system by applying a rigorous, mathematical notation.

Fourth Generation Techniques model - The 4GT paradigm for software engineer focuses on the ability to specify software using specialized language forms or a graphic notation that describes the problems to be solved in terms that the customers can understand. The 4GT approach uses various tools for the automatic generation of source codes. It is the vital tool which uses the non-procedural language for Report generation, Database query, Manipulation of data, Interaction of screen, Definition, Generation of code, Spread Sheet capabilities, High level graphical capacity etc.

3.10 Self Assessment Questions

1. Explain various evolutionary software models.

2. Explain the advantages and disadvantages of spiral model. 3. What do you mean by fourth generation techniques ? 4. Explain formal methods model.

5. Compare various software process models.

3.11 References

 Roger, S. Pressman, “ Software Engineering-A Practitioner’s Approach”, Third Edition, McGraw Hill.

 R.E. Fairley, ‘Software Engineering Concepts”, McGraw Hill.