You are on page 1of 30

SOFTWARE DEVELOPMENT LIFE CYCLE Introduction to software

(SDLC) Engineering and profession

1
OUTLINE
• What is SDLC
•Requirements Gathering Phase
•Analysis Phase
•Design Phase
•Coding Phase
•Testing Phase
•Deployment
•Operation and Maintenance
•SDLC Models
•Key Points
•Summary

2
WHAT IS SDLC?
• SDLC stands for Software Development Life Cycle. A Software Development Life
Cycle is essentially a series of steps, or phases, that provide a model for the
development and lifecycle management of an application or piece of software.
•The Software Development Life Cycle is a process that ensures good software is built.
Each phase in the life cycle has its own process and deliverables that feed into the
next phase

3
WHY SYSTEMS FAIL?
Only 20% of systems built today are successful, 80% of systems
development fail.

Five primary reasons why systems fail include:


1. Unclear or missing requirements
2. Skipping SDLC phases
3. Failure to manage project scope
4. Failure to manage project plan
5. Changing technology

4
THE BEHAVIOR EFFECT

5
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)
The SDLC processes are as follows:
Requirements Gathering
Analysis
Design
Coding
Testing
Implementation
Operation and Maintenance

6
SDLC PHASE 1-REQUIREMENTS GATHERING
• This step onwards the software development team works to carry on the project.
•The team holds discussions with various stakeholders from problem domain and tries
to bring out as much information as possible on their requirements.
•There are three stages in planning-:
investigate the issue in order to identify the problem,
establish a team that will give you the best work environment and results,
develop the appropriate documentation needed (project charter, business case, project feasibility).

•From each stage arises key deliverables.

7
SDLC PHASE 1-REQUIREMENTS GATHERING
•The key deliverables of the planning stage are:
 general problem statement,
 team members and roles,
feasibility report.

Following are different components of the feasibility study:


Operational Feasibility
Economic Feasibility
Technical Feasibility
Human Factors Feasibility
Legal/Political Feasibility

8
SDLC PHASE 2 -REQUIREMENTS ANALYSIS
• Requirement analysis is the most important and fundamental stage in SDLC.
•It is performed by the senior members of the team with inputs from the customer, the sales department,
market surveys and domain experts in the industry.
•This information is then used to plan the basic project approach and to conduct product feasibility study
in the economical, operational and technical areas.
•Planning for the quality assurance requirements and identification of the risks associated with the project
is also done in the planning stage.
•The outcome of the technical feasibility study is to define the various technical approaches that can be
followed to implement the project successfully with minimum risks.

9
SDLC PHASE 2 -REQUIREMENTS ANALYSIS
•There are two main stages in analysis;
The current system must be studied and analysed. This is done by collecting facts from existing users
(carried out by system analysts), examine the existing systems limitations and details and define new
system objectives.
Define and prioritise users requirements. The users are approached by analysts to find out what they
need from the system. Different data gathering techniques are used (interviews, surveys and
observation). This is in order to attempt to understand all aspects of the current system to establish how
these may be improved by a new system.

•The key deliverables of the analysis stage are formal requirements document and
DFD & ERD of current system.

10
SDLC PHASE 3- DESIGN
• In systems, design functions and operations are described in detail, including screen
layouts, business rules, process diagrams and other documentation.
•The design stage takes as its initial input the requirements identified in the approved
requirements document.
•UML diagrams play a significant role in the design phase. The process and methods
are depicted using diagrams for better understanding.
•A system design describes how the system will fulfil the user requirements. logical
design and physical design must be created here in order to achieve this.
•Design elements describe the desired software features in detail, and generally
include functional hierarchy diagrams, screen layout diagrams, tables of business
rules, business process diagrams, pseudo code, and a complete entity relationship
diagram with a full data dictionary
11
SDLC PHASE 3- DESIGN
•The key stages in this phase are:
• choosing an appropriate Database Management System,
• establish system security standards, interphase design, data capture requirements,
standards for printed report production and system navigation methods.
•The key deliverables of the design stage are functional specification document,
technical specification document and an implementation schedule.

12
SDLC PHASE 4- IMPLEMENTATION/CODING
•Modular and subsystem programming code will be accomplished during this stage.
•Coding includes the application of various logic and internal work done by various
specialists.
•The implementation of software design starts in terms of writing program code in the
suitable programming language and developing error-free executable programs
efficiently.
•This stage is intermingled with the next in that individual modules will need testing
before integration to the main project.

13
SDLC PHASE 5- TESTING
•The code is tested at various levels in software testing. Unit, system and user acceptance testing’s
are often performed.
•This is a grey area as many different opinions exist as to what the stages of testing are and how
much if any iteration occurs.
•Debugging is the process of removing the errors that occurs during the coding part.
• Debugging is essential for this stage establishes the platform for further stages of development.
•Once the application is migrated to a test environment, different types of testing will be performed
including integration and system testing.
•User acceptance testing is the last part of testing and is performed by the end users to ensure the
system meets their expectations.
•At this point, defects may be found and more work may be required in the analysis, design or
coding.
•Once sign-off is obtained by all relevant parties, implementation and deployment can begin.

