You are on page 1of 37

SOFTWARE

DEVELOPMENT
METHODOLOGIE
S
Lecture by: Salome Maro
11th Nov 2021
RECAP: SDLC
Planning

Implementatio
Analysis
n

Design
RECAP: SDLC
Process Product
Project Plan
Planning

System Proposal
Analysis

System
Design
Specification

New System and


Implementation
Maintenance
Plan
WHAT ABOUT THE
PROCESS?

Systems Development methodologies


SYSTEM DEVELOPMENT
METHODOLOGIES
Are formalized approaches with series of steps to
implement SDLC.
 SDLC models have been created by software development
experts, universities, and standards organizations to
solve some repeated issue or to enhance other models.
 Each process model follows series of steps unique to its
type, in order to ensure success in process of software
development.
WHY DO WE NEED SDLC
METHODOLOGIES?
 Writing code without a well-thought-out system request may
work for small programs, but rarely works for large ones.
 Effective Project Planning
 Use of standardized terminologies, activities and deliverables.
 Need to have a good design from the requirements before
moving on to implementation.
 Proper Documentation
 Align project progress visibility with stakeholders.
WHY YOU NEED TO CHOOSE THE
RIGHT SDLC METHODOLOGY?
 Improve customer alignment and relations
 Development Speed (time to market)
 Increase projects success rate
 Improve software quality
 Eliminating management overhead
 Decrease implementation risk
HOW TO SELECT THE
RIGHT SDLC
METHODOLOGY?
Selecting the right SDLC is a process in itself that

organization can implement internally or consult external
expert.
 These are some steps to get the right selection:

Learn about Assess the


Define the
SDLC needs of
criteria
Models stakeholders
SYSTEMS DEVELOPMENT
METHODOLOGIES
Structured Design
 Waterfall Development
 Parallel Development

Rapid Application Development (RAD)


 Phased Development
 Prototyping

Agile Development
 Scrum
 Extreme Programming
STRUCTURED DESIGN
 Projects move methodically from one to the next step

 Generally, a step is finished before the next one begins


TRADITIONAL WATERFALL SDLC

One phase begins


when another
completes, little
backtracking and
looping
PROS OF WATERFALL SDLC
 Identifies systems requirements long before programming begins
 The process phases distinction is clear
PROBLEMS WITH
WATERFALL APPROACH
 System requirements “locked in” after being determined (can't
change)
 Limited user involvement (only in requirements phase)
 Too much focus on milestone deadlines of SDLC phases that
affect sound development practices
 Long time between system proposal and delivery of new
system
PARALLEL
DEVELOPMENT
PROS OF PARALLEL
DEVELOPMENT
 Reduce time to deliver the system
CONS OF PARALLEL
DEVELOPMENT
 Subprojects may not be completely independent
 integration may be complicated

 Also difficult to create the sub-projects


RAPID APPLICATION DEVELOPMENT
(RAD)
RAD: is a collection of methodologies that emerged in
response to the weaknesses of waterfall development and
its variations.
 Methodology to decrease design and implementation time
 Involves: prototyping, JAD, CASE tools, and code generators
RAPID APPLICATION DEVELOPMENT
CATEGORIES
 Phased development
o A series of versions

 Prototyping
o System prototyping

 Throw-away prototyping
o Design prototyping
PHASED DEVELOPMENT
PROTOTYPING
THROWAWAY
PROTOTYPING
ADVANTAGES OF RAD
• Reduced development time.
• Increases reusability of components
• Encourages customer feedback
DISADVANTAGES OF RAD
MODEL
• Depends on strong team and individual performances for
identifying business requirements.
• Only system that can be modularized can be built using RAD
• Requires highly skilled developers/designers.
• Inapplicable to cheaper projects as cost of modeling and
automated code generation is very high.
AGILE METHODOLOGIES
 Motivated by recognition of software development as fluid, unpredictable,
and dynamic.
 Three key principles
o Adaptive rather than predictive
o Emphasize people rather than roles
o Self-adaptive processes

 People and interactions are emphasized rather than process and tools.
Customers, developers and testers constantly interact with each other.
However, There is lack of emphasis on necessary designing and
documentation.
THE AGILE MANIFESTO
 Individuals and interactions over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan

Source: https://agilemanifesto.org

To do: check out the 12 principles of Agile (


https://agilemanifesto.org/principles.html)
AGILE METHODOLOGIES:
SCRUM
 Scrum is a framework within which people can address complex
adaptive problems, while productively and creatively delivering products
of the highest possible value.

Source: https://www.scrum.org/
AGILE METHODOLOGIES:
SCRUM
AGILE METHODOLOGIES:
EXTREME PROGRAMMING
• Short, incremental development cycles
• Automated tests
• Pair programming (2 developers programming teams)
• Coding and testing operate together

Advantages
• Communication between developers
• High level of productivity
• High-quality code
EXTREME
PROGRAMMING
Disadvantages:
• XP is geared toward a single project, developed and
maintained by a single team.
• XP is particularly vulnerable to "bad apple" developers who
are not willing to share their "superior” code
• XP will not work in an environment where a customer or
manager insists on a complete specification or design before
they begin programming.
• XP will not work in an environment where programmers are
separated geographically.
CLASS ACTIVITY: MENTI
SLIDE
 Assume you are a group of 6 students given a project to implement a
campus map application for the university of Dar es salaam, which
methodology would you use?
 Waterfal
 RAD
 Agile
CLASS ACTIVITY: MENTI
SLIDE
 Assume you are a group of 6 students given a project to implement a
campus map application for the university of Dar es salaam in 8 weeks,
which methodology would you use?
 Waterfal
 RAD
 Agile
CLASS ACTIVITY: MENTI
SLIDE
 Assume you are a group of 6 students given a project to implement a
machine to detect the COVID-19 virus in elderly patients. What
methodology would you NOT use?
 Waterfal
 RAD
 Agile
SELECTING THE APPROPRIATE
METHODOLOGY
 Clarity of User Requirements
 Familiarity with Technology
 System Complexity
 System Reliability
 Short Time Schedules
 Schedule Visibility
CRITERIA FOR SELECTING
A METHODOLOGY
QUESTIONS?
FORUM AWARDS

• Goodluck Madadi
• Jackson Kweyunga
• Elisha Massawe Best replies!
NEXT WEEK:
 Groups will formed randomly and automatically on LMS
 Look for your group and get to know each other

 Lecture: Project Identification and Feasibility analysis (Page 15 – 38 in the


course book)

You might also like