Software Engineering and its Paradigms (Models)
“Software Engineering” is an engineering branch which is associated only with the development of reliable software that works efficiently on machines. Software engineering proposes techniques which are systematic and cost-effective to software development. Every software is passed through number of phases in development process:
- Feasibility study
- Requirement analysis and specification
All of the above-stated phases combine to form a life cycle, which is called Software development life cycle (SDLC).
In this article, we will discuss about the various models and paradigm of Software Engineering.
Paradigms (Models) of Software Engineering
Software Engineering presents a variety of approaches for software development. These paradigms/approaches are also known as “software engineering models” or “software development models”.
Classical Waterfall Model
The classical waterfall model is the most obvious and also the theoretical model of developing software. This model provides a base to all the other models. That is why we need to understand and study this model first. The phases in this model resemble a cascade of waterfalls, that is why this model is called waterfall model. Software development process moves only in the forward direction using this approach.
Shortcomings of the Classical Waterfall Model:
- The classical waterfall model assumes that no error is done in any of the software development phases.
- Using this approach, the flow of the process cannot move in a backward direction. If any of the phases encounters any error in the deliverables provided from preceding phase, the developer cannot move backwards using this approach.
- This model states that all of the requirements should be stated beforehand which is not feasible.
Also Read: Importance Of Software Engineering.
In this approach, a blueprint or prototype is developed before the actual software development process. The prototype is developed after proper refinement of customer’s needs. The prototype progresses gradually by consulting customer wherever necessary. The actual process of software evolution proceeds when the prototype of software is approved by the customer. This model is useful in situations where technical illustrations are unclear to the development team. The procedure of a prototype model is shown via the following diagram. There are practically no shortcomings of using this approach.
The Evolutionary model is sometimes also referred to as the “incremental model”. Initially, a simple working model is developed using this approach. The functionality of this basic working model is incremented in stages until the desired system is finally developed. The main advantage of this model is that the customer can practically experiment with the partially developed software, which gives less probability of accounting errors in the developed software and more probability to build a reliable and efficient software. The evolutionary model is best suited for situations where size of the software is generally large so that you can divide the problem into modules. It is also best model for object-oriented software projects. In object-oriented software projects, the developer can easily divide the whole system into stand-alone units called objects. The following diagram defines the procedure of Evolutionary model.
Shortcomings of the Evolutionary Model:
- The evolutionary model cannot be used in small-sized software projects or in those software projects where the whole system cannot be divided into smaller different versions.
Spiral model states that all of the phases of software development process can undergo a number of loops. The exact number of loops can vary from project to project and is not fixed. In this model, each phase is divided into four sections. The first section determines the objective of phase; the second section identifies various solution of the problem, chooses the best possible solution, identifies risks related to those solutions and resolves those risks; the third section implements those solutions, finally the fourth section reviews preceding sections and plans for the next phase. Spiral model is good for the projects which are associated with risks. Various sections of each phase are diagrammatically shown below:
Shortcomings of Spiral model:
- This model is usually considered as a complex model by developers.
- This model requires expert staff to work for a software project.
- The range of this model is very less because this model is specially designed for risk-driven software projects and cannot be applied to every project.
So it was all about Software Engineering and its Paradigms (Models). If you have any problem then please comment below.