Software Development Process Grade 9
Software Development Process Grade 9
Process
Software Development Process
• The software development process is nothing but the process of
developing software. This process might include improving design and
product management by splitting the work into smaller steps or
processes.
• Software is nothing but a set of programs having specific functions that
are designed to work according to human needs. The Software
Development Process includes different steps in an organized way to
form a software product. In this article, we are going to learn about
Software Development Process, their needs, the purpose of the
software development process, steps of the software development
process, approaches of Software Development, and types of software
development process.
2
Table of Content
1 4
What are the 10 Software Development
Processes?
1 5
The software development process is the
sequence of activities that leads to the
production of a software product. The
steps of software development process
are as follows:
1 6
1. Communication
• The first and foremost step is where the user contacts the service
provider i.e. software organization and initiates the request for a
desired software product. The software organization talks with the
customer about its requirement and then work according to its needs.
1 7
2. Requirement Gathering
• In this step, the team of software developers holds discussions with
various stakeholders from the problem domain and provides as much
as information possible for the requirement of the software product.
The requirements can be of different forms like user requirements,
system requirements, functional requirements, etc.
1 8
3. Feasibility Study
• After requirement gathering, with the help of many algorithms, the
team analyzes that if the software can be designed to fulfil all
requirements of the user and also analyzes if the project is financially,
practically and technologically feasible for the organization or not.
1 9
4. System Analysis(A planning phase)
• Software developer decides on a roadmap for their plan and tries to
bring up the best software model stable for the project. System
analysis may also include understanding product limitations and
identifying and addressing the impact of the project on the
organization. The project analyzes the scope of the project and plans
the resources accordingly.
1 10
5. Software Design
• Software design whole knowledge of requirements and analyses are
taken together to plan up design of software products. It takes input
from the user and information gathered in the requirement-gathering
phase. It gives output in the form of logical and physical design.
1 11
6. Coding
• This step is also known as the programming phase. The
implementation of software design starts in the form of writing code
in suitable programming and developing error-free programs
efficiently.
1 12
7. Testing
• Software testing is done while coding by the testers’ developing team
members. Testing is done at various levels i.e. module testing, product
testing, program testing and user-end testing.
1 13
8. Integration
• After writing all the codes for the software such as frontend, backend,
and databases, The software is integrated with libraries, databases
and other programs.
1 14
9. Implementation
• In this step, the software product is finally ready to be installed on the
user’s machine. Software is tested for profitability, integration,
adaptability, etc.
1 15
10. Operation and Maintenance
• This phase confirms the software operations in terms of more
efficiency and fewer errors. If required, the users are trained or aided
with the documentation on how to operate the software and how
they keep the software operational. This software is maintained
timely by updating the code according to the changes taking place in
the user and environment or technology.
1 16
Need for Software Development Process
A software development process is needed as it
creates software in an organized manner. It is used to
ensure that whether the project is delivered on time or
not. It also examines the project’s and the customer’s
requirements. The technique also allows for iterative
testing and improvement, which can aid in detecting and
correcting problems early on. There are several reasons
why we require a software development process. Let’s
see some of them
1 17
1. Meeting Requirements: The software development
process ensures that the final product meets the specified
requirements that are needed by the customer.
2. Timely Delivery: Following a software development
process helps in managing project timelines effectively. It
checks whether a project is delivered on time or not.
3. Budget Control: The software development process
facilitates budget control by allowing for better estimation
and tracking of resources and costs.
4. Quality Assurance: The process includes testing and
quality assurance activities, enabling the identification and
resolution of bugs, defects, and usability issues.
1 18
Purpose of Software Development Process
The main purpose of SDP is nothing but to ensure a quality
product that is delivered to the end customer. It’s a series of steps that
make sure everything meets the required specifications, is easy to
maintain and scale, and is delivered on time while not breaking the
bank. The main goal of the software development process is to give
value to users and meet their needs. Software-making organizations try
to reduce the risk of project failure, increase productivity, and improve
their software quality by following an organized development process.
1 19
• The Purpose of software development process is to develop the software as quickly
as possible while taking care of quality and security. Following are the main purpose
of software development process:
• Organization and Structure: A development process provides a framework for
organizing tasks and activities involved in software development. It defines roles,
responsibilities, and communication channels within a development team.
• Quality Assurance: The process involves quality assurance and testing stages that
ensure that the software fulfills the specifications, is defect-free, and performs as
expected.
• Risk Management: A well-defined process helps in the early identification of
potential risks and provides tools for controlling and reducing those risks.
• Efficiency and Productivity: By following a process, development teams can improve
efficiency and productivity
• Communication and Collaboration: A software development process provides
communication and collaboration among team members, stakeholders, and other
relevant parties. 1 20
Approaches of Software Development
• Software development approaches are nothing but the
methodologies that are used to organize and plan the
process of building software. There are various
approaches, including Agile, Waterfall, Iterative, and V-
Model, each with its own set of practices and principles.
Let us understand in detail.
1 21
Waterfall Approach
• Waterfall Approach is one of traditional methods which consist of a popular
classic approach and it is also a popular version of the software development
lifecycle in the field of software engineering.
• Advantages of Waterfall Approach
• Waterfall methodology can easily manage small projects and has a separate
review process.
• In waterfall methodology it consists of separate development stages
deadlines.
• Disadvantages of Waterfall Approach
• Waterfall methodology is not applied for the projects which need
modifications on the way.
1 22
1 23
Spiral Approach
• Spiral methodology is a lifecycle model which is highly sophisticated and it
functions by the early identifications and the reduction of the risks in a
project. Spiral methodology makes sure that the software developers can
make necessary changes in the design or in the code in the testing stage.
Advantages of Spiral Approach
• Spiral methodology involves large risk analysis which further leads to less
risks.
• The main advantage of the spiral model is that required changes can be made
even in the last testing stage.
Disadvantage of Spiral Approach
• Spiral methodology is a complete waste of resources for the projects which
consists of low risks factors.
1 24
1 25
Incremental Approach
• This model works on putting design first (as it takes less time) for both planning
and analyzing which also makes it one of the best methods when it comes to
cost saving. This method is popular because of its adaptability, it allows teams
to implement requirements without any prior planning and developers can
work on creating new versions in no time and further updates can be provided
using this methodology.
Advantages of Incremental Approach
• The incremental approach allows for the early delivery of partial functionality.
Users can begin using and experiencing some features earlier than in a standard
waterfall approach.
• It reduces the risk of project failure.
Disadvantage of Incremental Approach
• Since the software is developed incrementally, the full system may not be
available until later in the development1 cycle. 26
1 27
Agile Approach
Agile is nothing but a software development
approach that focuses on flexibility, collaboration, and delivering
working software in iterative cycles. Agile methodologies, such as
Scrum and Kanban, prioritize close collaboration between team
members, regular feedback loops, continuous improvement, and
adaptability to change.
According to a recent survey by VersionOne, 87% of organizations use
agile development for some or all of their software development projects.
1 28
Advantages of Agile Methodology
• Due to involvement of small iteration it delivers high
quality of output.
• With the help of Agile methodology allows creative
improvements whenever working on the software product.
• The agile methodology is popular for its minimal reliance
and adaptivity on the initial documentation.
Disadvantages of Agile Methodology
• Agile methodology doesn’t consist of any deadlines.
• Agile methodology also lacks clarity and the project vision.
1 29
1 30
Metrics of Software Development Process
Metrics are essential in
software development to measure and improve
the efficiency, quality, and progress of the
development process. There are various metrics
used in software development, and they can be
categorized into different areas:
1 31
1. Productivity Metrics:
• Lines of Code (LOC): Measures the size of the codebase,
but should not be used as the sole indicator of
productivity.
• Function Points: Quantifies the functionality delivered
by the software.
• Velocity: Commonly used in Agile methodologies, it
measures the amount of work completed in a sprint or
iteration.
1 32
2. Quality Metrics
• Defect Density: The number of defects or bugs per unit
of code (e.g., per thousand lines of code).
• Code Review Feedback Time: The time it takes to
address feedback from code reviews.
• Code Churn: The frequency of code changes, which can
indicate instability.
1 33
3. Efficiency Metrics
• Lead Time: The time from the inception of a software
request to its delivery.
• Cycle Time: The time it takes to complete a single cycle
or task, often used in Agile development.
• Throughput: The number of features or user stories
completed in a given time frame.
1 34
4. Customer Satisfaction Metrics:
• Net Promoter Score (NPS): Measures customer
satisfaction and likelihood to recommend the
software.
• Customer Support Response Time: How quickly
customer support responds to and resolves issues.
1 35
5. Codebase Metrics
• Code Complexity: Metrics like cyclomatic complexity or
maintainability index assess code quality.
• Code Coverage: Estimates the proportion of code that is
covered by automated testing.
• Technical Debt: Quantifies the amount of suboptimal
code that needs to be addressed in the future.
1 36
6. Team Metrics
• Team Velocity: The team’s average output over a
period, useful in Agile.
• Team Satisfaction: Surveys or feedback
mechanisms to gauge the team’s morale and
engagement.
1 37
Good Luck
1 38