Software Development Process Models

Introduction

  • In software development life cycle, various models are designed and defined. These models are called as Software Development Process Models.
  • On the basis of project motive, the software development process model is selected for development.
Following are the different software development process models:

1) Big-Bang model
2) Code-and-fix model
3) Waterfall model
4) V model
5) Incremental model
6) RAD model
7) Agile model
8) Iterative model
9) Spiral model
10) Prototype model

1) Big-Bang Model

  • Big-Bang is the SDLC(Software Development Life cycle) model in which no particular process is followed.
  • Generally this model is used for small projects in which the development teams are small. It is specially useful in academic projects.
  • This model is needs a little planning and does not follow formal development.
  • The development of this model begins with the required money and efforts as an input.
  • The output of this model is developed software, that may or may not be according to the requirements of the customer.
big bang bodel

Advantages of Big-Bang model
  • Big-Bang model is a simple model.
  • It needs little planning.
  • It is simple to manage. It needs just a few resources to be developed.
  • It is useful for students and new comers.
Disadvantages of Big-Bang model
  • It is a very high risk model.
  • This model is not suitable for object oriented and complex projects.
  • Big-Bang is poor model for lengthy and in-progress projects.

2) Code-and-fix Model

flow code and fix model

  • Code and fix model is one step ahead from the Big-Bang model. It identifies the product that must be tested before release.
  • The testing team find the bugs then sends the software back for fixing. To deliver the fixes developers complete some coding and send the software again for testing. This process is repeated till the bugs are found in it, at an acceptable level.
code fix model
                                                                             
Advantages of Code-and-fix model
  • This model is suitable for small projects.
  • It needs less project planning.
Disadvantages of Code-and-fix model
  • It is difficult to accommodate changes.
  • It is not clear what will be delivered and when.
  • It is difficult to assess quality.

3) Waterfall Model

  • The waterfall model is the classic model or oldest model and is known as mother of all the model. It is widely used in government projects and many vital projects in company.
  • The waterfall model is also called as 'Linear sequential model' or 'Classic life cycle model'.
  • In this model, each phase is executed completely before the beginning of the next phase. Hence the phases do not overlap in waterfall model.
  • This model is used for small projects.
  • In this model, feedback is taken after each phase to ensure that the project is on the right path.
  • Testing part starts only after the development is completed.
waterfall model

Following are the phases in waterfall model:

i) Communication
The software development starts with the communication between customer and developer.

ii) Planning
It consists of complete estimation, scheduling for project development.

iii) Modeling
  • Modeling consists of complete requirement analysis and the design of the project i.e algorithm, flowchart etc.
  • The algorithm is the step-by-step solution of the problem and the flow chart shows a complete flow diagram of a program.
iv) Construction
  • Construction consists of code generation and the testing part.
  • Coding part implements the design details using an appropriate programming language.
  • Testing is to check whether the flow of coding is correct or not.
  • Testing also checks that the program provides desired output.
v) Deployment
  • Deployment step consists of delivering the product to the customer and taking feedback from them.
  • If the customer wants some corrections or demands for the additional capabilities, then the change is required for improvement in the quality of the software.
Advantages of Waterfall model
  • The waterfall model is simple and easy to understand, to implement, and use.
  • All the requirements are known at the beginning of the project, hence it is easy to manage.
  • It avoids overlapping of phases because each phase is completed at once.
  • This model works for small projects where the requirements are easily understood.
  • This model is preferred for those projects where the quality is more important as compared to the cost of the project.
Disadvantages of the Waterfall model
  • This model is not good for complex and object oriented projects.
  • In this model, the changes are not permitted so it is not fit for moderate to high risk changes in project.
  • It is a poor model for long duration projects.
  • The problems with this model are uncovered, until the software testing.
  • The amount of risk is high.

4) V Model

  • V model is known as Verification and Validation model.
  • This model is an extension of the waterfall model.
  • In the life cycle of V-shaped model, processes are executed sequentially.
  • Every phase completes its execution before the execution of next phase begins.
