--> Sayadasite: Software Development Life Cycle (SDLC)

Multiple Ads

Search

Menu Bar

Software Development Life Cycle (SDLC)

Definition of Software Engineering

Software Development Life Cycle (SDLC)

Types of Software

Role of Software Engineer

SDLC stands for Software Development Life Cycle.

It is a systematic process used to develop software from the initial idea to deployment and maintenance.

Main Phases of SDLC

It is a step-by-step process used by teams to plan, build, test, and maintain high-quality software.

Following this structured cycle helps developers deliver projects on time, stay within budget, and ensure the software meets user needs.

Planning → Requirement Analysis → Design → Implementation → Testing → Deploy→ Maintenance

The Standard Phases of SDLC

The Software Development Life Cycle typically involves the following core stages:

1 Planning: Define the project's goals, scope, cost, and overall strategy.

2 Requirements Analysis: Gather and document exactly what the software needs to do.

3 Design: Create the technical blueprint, system architecture, and user interface.

4 Development (Coding, Implementation): Write the actual code to build the software.

5 Testing: Check the software for bugs and make sure it works perfectly.

6 Deployment: Release the software to the public or the production environment.

7 Maintenance: Provide ongoing support, fix any new bugs, and release updates.

1 Planning:

In this phase, the organization decides what software needs to be developed and why.

It includes:

  • Identifying the problem
  • Defining project goals
  • Estimating cost and time
  • Identifying required resources

Example: A college decides to develop an online student attendance system.

2Requirements Analysis:

Developers collect and understand what the users expect from the software.

Requirements may include:

  • Functional requirements – what the system should do
  • Non-functional requirements – performance, security, reliability, etc.

Example: The attendance system should allow teachers to mark attendance and students to view their attendance.

3 Design:

In this phase, the requirements are converted into a technical design.

Developers decide:

  • Database structure
  • System architecture
  • User interface
  • Modules
  • Technologies to be used

Example: Designing tables for students, teachers, subjects, and attendance records.

4 Development (Coding, Implementation):

The actual software is developed by writing program code.

Different modules are coded according to the design.

Example: Developers write Python, Java, PHP, or other code to create the attendance system.

 

5 Testing:

The developed software is tested to identify and correct errors, bugs, and defects.

Common testing types include:

  • Unit testing (such as individual functions, methods, or classes)
  • Integration testing (individual units or modules are combined and tested as a group)
  • System testing (in which the complete and integrated application is tested as a whole to ensure it meets the requirements)
  • Acceptance testing (the final phase of software evaluation where real users or stakeholders check if a system satisfies business requirements and is ready for production.)

Example: Checking whether attendance is correctly saved in the database and displayed to students.

6 Deployment:

After successful testing, the software is installed or released for actual users.

Example: The college uploads the attendance system to its server and teachers and students start using it.

7 Maintenance:

After deployment, the software needs continuous maintenance and improvement.