14
SDLC PHASE 5- TESTING
•The following are types of testing that may be relevant, depending on the type of
system under development:
Unit testing
Integration testing
Black-box testing
White-box testing
Regression testing
User acceptance testing

15
SDLC PHASE 6- DEPLOYMENT
•This means installing the software on user machines.
•At times, software needs post-installation configurations at user end.
•Software is tested for portability and adaptability and integration related issues are
solved during implementation.
•The key deliverables of implementation are a fully installed system, fully trained
users and user & operational documentation.

16
SDLC PHASE 7- OPERATION AND MAINTENANCE
•Maintaining the system is an important aspect of SDLC.
•Maintenance is the process of keeping the software in its fully functional form and see to that
nothing goes wrong.
•Maintaining and enhancing software to cope with newly discovered problems or new
requirements can take far more time than the initial development of the software.
•This phase confirms the software operation in terms of more efficiency and less errors. If
required, the users are trained on, or aided with the documentation on how to operate the
software and how to keep the software operational.
•The software is maintained timely by updating the code according to the changes taking place
in user end environment or technology. This phase may face challenges from hidden bugs and
real-world unidentified problems.
•The key deliverables are; the system is kept live, the code is maintained, software is updated
when required.

17
HOW DOES SDLC WORK?
•https://www.youtube.com/watch?v=i-QyW8D3ei0
•https://www.youtube.com/watch?v=G-6qDY8UltU
•https://www.youtube.com/watch?v=eiXS9dyItnY

18
SDLC MODELS
• There are various software development life cycle models defined and designed
which are followed during the software development process.
• These models are also referred as "Software Development Process Models".
•Each process model follows a Series of steps unique to its type to ensure success in
the process of software development.
•Following are the most important and popular SDLC models followed in the industry:
Waterfall Model
 Iterative Model
 Spiral Model
V-Model
Agile

19
KEY POINTS
•1. Requirement gathering - Gather the requirements regarding the software you are going to develop
through various sources. Best source will be the end user for whom you will be developing the actual product.
2. Design - This phase begins when the requirements are well understood. You need to draw various UML
diagrams, decide which technology to use for development, resources, Dead Line (estimated time), etc.
3. Development or Coding - This is the phase where you actually develop the product. Code is written based
on the decision taken in Design phase. Developers perform Unit Testing and Integration testing to ensure
everything is working fine. Code gets reviewed by Sr. members in the team, and once the development is
completed, the product is sent forward for testing.
4. Testing - The developed product is tested by testers (QA Engineers). The go for both positive (as per
requirements) as well as negative (how to break the product, moto is to find flaws) testing. If defects are
found the product is resent to the development team to fix it. Once the defect gets fixed testers check it again
and perform regression testing( testing the whole product). Once all is good, the product will become ready to
handover it to client.
5. Deployment/Maintenance - Once all the above phases are completed, the product is installed on end
users/clients machine. And in future if end user/client faces some issues maintenance done by the organisation
who developed it.

20
SOURCING
Now that you understand the SDLC, the next question is “who will build the
system?”. This is referred to as “sourcing”.
 Insourcing: Using IT within the resources of the organization
 Selfsourcing: Using Knowledge Workers
 Outsourcing: Using another organization

21
INSOURCING
Insourcing - IT specialists within your organization will develop the system.
Insourcing is one of the most common methods to develop a system.
 Typically cheapest
 Company does not have to hire contractors

22
SELFSOURCING
Self sourcing (also called knowledge worker development or end user development) - the
development and support of IT systems by knowledge workers with little or no help from IT
specialists.

On Your Own

How Have
You Selfsourced?

23
OUTSOURCING
Outsourcing - the delegation of specific work to a third party for a specified length of time, at
a specified cost, and at a specified level of service.

24
PROTOTYPING
Prototyping - the process of building a model that demonstrates the features of a
proposed product, service, or system.

Prototype - a model of a proposed product, service, or system.

25
PROTOTYPING
Prototyping can be used to perform a variety of functions
 Gathering requirements
 Helping determine requirements
 Proof-of-concept prototype - used to prove the technical feasibility of a proposed system.
 Selling prototype - used to convince people of the worth of a proposed system.

26
PROCESS
The prototyping process involves four steps:
1. Identify basic requirements
2. Develop initial prototype
3. Knowledge worker review
4. Revise and enhance the prototype

27
ADVANTAGES OF PROTOTYPING
The advantages of prototyping include
 Encourages active knowledge worker participation.
 Helps resolve discrepancies among knowledge workers.
 Gives knowledge workers a feel for the final system.
 Helps determine technical feasibility.
 Helps sell the idea of a proposed system.

28
THE DISADVANTAGES OF PROTOTYPING
 The disadvantages of prototyping may include
 Leads people to believe the final system will follow shortly.
 Gives no indication of performance under operational conditions.
 Leads the project team to forgo proper testing and documentation.

29
REVISION QUESTIONS
1. List the seven steps in the systems development life cycle and an associated
activity for each step.
2. List four reasons why your participation during the systems development life
cycle is critical.
3. Describe three reasons why projects fail.
4. Define the three different ways you can staff a system development project.
5. List two advantages of selfsourcing.
6. Describe prototyping and profile an example of a prototype.
7. Describe the advantages of prototyping.

30

You might also like