0% found this document useful (0 votes)
2 views

SPS LAB

The document outlines a lab course focused on analyzing various software process models, including RAD, DevOps, Spiral, and Agile methodologies. It details the objectives, key phases, advantages, disadvantages, and best-suited project types for each model. The comparative table summarizes the flexibility, customer involvement, risk handling, cost estimation, project suitability, and delivery speed of each model.

Uploaded by

natangwejr01
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

SPS LAB

The document outlines a lab course focused on analyzing various software process models, including RAD, DevOps, Spiral, and Agile methodologies. It details the objectives, key phases, advantages, disadvantages, and best-suited project types for each model. The comparative table summarizes the flexibility, customer involvement, risk handling, cost estimation, project suitability, and delivery speed of each model.

Uploaded by

natangwejr01
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

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

You might also like