Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

CC 102: COMPUTER PROGRAMMING 1

LESSON IV: Software Development Life


Cycle (SDLC)

Objectives
Upon the Completion of Lesson IV, 100% of the students can:

1. Define Software Development Life Cycle (SDLC).


2. Identify the Steps of the Program Development Lifecycle/Software Development Life Cycle
(SDLC).
3. Differentiate the six (6) basic methodologies of Software Development Life Cycle (SDLC).
4. Appreciate the benefits of using Software Development Life Cycle in Application Development.
5. Recognize the role of system analyst in the Software Development Life Cycle Process.

What is the Software Development Life Cycle (SDLC)?


A software development life cycle (also known as program development life cycle or system
development life cycle or SDLC) is essentially a project management model. It defines different stages
that are necessary to bring a project from its initial idea or conception all the way to deployment and later
maintenance. System development life cycles are typically used when developing IT projects.

41
Software development managers will utilize SDLCs to outline various development stages, make sure
everyone completes stages on time and in the correct order, and that the project is delivered as promptly
and as bug-free as possible.

SDLCs can also be more specifically used by systems analysts as they develop and later implement a new
information system. SDLC can be used to develop or engineer software, systems, and even information
systems. It can also be used to develop hardware or a combination of both software and hardware at the
same time.

Steps/Stages of Software Development Life Cycle

1. Planning Stage - In this step, the problem has to be defined formally. The planning stage (also
called the feasibility stage) is exactly what it sounds like: the phase in which developers will plan
for the upcoming project. It helps to define the problem and scope of any existing systems, as

42
well as determine the objectives for their new systems. By developing an effective outline for the
upcoming development cycle, they'll theoretically catch problems before they affect development
and help to secure the funding and resources they need to make their plan happen. Perhaps most
importantly, the planning stage sets the project schedule, which can be of key importance if
development is for a commercial product that must be sent to market by a certain time. Factors
like input/output, processing requirement, memory requirements, error handling, interfacing with
other programs have to be taken into consideration in this stage.
2. Analysis Stage - The analysis stage includes gathering all the specific details required for a new
system as well as determining the first ideas for prototypes. In this stage, developers may define
system requirements, evaluate prototype alternatives, and perform research and analysis to
determine end-users´ needs. Also, in this stage, developers will often create a software
requirement specification or SRS document, which includes all the specifications for software,
hardware, and network requirements for the system they plan to build. This will prevent them
from overdrawing funding or resources when working at the same place as other development
teams.
3. Design Stage - The software developer makes use of tools like algorithms and flowcharts to
develop the design of the program. Also, in this stage, specific aspects of the program such as
user interfaces, system interfaces, network requirements and databases are included. Operation,
training, and maintenance plans will all be drawn up so that developers know what they need to
do throughout every stage of the cycle moving forward. Once complete, development managers
will prepare a design document to be referenced throughout the next phases of the SDLC.
4. Development Stage - The development stage is the part where developers actually write code
and build the application according to the earlier design documents and outlined specifications.
Once the design process is complete, the actual computer program is written, i.e. the instructions
are written in a computer language. Coding is generally a very small part of the entire program
development process and also a less time-consuming activity in reality. In this process all the
syntax errors, i.e. errors related to spelling, missing commas, undefined labels etc. are eliminated.
For effective coding some of the guidelines which are applied are the use of meaningful names
and labels of variables, simple and clear expressions, modularity with emphasis on making
modules generalized, making use of comments and indenting the code properly, and avoiding
jumps in the program to transfer control.

43
5. Testing Stage - During the testing stage, developers will go over their software with a fine-tooth
comb, noting any bugs or defects that need to be tracked, fixed, and later retested. Depending on
the skill of the developers, the complexity of the software, and the requirements for the end-user,
testing can either be an extremely short phase or take a very long time. A test plan of the program
has to be done at the stage of the program design itself. This ensures a thorough understanding of
the specifications. The most trivial and the most special cases should be identified and tested. It is
always useful to include the maximum and minimum values of all variables as test data.
6. Integration Stage - Different modules or designs will be integrated into the primary source code
through developer efforts, usually by leveraging training environments to detect further errors or
defects. Here, providing documentation will help the users and the people who will maintain the
software. The information system will be integrated into its environment and eventually installed.
After passing this stage, the software is theoretically ready for market and may be provided to any
end-users.
7. Maintenance Stage - Furthermore, developers are responsible for implementing any changes that
the software might need after deployment. This can include handling residual bugs that were not
able to be patched before launch or resolving new issues that crop up due to user reports. Larger
systems may require longer maintenance stages compared to smaller systems.

