Software Process Models

  • A software process model is a standardized format for planning, organizing and running a development project.
  • It is a description of the sequence of activity carried out in a SE project.
  • A software process model is a simplified representation of a software process.
  • Each process model follows a particular life cycle in order to ensure success in process of software development
  • Some methodologies are sometimes known as software development life cycle(SDLC)methodologies
  • Requirement gathering and analysis
  • Design
  • Implementation or coding
  • Testing
  •  Deployment
  •  Maintenance
  • Types of process model is Waterfall model, Prototype model, spiral model incremental model, iterative model, RAD model etc.

Types of Software Process Model


  • Waterfall model
  • Incremental model
  • Spiral model
  • Prototype model

 WATERFALL MODEL / LINEAR-SEQUENTIAL MODEL

  • The Waterfall Model was first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model because it illustrates the software development process in a linear sequential flow.
  • In a waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in the phases.
  • Waterfall model is the earliest SDLC approach that was used for software development. It is very simple to understand and use.
  • In "The Waterfall" approach, the whole process of software development is divided into separate phases. In Waterfall model, the outcome of one phase acts as the input for the next phase sequentially.
  • Following is a diagrammatic representation of different phases of waterfall model.


  • The sequential phases in Waterfall model are:
  • Requirement Gathering and analysis: All possible requirements of the system to be developed are captured in this phase and documented in requirement specification documentation.
  • System Design: The first phases are studied in this phase and system design is prepared.  System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture.
Implementation: With inputs from system design, the system is first developed in small
programs called units, which are integrated in the next phase.
o Each unit is developed and tested for its functionality, which is referred to as Unit
Testing.
Integration and Testing: All the units developed in the implementation phase are
integrated into a system after testing of each unit.
o Post (After) integration the entire system is tested for any faults and failures.
Deployment of system: Once the functional and non-functional testing is done, the
product is deployed in the customer environment or released into the market.
 Maintenance: There are some issues, which come up in the client environment.
o To fix those issues maintenance is done. Also to enhance the product some better
versions are released. Maintenance is done to deliver these changes in the customer
environment.
 When to use waterfall model
• Requirements are very well documented, clear and fixed.
• Product definition is stable (no change).
• Technology is understood and is not dynamic.
• There are no ambiguous requirements (no double meaning and confusion).
• Ample resources with required expertise are available to support the product.
• The project is short.

Advantages
• Simple and easy to understand and use.
• Easy to manage due to the rigidity (strictness) of the model. Each phase has specific
deliverables (output) and a review process.
• Phases are processed and completed one at a time.
• Works well for smaller projects where requirements are very well understood.
• Clearly defined stages.
• Well-understood milestones (objective or target).
• Easy to arrange tasks.
• Process and results are well document
 Disadvantages
• No working software is produced until late during the life cycle.
• High amounts of risk and uncertainty.
• Not a good model for complex and ongoing projects.
• It is difficult to measure progress within stages.
• Cannot accommodate changing requirements.
• Adjusting scope during the life cycle can end a project.


Prototype Model:-

working prototype of the system should be built.
 By using this prototype, the client can get an “actual feel” of the system, since the
interactions with prototype can enable the client to better understand the requirements of
the desired system.
 Prototype is a working model of software with some limited functionality.
 A prototype is a version of a system or part of the system that’s developed quickly to check
the customer’s requirements or feasibility of some design decisions.
 So, a prototype is useful when a customer or developer is not sure of the requirements,
efficiency, business rules, response time, etc.
Diagram of Prototype model:
prototype model

A Prototype model suggests that before carrying the development of the actual software, a

 A prototype is a toy implementation of the system.

Prototyping is an attractive idea for complicated and large systems for which there is no

manual process or existing system to help determining the requirements.

 In prototyping, the client is involved throughout the development process, which increases

the likelihood of client acceptance of the final implementation.



A software prototype can be used:


Prototype model should be used when the desired system needs to have a lot of
interaction with the end users.
• Typically, online systems, web interfaces have a very high amount of interaction with
end users, are best suited for Prototype model.
• Prototyping ensures that the end users constantly work with the system and provide a
feedback which is incorporated in the prototype to result in a useable system.
• They are excellent for designing good human computer interface systems.


