X

Join Our WhatsApp Group to get latest updates

Join Now

Software Development Life Cycles Models

 Software Development Life Cycles Models: 

  • 2.1 Build and fix model 
  • 2.2 The waterfall model 
  • 2.3 Prototyping model 
  • 2.4 Iterative enhancement model 
  • 2.5 Spiral model 
  • 2.6 Rapid application development model (RAD) 
  • 2.7 Selection criteria of a lifecycle model

SDLC is a process that defines the various stages involved in the development of software for delivering a high quality product. SDLC stages cover the complete life cycle of a software i.e. from inception to retirement of the product.

SDLC Cycle 
SDLC Cycle represents the process of developing software.




SDLC Phases  
Given below are the various phases:  
  1. Requirement gathering and analysis  
  2. Design  
  3. Implementation or coding  
  4. Testing  
  5. Deployment  
  6. Maintenance

1) Requirement Gathering and Analysis :- 
During this phase, all the relevant information is collected from the customer to develop a product as per their expectation. Any ambiguities must be resolved in this phase only. 

2) Design :-
In this phase, the requirement gathered in the SRS document is used as an input and software architecture that is used for implementing system development is derived. 

3) Implementation or Coding :- 
Implementation/Coding starts once the developer gets the Design document. The Software design is translated into source code. All the components of the software are implemented in this phase.

4) Testing :-
Testing starts once the coding is complete and the modules are released for testing. In this phase, the developed software is tested thoroughly and any defects found are assigned to developers to get them fixed.  

5) Deployment :- 
Once the product is tested, it is deployed in the production environment or first UAT (User Acceptance testing) is done depending on the customer expectation. 

6) Maintenance :- 
After the deployment of a product on the production environment, maintenance of the product i.e. if any issue comes up and needs to be fixed or any enhancement is to be done is taken care by the developers.

Software Development Life Cycle Models 

A software life cycle model is a descriptive representation of the software development cycle. SDLC models might have a different approach but the basic phases and activity remain the same for all the models.



Build and fix model

In the build and fix model (also referred to as an ad hoc model), the software is developed without any specification or design. An initial product is built, which is then repeatedly modified until it (software) satisfies the user. That is, the software is developed and delivered to the user. The user checks whether the desired functions ‘are present. If not, then the software is changed according to the needs by adding, modifying or deleting functions. This process goes on until the user feels that the software can be used productively. However, the lack of design requirements and repeated modifications result in loss of acceptability of software. Thus, software engineers are strongly discouraged from using this development approach.



  • This model includes the following two phases.  
  • Build: In this phase, the software code is developed and passed on to the next phase.  
  • Fix: In this phase, the code developed in the build phase is made error free. Also, in addition to the corrections to the code, the code is modified according to the user’s requirements.

Advantages and Disadvantages of Build and Fix Model

Advantages and Disadvantages of Build and Fix Model Ctevt

Waterfall Model 

  • Waterfall model is the very first model that is used in SDLC. It is also known as the linear sequential model.  
  • In this model, the outcome of one phase is the input for the next phase. Development of the next phase starts only when the previous phase is complete.  
  • First, Requirement gathering and analysis is done. Once the requirement is freeze then only the System Design can start. Herein, the SRS document created is the output for the Requirement phase and it acts as an input for the System Design.  
  • In System Design Software architecture and Design, documents which act as an input for the next phase are created i.e. Implementation and coding.  
  • In the Implementation phase, coding is done and the software developed is the input for the next phase i.e. testing.  
  • In the testing phase, the developed code is tested thoroughly to detect the defects in the software. Defects are logged into the defect tracking tool and are retested once fixed. Bug logging, Retest, Regression testing goes on until the time the software is in go-live state.  
  • In the Deployment phase, the developed code is moved into production after the sign off is given by the customer.  
  • Any issues in the production environment are resolved by the developers which come under maintenance.

Waterfall Model www.ctevtnote.com


Advantages of the Waterfall Model:
  • Waterfall model is the simple model which can be easily understood and is the one in which all the phases are done step by step. 
  • Deliverables of each phase are well defined, and this leads to no complexity and makes the project easily manageable.