This may include:

  • Fixing newly discovered bugs (Incorrect Input Validation, Off-by-One Array Loop)
  • Adding new features (admin change a name or picture, Smartphone camera)
  • Improving security (Use multi-factor authentication (MFA): Require users to provide two or more verification factors to gain access (Use multi-factor authentication (MFA): Require users to provide two or more verification factors to gain access, Encrypt data: Make sensitive files unreadable both at rest and in transit using strong cryptographic methods.)
  • Updating the software (Operating System Patches: Your phone or computer getting a monthly security patch (like a minor Windows or Android security fix, App Bug Fixes: Social media apps like Instagram or Spotify downloading a patch to stop sudden crashes.)

Example: Later, the college adds an SMS or email notification feature to the attendance system.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Common SDLC Methodologies

The Software Development Life Cycle (SDLC) is a structured process used by teams to plan, design, build, test, and deploy software.

SDLC methodologies are different approaches used by software development teams to plan, develop, test, and maintain software. Each methodology defines how the different phases of SDLC are organized and carried out.

The most common SDLC methodologies are:

1.                      Waterfall Model

2.                      V-Model

3.                      Prototype Model

4.                      Iterative Model

5.                      Incremental Model

6.                      Spiral Model

7.                      Agile Model

8.                      RAD Model

Waterfall: A traditional, linear approach where each phase must be fully completed before the next one begins. This methodology was introduced first by Winston W. Royce in 1970 and has been adopted by the software industry over the period of time.

Phases

Requirements → Design → Implementation → Testing → Deployment → Maintenance

Each phase is generally completed before the next phase begins.

Advantages

Simple and easy to understand.

Easy to manage.

Clear documentation.

Suitable when requirements are stable.

Disadvantages

Difficult to accommodate changing requirements.

Testing occurs relatively late.

Errors discovered late can be expensive to fix.

Example

A classic real-world example of the Waterfall Model is building an Online Food Delivery System. Building a house or a commercial building

Developing software for a government project where requirements are clearly defined before development begins.

2. V-Model

The V-Model, or Verification and Validation Model, is an extension of the Waterfall approach.

In this model, each development phase has a corresponding testing phase.

The modern V-model (Verification and Validation model) for systems engineering was developed in 1991 by Kevin Forsberg and Harold Mooz, while earlier conceptual roots trace back to Barry Boehm in 1979 and refined variants used by NASA (NASA is the National Aeronautics and Space Administration)

Requirements          Acceptance Testing

                            

System Design         System Testing

                            

Architecture          Integration Testing

                            

Module Design         Unit Testing

                            

             Coding

 

 

Advantages

Testing is planned early.

Clearly defined development and testing activities.

Suitable for projects requiring high reliability.

Disadvantages

Changes are difficult to accommodate.

Requires clearly defined requirements.

Can be expensive for changing projects.

Example

A real-life example of the V-Model in software development is secure online banking application for money transfers. Another industry like automotive or healthcare.

3. Prototype Model

In the Prototype Model, a preliminary version of the software, called a prototype, is created to understand user requirements.

Process

Requirements → Prototype → User Feedback → Refinement → Final System

The prototype helps users and developers understand what the final system should look like.

As an industry-wide engineering response to the limitations of the rigid Waterfall model, with early formal frameworks proposed by researchers like Bally and others in 1977.

Advantages

Helps clarify unclear requirements.

Users can provide feedback early.

Reduces misunderstanding between users and developers.

Disadvantages

Can increase development time.

Users may think the prototype is the final product.

Poorly managed prototypes can lead to design problems.

Example

Before developing a complete college management system, developers create a simple prototype showing the login, student registration, and attendance screens.

4. Iterative Model

In the Iterative Model, software is developed through repeated cycles called iterations.

Each iteration produces an improved version of the software.

Plan → Design → Develop → Test

                       

 └──── Improve ← Feedback

The Iterative Enhancement technique and foundational concepts of iterative development in software engineering were introduced and published by Victor R. Basili and Joe E. Turner in 1975, while broader evolutionary and cyclic development frameworks like the Spiral model were later formalized by Barry Boehm in 1988.

Example

Banking App

Baking a Cake (Refining a Recipe)

Mobile Apps (like WhatsApp)

Advantages

Allows continuous improvement.

Feedback can be incorporated into later iterations.

Problems can be identified earlier.

Disadvantages

Requires good planning.

Repeated changes may increase cost.

The overall system architecture must be carefully managed.

 

5. Incremental Model

In the Incremental Model, the software is divided into smaller parts called increments. Each increment adds new functionality to the system.

The Incremental Model in software engineering was proposed by Harlan Mills in 1980.

Example

For an online college system:

Increment 1: Student registration

Increment 2: Attendance

Increment 3: Examination

Increment 4: Results

Increment 5: Fee management

Each increment is developed and tested before the next one is added.

Advantages

Working software is available early.

Easier to test smaller parts.

Changes can be accommodated more easily than in Waterfall.

Disadvantages

Requires proper planning.

Integration between increments can be challenging.

Not ideal when the system cannot be divided into independent functions.

6. Spiral Model

The Spiral Model combines iterative development with risk analysis.

Each cycle of the spiral generally involves:

Planning

Risk Analysis

Development and Testing

Evaluation and Planning for the Next Cycle

The spiral model was proposed by Barry Boehm in 1986

Advantages

Strong focus on risk management.

Suitable for large and complex projects.

Customer feedback can be incorporated.

Disadvantages

More expensive.

Requires experienced professionals.

Complex to manage.

Example

Large banking, aerospace, or defense software projects where identifying and controlling risks is extremely important.

7 Agile: A flexible approach where software is developed in small, continuous cycles, allowing for quick feedback and changes. Agile is a flexible project management and product development approach that breaks work into small, repeating cycles to help teams adapt quickly to change. February 2001 when 17 software developers met at a ski resort in Snowbird, Utah. Known as the Agile Alliance, prominent signatories included Kent Beck, Ward Cunningham, Martin Fowler, Ken Schwaber, and Jeff Sutherland.

The team develops a small set of features, tests them, obtains feedback, and then works on the next set.

Planning

  

Development

  

Testing

  

Customer Feedback ↓ Improvement    

Advantages

Highly flexible.

Quickly responds to changing requirements.

Frequent customer feedback.

Working software is delivered regularly.

Disadvantages

Requires active customer/team participation.

Documentation may receive less emphasis if poorly managed.

Scope can change frequently.

Example

Developing a mobile shopping application where customers' requirements and features change frequently.

Common Frameworks (Example)

Teams use different methods to put Agile into practice:

Scrum: Divides work into short, fixed time periods called sprints, usually lasting two weeks.

Kanban: Uses visual boards to track tasks and limit how much work happens at the same time

Spotify

Microsoft

Amazon

8. RAD Model

RAD stands for Rapid Application Development.

It focuses on developing software quickly through prototyping, reusable components, and continuous user involvement.

The Rapid Application Development (RAD) model was formally developed by James Martin in the early 1990s (with foundational concepts emerging at IBM during the 1980s).

Advantages

Faster development.

Frequent user feedback.

Useful for applications with tight deadlines.

Disadvantages

Requires skilled developers.

Not suitable for very large or highly complex systems.

Requires continuous user involvement.

Example

Building an internal employee travel request and approval app using a low-code platform.

E-Commerce Checkout Redesign.

Hospital Patient Check-In Kiosk.

No comments: