COURSE: SOFTWARE PROCESSES
LAB TYPE: ANALYTICAL/ THEORETICAL
GROUP MEMBERS
1. Kuwunda Samundengu (group leader) -> 222074078
2. Tupopila Kadhila 223084433
3. Selma Mbangula 223076511
4. Natangwe Petrus 223006742
OBJECTIVE
To understand and compare different software process models by analyzing their features, advantages,
disadvantages, and use cases.
These are following software process models to be investigated
1. Waterfall Model
2. V-Model
3. Incremental Model
4. Iterative Model
5. Spiral Model
6. Agile Model (Scrum / XP)
7. RAD (Rapid Application Development)
8. DevOps Approach
PROCESS OVERVIEW
RAD(RAPID APPLICATION DEVELOPMENT)
Definition and overview
RAD is a software development methodology that emphasizes quick development, rapid prototyping and
user feedback early and continuously over long planning and testing cycles.
KEY PHASES
1. Requirement Planning:
Stakeholders and developers agree on the business needs through different techniques such as
brainstorming, task analysis and user scenarios. This aids in creating a structured plan describing crucial
data and the methods needed to process it.
2. User Design:
Build initial prototypes and refine with user feedback. This is an iterative process and allows for continuous
improvement and validation.
3. Construction:
Develop the application using feedback from the prototype.
4. Cutover (Development):
Final phase of the process, including testing the independent components of the product, acceptance
testing of the product by the user and deployment.
Visual representation of the Rapid Application Development (RAD)
ADVANTAGES
1. Speedy Development
RAD prioritizes rapid prototyping and iterations to produce a working system as soon as possible.
2. Adaptability and Flexibility
The model allows for quick adaptation to changing requirements and user input
3. Stakeholder Participation
Active participation from end users and stakeholders throughout the development cycle allows for faster
and more accurate product that increases the likelihood of stakeholder satisfaction
4. Improved Quality via Prototyping
Early testing and visualization of system components help in identifying issues and confirming design and
functionality choices.
DISADVANTAGES
1. Very Demanding
Requires a lot of collaboration across different disciplinary teams (design team, development team, quality
assurance team)
2. Less scalable
Prototyping and continuous testing work well for small and medium projects but may not be suitable for
large-scale projects and may become cumbersome.
3. Dependent on skilled resources
Frequent changes and iterations require a skilled technical team to be able to address and make
improvements upon the project after each change or iteration.
Best-suited project types
1. Projects with tight deadlines
2. Projects that need frequent user input
3. Projects with quickly changing requirements
Examples include:
1. Business reporting tools
· Tools used by managers and employees in higher levels of management
· Needs to be understood by internal users
· Requirements may change quickly business policies evolve
2. MVPs (Minimum Viable Products)
· Requirements are not 100% clear yet.
· Needs quick validation of business ideas
· Frequent iteration based on user feedback
3. Marketing Campaign web applications
· Tight deadlines (must go live before campaigns end)
· Small, focused functionality
· User feedback can guide tweaks and changes during the campaign
DEVOPS APPROACH
Definition and Overview
DevOps is a set of practices that combines both software development and IT operations to shorten the
software development lifecycle and deliver high-quality software quickly, reliably and continuously.
Key phases
1. Continuous Planning
Collaborative planning among development, operations, QA, and business teams to define goals,
timelines, and responsibilities.
2. Continuous Integration (CI)
Merging code changes frequently into a shared repository, where automated tests verify the
changes immediately.
3. Continuous Testing
Automated testing of code throughout the development cycle to catch bugs early and ensure
quality.
4. Continuous Delivery
Automatically preparing code changes for release to production, ensuring it's always in a deployable
state.
5. Continuous Deployment (CD)
Automatically releasing every change that passes all stages of your production pipeline into
production without manual intervention.
6. Continuous Monitoring
Tracking performance, errors, and system health in real time to identify issues quickly and ensure
system reliability.
7. Continuous Feedback
Gathering input from users, system metrics, and teams to continuously improve the product and the
development process.
Visual representation of the DevOps
ADVANTAGES
1. Faster delivery of features and updates
2. More reliable releases
3. Improved collaboration
4. Early detection of bugs or issues
5. Scalable and repeatable processes
DISADVANTAGES
1. Cultural Resistance
Shifting from siloed teams to a collaborative culture can face resistance.
Developers, testers, and operations may not easily embrace shared responsibilities.
2. Skill Gaps
DevOps requires a mix of skills (coding, automation, CI/CD, cloud, etc.).
Organizations may struggle to find or train talent with the right skill set.
3. Toolchain Complexity
Managing and integrating multiple tools (Jenkins, Docker, Kubernetes, etc.) can get overwhelming.
Choosing the right tools for the job requires expertise.
4. Automation Issues
Not everything can or should be automated.
Poorly implemented automation can introduce bugs or security risks.
Best-suited project types
1. Web and mobile applications
Frequent updates as well as user-driven development makes an ideal environment for DevOps.
2. Cloud-based applications
DevOps aligns perfectly with cloud scalability, CI/CD pipelines, and infrastructure automation.
3. Agile development projects
Agile and DevOps both support rapid iteration, collaboration, and continuous delivery.
Spiral Model
Definition and Overview
The spiral model is a software development life cycle(SDLC) method that combines iterative development
with risk management, making it suitable for large, complex and high risk projects. It’s characterised by its
risk-driven approach, allowing for incremental releases and refinement of the software throughout multiple
interactions , or spiral objects.
Key phases
Identification
This phase starts with gathering business requirements in the baseline spiral. Identification of
system requirements, subsystem requirements and unit requirements are all done in this phase.
This phase also includes understanding the system requirements by continuous communication
between customer and the system analyst.
Design
This phase starts with the conceptual design in the baseline spiral and invilves architectural design,
logical design of modules, physical product design and final design in the subsequent spirals.
Construct/Build
The Construct phase refers to production of the actual software product at every spiral. In the
baseline spiral, when the product is just thought of and the design is being developed a POC (Proof
of Concept) is developed in this phase to get customer feedback.
Evaluation and Risk Analysis
Risk Analysis includes identifying, estimating and monitoring the technical feasibility and
management risks, such as schedule slippage and cost overrun. After testing the build, at the end
of first iteration, the customer evaluates the software and provides feedback.
The following illustration is a representation of the Spiral Model, listing the activities in each phase.
Advantages
● Changing requirements can be accommodated.
● Allows extensive use of prototypes.
● Requirements can be captured more accurately.
● Users see the system early.
● Development can be divided into smaller parts and the risky parts can be developed earlier
which helps in better risk management.
Disadvantages
● Management is more complex.
● End of the project may not be known early.
● Not suitable for small or low risk projects and could be expensive for small projects.
● Process is complex
● Spiral may go on indefinitely.
● Large number of intermediate stages requires excessive documentation.
AGILE
Definition and Overview
Agile is a project management and software development methodology that focuses on flexibility,Customer
collaboration, small iterations, continuous improvement and working software over documentation.
Key phases
1, Concept / Requirements Gathering
● Understand the requirements of the project.
● Identify high-level features and business goal
● Collaborate with the stakeholders to define the product backlog
2. Brainstom
● Break down features into user stories.
● Prioritize items in the product backlog.
● Plan the sprint (usually 1–4 weeks long).
● Define the sprint backlog with tasks the team will complete.
3. Design
● Create simple, functional designs for the features to be built.
● Focus on user experience and interface planning.
● May involve wireframes, prototypes, or diagrams.
4. Development
● Developers build the features during the sprint.
● Work is delivered in small,incremental releases.
● Team collaborates closely,usually with daily stand ups.
5. Testing
● Continuous testing is done throughout the sprint.
● Includes unit testing, integration tests and user acceptance tests.
● QA works with developers to find and fix bugs quickly.
6. Review and Feedback
● Conduct a Sprint Review (Show stakeholders what was completed).
● Helps continuous improvement for the next sprint.
7.Deployment
● Deliver a potentially shippable product increment.
8.Retrospective
● Team reflects on what went well, what didn't , and how to improve.
●
Visual representation of Agile
Agile Frameworks
1.Scrum
● A lightweight Agile framework that focuses on team collaboration, sprints and continuous delivery.
Key elements:
● Sprint: A 2–4 week development cycle.
● Product Backlog: List of everything that needs to be done.
● Sprint Backlog: List of tasks chosen for the current sprint.
● Scrum Team:
○ Product Owner: Defines what to build.
○ Scrum Master: Helps the team follow Scrum and removes blockers.
○ Development Team: Does the actual work.
XP(Extreme Programming)
● A technical Agile framework that emphasizes engineering excellence and frequent releases to
improve productivity and responsiveness to changing customer requirements.
Key elements:
● Test-Driven Development (TDD): Write tests before writing the code.
● Continuous Integration: Code is integrated and tested frequently.
○ Pair Programming: Two developers work together at one computer.
● Refactoring: Continuously improve code quality.
● Simple Design: Keep the design as simple as possible.
● Small Releases: Deliver software frequently.
Advantages
1. Customer Involvement
○ Frequent feedback ensures the final product matches the customer’s needs.
2. Flexibility & Adaptability
○ Agile can adapt quickly to changes in requirements, even late in development.
3. Faster Delivery
○ Working software is delivered in short cycles (sprints), so value is seen early.
4. Improved Quality
○ Continuous testing and integration help catch issues early.
5. Better Collaboration
○ Encourages teamwork, open communication, and shared ownership.
6. Risk Reduction
○ Short iterations mean that problems are spotted and resolved early.
7. Continuous Improvement
○ Retrospectives allow the team to reflect and improve each sprint.
Disadvantages
1. Less Predictability
○ Scope, time, and budget can be hard to predict accurately at the start.
2. Requires Frequent Customer Involvement
○ Not all clients have the time to be involved regularly.
3. Scope Creep Risk
○ Since changes are welcome, there’s a risk of continuous additions that delay delivery.
4. Lack of Documentation
○ Agile favors working software over documentation, which can cause issues later.
5. Not Ideal for All Projects
○ For fixed-scope or regulated projects, Agile may not be the best fit.
6. Team Dependency
○ Agile success depends heavily on the team's experience, communication, and discipline.
Iterative Model
Definition and Overview
COMPARATIVE TABLE
Model Process Flexibility Customer Risk Cost Project type Delivery speed
Flow Involveme Handling Estimatio suitability
nt n
Waterfall
Model
V-Model
Incremental
Model
Iterative
Model
Spiral Model
Agile
Model(SRCU
M)
Agile Model
(XP)
RAD (Rapid Requiremen Very Very high Moderate Moderate Tight Very fast
Application ts planning Flexible Deadlines product done
Development from a few days
) User design Need to weeks
frequent
Constructio user input
n
Frequently
Cutover changing
requirement
s
DevOps
Approach