Process Models
Process Models
BCA - 4003
Waterfall Model
• Winston Royce introduced the Waterfall Model in 1970.
• This model has five phases:
- Requirements analysis and specification
- Design
- Implementation & Unit testing
- Integration & System testing
- Operation & Maintenance
• The steps always follow in this order and do not overlap.
• The developer must complete every phase before the next
phase begins.
• This model is named "Waterfall Model", because its
diagrammatic representation resembles a cascade of
waterfalls.
Waterfall Model
1. Requirements analysis and specification phase:
• The aim of this phase is to understand the exact requirements of the customer and to document them
properly.
• Both the customer and the software developer work together so as to document all the functions,
performance, and interfacing requirement of the software.
• It describes the "what" of the system to be produced and not "how.“
• In this phase, a large document called Software Requirement Specification (SRS) document is created
which contained a detailed description of what the system will do in the common language.
2. Design Phase:
• This phase aims to transform the requirements gathered in the SRS into a suitable form which permits
further coding in a programming language. It defines the overall software architecture together with high
level and detailed design. All this work is documented as a Software Design Document (SDD).
3. Implementation and unit testing:
• During this phase, design is implemented. If the SDD is complete, the implementation or coding phase
proceeds smoothly, because all the information needed by software developers is contained in the SDD.
Waterfall Model
4. Integration and System Testing: This phase is highly crucial as the quality of the end product is
determined by the effectiveness of the testing carried out. The better output will lead to satisfied
customers, lower maintenance costs, and accurate results. Unit testing determines the efficiency of
individual modules. However, in this phase, the modules are tested for their interactions with each other
and with the system.
5. Operation and maintenance phase: Maintenance is the task performed by every user once the software
has been delivered to the customer, installed, and operational.
Advantage Disadvantage
• Errors are easy to be recognized. • Need for good planning
• Easier to test and debug • Total Cost is high.
• More flexible. • Well defined module interfaces are needed.
• Simple to manage risk because it handled
during its iteration.
• The Client gets important functionality early.
Agile Model
• The meaning of Agile is swift or versatile.
• "Agile process model" refers to a software
development approach based on iterative
development.
• Agile methods break tasks into smaller iterations, or
parts do not directly involve long term planning. The
project scope and requirements are laid down at the
beginning of the development process.
• Plans regarding the number of iterations, the duration
and the scope of each iteration are clearly defined in
advance.
• Each iteration is considered as a short time "frame" in
the Agile process model, which typically lasts from
one to four weeks.
Agile Model
The division of the entire project into smaller parts helps to minimize the project risk and to reduce
the overall project delivery time requirements. Each iteration involves a team working through a full
software development life cycle including planning, requirements analysis, design, coding, and
testing before a working product is demonstrated to the client.
1. Requirements gathering
2. Design the requirements
3. Construction/ iteration
4. Testing/ Quality assurance
5. Deployment
6. Feedback
Agile Model
1. Requirements gathering: In this phase, you must define the requirements. You should explain
business opportunities and plan the time and effort needed to build the project. Based on this
information, you can evaluate technical and economic feasibility.
2. Design the requirements: When you have identified the project, work with stakeholders to define
requirements. You can use the user flow diagram or the high-level UML diagram to show the work
of new features and show how it will apply to your existing system.
3. Construction/ iteration: When the team defines the requirements, the work begins. Designers and
developers start working on their project, which aims to deploy a working product. The product will
undergo various stages of improvement, so it includes simple, minimal functionality.
4. Testing: In this phase, the Quality Assurance team examines the product's performance and looks
for the bug.
5. Deployment: In this phase, the team issues a product for the user's work environment.
6. Feedback: After releasing the product, the last step is feedback. In this, the team receives feedback
about the product and works through the feedback.
When to use Agile Model ?
• When frequent changes are required.
• When a highly qualified and experienced team is available.
• When a customer is ready to have a meeting with a software team all the time.
• When project size is small.
Advantage Disadvantage
• Frequent Delivery • Due to the shortage of formal documents, it
• Face-to-Face Communication with clients. creates confusion and crucial decisions taken
throughout various phases can be
• Efficient design and fulfils the business misinterpreted at any time by different team
requirement. members.
• Anytime changes are acceptable. • Due to the lack of proper documentation,
• It reduces total development time. once the project completes and the
developers allotted to another project,
maintenance of the finished project can
become a difficulty.
References :
www.javatpoint.com