v model

Following are the phases of V-model:

i) Requirements
  • The requirements of product are understood from the customers point of view to know their exact requirement and expectation.
  • The acceptance test design planning is completed at requirement stage because, business requirements are used as an input for acceptance testing.
ii) System Design
  • In system design, high level design of the software is constructed.
  • In this phase, we study how the requirements are implemented their technical use.
iii) Architecture design
  • In architecture design, software architecture is created on the basis of high level design.
  • The module relationship and dependencies of module, architectural diagrams, database tables, technology details are completed in this phase.
iv) Module design
  • In module phase, we separately design every module or the software components.
  • Finalize all the methods, classes, interfaces, data types etc.
  • Unit tests are designed in module design phase based on the internal module designs.
  • Unit tests are the vital part of any development process. They help to remove the maximum faults and errors at an early stage.
v) Coding Phase
  • The actual code design of module designed in the design phase is grabbed in the coding phase.
  • On the basis of system and architecture requirements, we decide the best suitable programming language.
  • The coding is executed on the basis of coding guidelines and standards.
Advantages of V-model
  • V-model is easy and simple to use.
  • Many testing activities i.e planning, test design are executed in the starting, it saves more time.
  • Calculation of errors is done at the starting of the project hence, less chances of error occurred at final phase of testing.
  • This model is suitable for small projects where the requirements are easily understood.
Disadvantages of V-model
  • V-model is not suitable for large and composite projects.
  • If the requirements are not constant then this model is not acceptable.
Difference between the Verification and Validation

VerificationValidation
Verification is the process to find whether the software meets the specified requirements for particular phase.The validation process checks whether the software meets requirements and expectations of the customer.
It evaluates an intermediate product.It evaluates the final product.
The objective of verification is to check whether software is constructed according to requirement and design specification.The objective of validation is to check whether the specifications are correct and satisfy the business need.
It describes whether the outputs are as per the inputs or not.It explains whether outputs are accepted by the user or not.
Verification is completed before the validation.It is completed after the verification.
Plans, requirement, specification, code are evaluated in the verifications.Actual product or software is tested under validation.

5) Incremental Model

  • The incremental model combines the elements of waterfall model and they are applied in an iterative fashion.
  • The first increment in this model is generally a core product.
  • Each increment builds the product and submits it to the customer for suggesting any modifications.
  • The next increment implements the customer's suggestions and add additional requirements in the previous increment.
  • This process is repeated until the product is completed.
    For example, the word-processing software is developed using the incremental model.
incremental process

Following are the phases of Incremental model:

i) Communication
The software development starts with the communication between customer and developer.

ii) Planning
It consists of complete estimation, scheduling for project development.

iii) Modeling
  • Modeling consists of complete requirement analysis and the design of the project like algorithm, flowchart etc.
  • The algorithm is a step-by-step solution of the problem and the flow chart shows a complete flow diagram of a program.
iv) Construction
  • Construction consists of code generation and the testing part.
  • Coding part implements the design details using an appropriate programming language.
  • Testing is to check whether the flow of coding is correct or not.
  • Testing also checks that the program provides desired output.
v) Deployment
  • Deployment step consists of delivering the product to the customer and taking feedback from them.
  • If the customer wants some corrections or demands for the additional capabilities, then the change is required for improvement in the quality of the software.
Advantages of Incremental model
  • This model is flexible because the cost of development is low and initial product delivery is faster.
  • It is easier to test and debug in the smaller iteration.
  • The working software is generated quickly in the software life cycle.
  • The customers can respond to its functionalities after every increment.
Disadvantages of the incremental model
  • The cost of the final product may cross the cost initially estimated.
  • This model requires a very clear and complete planning.
  • The planning of design is required before the whole system is broken into smaller increments.
  • The demands of customer for the additional functionalities after every increment causes problem in the system architecture.