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.
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.
Prototype Model:-
A Prototype model suggests that before carrying the development of the actual software, a
working prototype of the system should be built.
A prototype is a toy implementation of the system.
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.
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.
Diagram of Prototype model:
A software prototype can be used:
Advantages of Prototype model:
Disadvantages of Prototype model:
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 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.
nice informative post. Thanks you for sharing.
ReplyDeleteWe are an experienced team in one of the Best software company and product specialist for software development and implementation.
Agile Development
Post a Comment
If you have any doubts, Please let me know
Thanks!