CS 1212 Lecture 3
CS 1212 Lecture 3
• In the beginning, when the SDLC was conceived, it implemented what is known as the
waterfall method.
• Waterfall is a sequential method of software development where the output of one phase is the
input for the next phase of the cycle.
• Development and work on the next phase start only after the completion of the previous phase.
• All planning, such as defining requirements and architectural design, is done up front, and
documentation is produced at every stage.
• Problems from the last phase are identified in the following phase, e.g., requirements problem
are identified during design, design problem identified during coding.
• The customer usually does not see the product until it is in the testing phase.
• For a major version release of the product, the same process is repeated resulting in long
intervals, such as years, between releases.
SOFTWARE DEVELOPMENT METHODOLOGY –
WATERFALL MODEL
SOFTWARE DEVELOPMENT METHODOLOGY –
STRENGHTS OF WATERFALL MODEL
• The V-shape model is named as such because the phases form the shape of a V.
• The phases going down the left side of the V are called “verification". Then, going up the
right side of the V, those phases are called, "validation.“
• The V-shape model is like waterfall in that it is also sequential. Each phase in verification
corresponds with a validation phase.
• There are four stages that occur on each side of the V. Going down the V are planning,
system design, architecture design, and then module design. The bottom of the V is
the coding phase. And going back up the V are four phases that correspond to the phases
going down the V:unit testing, integration testing, system testing, and acceptance testing.
• The tests are written during the verification phases on the left and executed during the
validation stages on the right.
SOFTWARE DEVELOPMENT METHODOLOGY –
V-SHAPED MODEL
SOFTWARE DEVELOPMENT METHODOLOGY –
ADVANTAGES OF V-SHAPED MODEL
• Agile model is different. It focuses on a collaborative software development process over multiple short
cycles rather than a strictly top-down linear process.
• Agile is what is called an iterative approach to development. It still aligns with the SDLC, but each phase is
short.
• Teams work in cycles, or sprints, which are usually one to four weeks long.
• Unit testing happens in each sprint to minimize the risk of failure.
• Rather than the “maintenance” stage of the SDLC, the final stage of the sprint is a feedback stage. At the end
of each sprint, a chunk of working code is released at a meeting called the “sprintdemo” where stakeholders
can see the new functionality and provide feedback.
• After the sprint demo, the entire process is repeated for every sprint cycle.
• After several sprint cycles, a minimum viable product, or MVP, is developed so stakeholders can provide
feedback on the basic feature set.
• The MVP contains a feature set to validate assumptions about the software.
SOFTWARE DEVELOPMENT METHODOLOGY –
AGILE MODEL
SOFTWARE DEVELOPMENT METHODOLOGY –
THE AGILE MANIFESTO
• The advantages of Agile Methodology are inherent in its 12 Principles, as outlined by the
Agile Alliance.
• The 12 Principles of the Agile Methodology are:
1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable
software. Customer satisfaction and quality deliverables are the focus.
2. Welcome changing requirements, even late in development. Agile processes harness change for the
customer’s competitive advantage. Don’t fight change, instead learn to take advantage of it.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a
preference to the shorter timescale. Continually provide results throughout a project, not just at its
culmination.
SOFTWARE DEVELOPMENT METHODOLOGY –
ADVANTAGES OF AGILE MODEL
5. Build projects around motivated individuals. Give them the environment and support they need and
trust them to get the job done. Bring talented and hardworking members to the team and get out of
their way.
6. The most efficient and effective method of conveying information to and within a development
team is face-to-face conversation. Eliminate as many opportunities for miscommunication as possible.
7. Working software is the primary measure of progress. It doesn’t need to be perfect; it needs to
work.
SOFTWARE DEVELOPMENT METHODOLOGY –
ADVANTAGES OF AGILE MODEL
9. Continuous attention to technical excellence and good design enhances agility. Don’t forget to pay
attention to the small stuff.
10. Simplicity—the art of maximizing the amount of work not done—is essential. Trim the fat.
11. The best architectures, requirements, and designs emerge from self-organizing teams. Related to
Principle 5, you’ll get the best work from your team if you let them figure out their own roles.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its
behaviour accordingly. Elicit and provide feedback, absorb the feedback, and adjust where needed.
SOFTWARE DEVELOPMENT METHODOLOGY –
DISADVANTAGES OF AGILE MODEL
• Scrum is one of the most straightforward and widely used Agile method. The main goal of Scrum
Methodology is to improve communication, teamwork and speed of development.
• It is a lightweight software development methodology that focuses on having small time-boxed sprints of
new functionality that are incorporated into an integrated product baseline.
• Scrum places an emphasis on transparent customer interaction, feedback and adjustments rather than
documentation and prediction.
• Instead of phases, Scrum projects are broken down into releases and sprints. At the end of each sprint, you
have a fully functioning system that could be released.
• With Scrum projects, the requirements for the project do not have to be codified up-front, instead they are
prioritized and scheduled for each sprint. The requirements are composed of user stories that can be
scheduled into a particular release and sprint
SOFTWARE DEVELOPMENT METHODOLOGY –
SCRUM AGILE METHODOLOGY
• Muri
• Rapid Application Development
(RAD)
• Adaptive Software Development
(ASD)
• Rational Unify Process (RUP)