Disadvantages of Waterfall model:
  • Waterfall model is time-consuming & cannot be used in the short duration projects as in this model a new phase cannot be started until the ongoing phase is completed.  
  • Waterfall model cannot be used for the projects which have uncertain requirement or wherein the requirement keeps on changing as this model expects the requirement to be clear in the requirement gathering and analysis phase itself and any change in the later stages would lead to cost higher as the changes would be required in all the phases.
Prototype Model
  • The prototype model is a model in which the prototype is developed prior to the actual software.
  • Prototype models have limited functional capabilities and inefficient performance when compared to the actual software. Dummy functions are used to create prototypes. This is a valuable mechanism for understanding the customers’ needs. 
  • Software prototypes are built prior to the actual software to get valuable feedback from the customer. Feedbacks are implemented and the prototype is again reviewed by the customer for any change. This process goes on until the model is accepted by the customer.
Prototype Model www.ctevtnote.com

  • Once the requirement gathering is done, the quick design is created and the prototype which is presented to the customer for evaluation is built. 
  • Customer feedback and the refined requirement is used to modify the prototype and is again presented to the customer for evaluation. Once the customer approves the prototype, it is used as a requirement for building the actual software. The actual software is build using the Waterfall model approach.
Advantages of Prototype Model:

Prototype model reduces the cost and time of development as the defects are found much earlier.  Missing feature or functionality or a change in requirement can be identified in the evaluation phase and can be implemented in the refined prototype.  Involvement of a customer from the initial stage reduces any confusion in the requirement or understanding of any functionality. 

Disadvantages of Prototype Model:

Since the customer is involved in every phase, the customer can change the requirement of the end product which increases the complexity of the scope and may increase the delivery time of the product.


Spiral Model 
  • The Spiral Model includes iterative and prototype approach.  
  • Spiral model phases are followed in the iterations. The loops in the model represent the phase of the SDLC process i.e. the innermost loop is of requirement gathering & analysis which follows the Planning, Risk analysis, development, and evaluation. Next loop is Designing followed by Implementation & then testing. 

Spiral Model has four phases: 
  • Planning 
  • Risk Analysis  
  • Engineering  
  • Evaluation


Spiral Model has four phases www.ctevtnote.com


i) Planning: 
The planning phase includes requirement gathering wherein all the required information is gathered from the customer and is documented. Software requirement specification document is created for the next phase.  

(ii) Risk Analysis: In this phase, the best solution is selected for the risks involved and analysis is done by building the prototype.  

For Example, the risk involved in accessing the data from a remote database can be that the data access rate might be too slow. The risk can be resolved by building a prototype of the data access subsystem. 

(iii) Engineering:  Once the risk analysis is done, coding and testing are done.  (iv) Evaluation:  Customer evaluates the developed system and plans for the next iteration.


Advantages of Spiral Model:  
  • Risk Analysis is done extensively using the prototype models. 
  • Any enhancement or change in the functionality can be done in the next iteration.

 
Disadvantages of Spiral Model:  
  • The spiral model is best suited for large projects only.  
  • The cost can be high as it might take a large number of iterations which can lead to high time to reach the final product.


Iterative Incremental Model
The iterative incremental model divides the product into small chunks.

For Example, Feature to be developed in the iteration is decided and implemented. Each iteration goes through the phases namely Requirement Analysis, Designing, Coding, and Testing. Detailed planning is not required in iterations.  

Once the iteration is completed, a product is verified and is delivered to the customer for their evaluation and feedback. Customer’s feedback is implemented in the next iteration along with the newly added feature.  

Hence, the product increments in terms of features and once the iterations are completed the final build holds all the features of the product.

Phases of Iterative & Incremental Development Model: 
  • Inception phase  
  • Elaboration Phase 
  • Construction Phase  
  • Transition Phase

(i) Inception Phase:  Inception phase includes the requirement and scope of the Project. 

(ii) Elaboration Phase:  In the elaboration phase, the working architecture of a product is delivered which covers the risk identified in the inception phase and also fulfills the non-functional requirements.

(iii) Construction Phase: In the Construction phase, the architecture is filled in with the code which is ready to be deployed and is created through analysis, designing, implementation, and testing of the functional requirement.  