Six (6) Basic Methodologies of Software Development Life


Cycle (SDLC)
The six (6) basic methodologies of Software Development Life Cycle are the following:

1. Waterfall Model - is the oldest of all SDLC methodologies. It’s linear and straightforward and
requires development teams to finish one phase of the project completely before moving on to the
next. Each stage has a separate project plan and takes information from the previous stage to

44
avoid similar issues (if encountered). However, it is vulnerable to early delays and can lead to big
problems arising for development teams later down the road.

2. Iterative Model - Focuses on repetition and repeat testing. New versions of a software project are
produced at the end of each phase to catch potential errors and allow developers to constantly
improve the end product.

45
3. Spiral Model - The model is flexible as compared to other methodologies. Projects pass through
four main phases again and again in a metaphorically spiral motion. This model is good for large
software projects.

46
4. Verification and Validation Model (V-Model) - Quite similar to the waterfall model. A testing
phase is incorporated into each development stage to catch potential bugs and defects. It’s
incredibly disciplined and requires a rigorous timeline. In theory, it illuminates the shortcomings
of the main waterfall model by preventing larger bugs from spiraling out of control.

47
5. Big Bang Model - Incredibly flexible and doesn’t follow a rigorous process or procedure.
Mostly used for developing broad ideas when the client isn´t sure what they want. Developers
simply start the project with money and resources. It is easy to follow the logic of a program. A
function can access other function's data by calling that function.

48
6. Agile Model - The agile model is relatively well-known, particularly in the software
development industry. The agile methodology prioritizes fast and ongoing release cycles, utilizing
small but incremental changes between releases. This results in more iterations and many more
tests compared to other models. Theoretically, this model helps teams to address small issues as
they arise rather than missing them until later, more complex stages of a project.

49
Benefits of Software Development Life Cycle (SDLC)
SDLC provides a number of advantages to development teams that implement it correctly.

1. Clear goal descriptions - Developers clearly know the goals they need to meet and the
deliverables they must achieve by a set timeline, lowering the risk of time and resources being
wasted.
2. Proper testing before installation - SDLC models implement checks and balances to ensure that
all software is tested before being installed in greater source code.
3. Clear stage progression - Developers can’t move on to the next age until the prior one is
completed and signed off by a manager.
4. Member flexibility - Since SDLCs have well-structured documents for project goals and
methodologies, team members can leave and be replaced by new members relatively painlessly.
5. Achieve Perfection - All SDLC stages are meant to feed back into one another. SDLC models
can therefore help projects to iterate and improve upon themselves over and over until essentially
perfect.
6. No member makes or breaks the project - Again, since SDLCs utilize extensive paperwork and
guideline documents, it’s a team effort and losing even one major member will not jeopardize the
project timeline.

50
The Role of System Analyst in the Software Development
Life Cycle (SDLC)
The system analyst should be totally aware of the system and all its moving parts and can help guide the
project by giving appropriate directions. Hence, the following are the roles of system analyst in the
SDLC:

1. Oversees the entire system


2. Expert in technical skills of the project
3. A good communicator
4. A good planner
5. Gather facts and information
6. Suggest alternative solutions
7. Draw specifications that can be easily understood by both users and programmers
8. Implement logical systems
9. Evaluate and modify the resulting system
10. Help to plan out system requirements

References

1. Preston, M. (2021). System Development Life Cycle Guide. Retrieved September 22, 2021 from
https://www.clouddefense.ai/blog/system-development-life-cycle
2. CseWorldOnline (2020). Stages of program development process. Retrieved September 22, 2021
from https://www.cseworldonline.com/articles/stages-of-program-development- process.php

51

You might also like