Advantages of Prototype model:


• Customer can get quickly result.
• Users are actively involved in the development
• Testing is almost completed before build/development is completed.
• Errors can be detected much earlier.
• Quicker user feedback is available leading to better solutions.
• Missing functionality can be identified easily


Disadvantages of Prototype model:

• Time consuming and costly
• Insufficient requirement.
• Extra prototype is required.
• Leads to implementing and then repairing way of building systems.
• Practically, this methodology may increase the complexity of the system as scope of the
system may expand beyond original plans.


  Spiral Model:-

The spiral model is also known as spiral lifecycle model.

 This model of development combines the feature of the prototype and waterfall model

 A spiral model is divided into a number of framework activities, also called task Regions.

 Typically, there are six task regions. Software project repeatedly passes though these phases

in iterations called spiral.

 Diagram of spiral model that contains six task regions:




1) Customer communication:

• In this tasks required to establish effective communication between developer and

customer.

2) Planning:

• In this tasks required defining resources, timelines, and other project related

information.

• Requirements are studied and gathered

• Review and walkthroughs to streamline the requirements.

• Finalize the list of documents.

• The project is review and a decision made whether to continue with a further loop of

the spiral.

• If it is decided to continue, plans are drawn up for the next phase of the project.

3) Risk analysis

• In this tasks required to assess both technical and management risks.

• In the risk analysis phase a process is undertaken to identify risk and alternate

solutions.

• A prototype is produced at the end of the risk analysis phase.

• If any risk is found during the risk analysis then alternate solutions are suggested

and implemented.


4) Engineering

• In this phase software is developed, along with testing at the end of the phase.

• Actual development and testing is done if the software takes place in this phase.

• It include coding, test case and test results, test summary report

5) Construction and release

• It is requires to construct, test, install, and provide user support (e.g., documentation

and training).

6)Customer evaluation

• Customers evaluate the software and provide their feedback and approval.

• Features implemented document

 When to use Spiral model:

• When the project is large.

• Where software needs continuous risk evaluation.

• When costs and risk evaluation is important.

• For medium to high-risk projects

• Users are unsure of their needs

• Requirements are complex and require continuous classification.

• New product line.

 Advantages of Spiral model:

• Risk evaluation is proper.

• High amount of risk analysis hence, avoidance of Risk is enhanced.

• Good for large and critical projects.

• Strong approval and documentation control.

• More and more features are added in a systematic way.

• Software is produced early in the software life cycle.

 Disadvantages of Spiral model:

• It is costly for small model.

• Risk analysis is important phase so requires expert people.

• Project’s success is highly dependent on the risk analysis phase.

• Spiral may go infinitely.

• It is suitable for larger project and not beneficial for smaller projects.



 Incremental model :-

In incremental model the whole requirement is divided into various builds.

 Each module passes through the requirements, design, implementation and testing phases

 Diagram of Incremental model:

Incremental model



Incremental model is a method of software development where the product is designed,

implemented and tested incrementally until the product is finished.

 Each subsequent release of the module adds function to the previous release. The process

continues till the complete system is achieved.

 When we work incrementally we are adding piece by piece but expect that each piece is

fully finished. Thus keep on adding the pieces until it’s complete.

 When to use the Incremental model:

• This model can be used when the requirements of the complete system are clearly

defined and understood.

• Major requirements must be defined; however, some details can evolve with time.

• There is a need to get a product to the market early.

• A new technology is being used

 Advantages of Incremental model:

• Generates working software quickly and early during the software life cycle.

• This model is more flexible – less costly to change scope and requirements.

• It is easier to test and debug during a smaller iteration.

• In this model customer can respond to each built.

• Lowers initial delivery cost.

• Easier to manage risk because risky pieces are identified and handled during it’s

iteration.


Disadvantages of Incremental model:

• Needs good planning and design.

• Needs a clear and complete definition of the whole system before it can be broken

down and built incrementally.

• Total cost is higher than waterfall.

• There are some high-risk features and goals.


Post a Comment

If you have any doubts, Please let me know
Thanks!

Previous Post Next Post