(iv) Transition Phase: In the Transition Phase, the product is deployed in the Production environment.


Advantages of Iterative & Incremental Model:  
  • Any change in the requirement can be easily done and would not cost as there is a scope of incorporating the new requirement in the next iteration.  
  • Risk is analyzed & identified in the iterations. 
  • Defects are detected at an early stage. 
  • As the product is divided into smaller chunks it is easy to manage the product.


Disadvantages of Iterative & Incremental Model:  
  • Complete requirement and understanding of a product are required to break down and build incrementally.


Rapid application development model (RAD) 

The rapid application development model emphasizes on delivering projects in small pieces. If the project is large, it is divided into a series of smaller projects. Each of these smaller projects is planned and delivered individually. Thus, with a series of smaller projects, the final project is delivered quickly and in a less structured manner. The major characteristic of the RAD model is that it focuses on the reuse of code, processes, templates, and tools.

Rapid application development model (RAD)  www.ctevtnote.com



The phases of RAD model are listed below.

Planning: In this phase, the tasks and activities are planned. The derivable produced from this phase are project definition, project management procedures, and a work plan. Project definition determines and describes the project to be developed. Project management procedure describes processes for managing issues, scope, risk, communication, quality, and so on. Work plan describes the activities required for completing the project. 

Analysis: The requirements are gathered at a high level instead of at the precise set of detailed requirements level. Incase the user changes the requirements, RAD allows changing these requirements over a period of time. This phase determines plans for testing, training and implementation processes. Generally, the RAD projects are small in size, due to which high-level strategy documents are avoided.

Prototyping: The requirements defined in the analysis phase are used to develop a prototype of the application. A final system is then developed with the help of the prototype. For this, it is essential to make decisions regarding technology and the tools required to develop the final system.

Repeat analysis and prototyping as necessary: When the prototype is developed, it is sent to the user for evaluating its functioning. After the modified requirements are available, the prototype is updated according to the new set of requirements and is again sent to the user for analysis. 

Conclusion of prototyping: As a prototype is an iterative process, the project manager and user agree on a fixed number of processes. Ideally, three iterations are considered. After the third iteration, additional tasks for developing the software are performed and then tested. Last of all, the tested software is implemented. 

Implementation: The developed software, which is fully functioning, is deployed at the user’s end.

Advantage and Disadvantage of RAD model

Advantage and Disadvantage of RAD model ctevtnote.com

Selection criteria of a lifecycle model

Selecting the right SDLC is a process in itself that the organization can implement internally or consult for. There are some steps to get the right selection. 


STEP 1: Learn the about SDLC Models 
SDLCs are the same in their usage. In order to select the right SDLC, you should have enough experience and be familiar with the SDLCs that will be chosen and understand them correctly. 

STEP 2: Assess the needs of Stakeholders 
We must study the business domain, stakeholders concerns and requirements, business priorities, our technical capability and ability, and technology constraints to be able to choose the right SDLC against their selection criteria. 

STEP 3: Define the criteria 
Some of the selection criteria or arguments that you may use to select an SDLC are: 

  • Is the SDLC suitable for the size of our team and their skills? 
  • Is the SDLC suitable for the selected technology we use for implementing the solution? 
  • Is the SDLC suitable for client and stakeholders concerns and priorities? 
  • Is the SDLC suitable for the geographical situation (distributed team)? 
  • Is the SDLC suitable for the size and complexity of our software? 
  • Is the SDLC suitable for the type of projects we do? 
  • Is the SDLC suitable for our software engineering capability? 
  • Is the SDLC suitable for the project risk and quality insurance? 

STEP 4: Decide 
When you define the criteria and the arguments you need to discuss with the team, you will need to have a decision matrix and give each criterion a defined weight and score for each option. After analyzing the results, you should document this decision in the project artifacts and share it with the related stakeholders. 


STEP 5: Optimize 
You can always optimize the SDLC during the project execution, you may notice upcoming changes do not fit with the selected SDLC, it is okay to align and cope with the changes. You can even make your own SDLC model which optimum for your organization or the type of projects you are involved in.


<<<< Chapter End >>>>




Post a Comment

Previous Post Next Post