SOFTWARE DEVELOPMENT LIFECYCLE (SDLC)
Group No 3
Members
1. Abdullah Javaid
2. Mohammad Adan
3. Faiza Noor
4. Muhammad Ali
5. Muhammad Usama
SDLC
It is a process of planning, creating, testing, and developing a system software.
Development teams / individual developers use SDLC process to develop efficient software
and meet up to the requirements.
It helps you understand what the customer demands and how he wants the software to be.
Steps of SDLC
SDLC includes following seven steps:
Preliminary Investigation
System Analysis
System Design
Coding
Testing and Debugging
Implementation
Maintenance
Example
If a customer demands a software for his/her restaurant, what will we do?
We will ask for the requirements and decide if a solution exists for that or not. We will decide
that we will take the task or not.
Then we will follow previous mentioned steps to proceed further.
We can switch between any steps at any time.
Preliminary Investigation
The purpose of preliminary investigation is to determine whether the problem or deficiency in
the current system really exists.
We determine the requirements of the customer, decide whether we will work on it or not.
We will tell customer the time we can complete project in and also tell him the cost he will
have to pay for it.
CONT…..
Then we will plan on how to complete the project.
We will look for the problems the institution or organization was going through before coming
to us with old system (manual/computerized).
We will try to understand how the institution/organization would like the software to be.
CONT…..
We will look for alternative plans, different solutions to the problem so that we could come up
with the best possible solution.
We will make a report on what we have been able to understand and what we will do for it.
We will also provide one copy of report to customer to make him and ourselves clear.
System Analysis
The analysis phase is to define the requirements further more clear by visiting the
institution/organization we are developing software for.
For Example: As my team mate earlier gave the example of developing a software for a
restaurant, I will continue on with it.
Let there be restaurant owner, that came to us asking us to develop a software for his
restaurant, let say that we preliminary investigated and agreed to take up the task.
CONT…..
Now that we have preliminary investigated, we will go to the restaurant and ask for the
difficulties they were facing in computing, getting orders online or whatever, by randomly
questioning employees, customers there. We can also provide a question book or interview
some persons.
Ask them how they want the new software to be or what changes they are expecting.
By doing this, we will know the actual problem we are confronted with, and what type of
solution we actually need to provide.
System Design
Now that we have made ourselves clear with what we will develop, we can move easily to our
next step that is system design.
System design means to draw/do paper work about the software we are about to develop which
in other words is called logical design.
One cannot do coding directly before he/she has made a logical design.
Coding
It means to write the code in computer, the output of which will be our required software.
Coding is the primary method for allowing intercommunication between humans and
machines.
It is the most important and tough part of SDLC, because our whole project is actually
depending on it and a little mistake could ruin it.
It demands effort and a lot of cost.
Testing and Debugging
Testing is the process to find bugs and errors, bugs and errors mean the mistakes which we
have done while coding.
Debugging is the process of correcting bugs and errors found during testing.
During testing, bugs/errors are located or rather marked while debugging removes those errors.
The whole process is actually checking whether the program is running as required or not.
CONT…..
There are two types of testing:
Unit testing
System testing
Unit testing: It means testing each object or part of the software separately. Testing even
smallest code separately. It is time consuming.
System testing: It means testing application/program as a whole. It is less time consuming than
unit testing.
Implementation
Reaching this phase means our program is ready to deliver. Implementation phase means
putting the project into action, transforming into the actual system, which in our case is a
restaurant.
Implementation can be of four types:
Direct implementation
Parallel implementation
Phase implementation
Pilot implementation
CONT…..
Direct Implementation: This type of implementation completely removes the previous system and
introduces a new one.
Parallel Implementation: In this type new and old system run simultaneously, to compare it with the old
one.
Phased Implementation: In this type we imply some features of the new system to check whether it has
meet up to the requirement or not.
Pilot Implementation: It is initial small scale implementation. For example, if a restaurant has three
branches we will imply it in one to check that it is better than the previous one.
Maintenance
The maintenance phase of SDLC occurs when product is in full operation, after we have implied it
completely.
Maintenance of software may include software upgrades, repairs and fixes of software if it
breaks/stops working. It is rather keeping it up to date.