3. Bringing a computer programming project to market is time consuming and
effort. The key to completing in on time, within budget, and ensuring that it meets
user requirements, requires planning. The Software Development Lifecycle describes
the steps in this process, and programmers must be conversant with this process.
In this section, you will look into the steps involved in
planning, analyzing and designing a software application.
4. SDLC
Software Development Lifecycle
Software development is a time-consuming effort.
It can take months, and even years, to develop an
application. AAA games typically take 1 to 2 years
to bring a game to the market, while mobile apps
take 3 to 5 months to develop. The steps in getting
an app to the market are described by the SDLC
(Software Development Lifecycle). The SDLC
breaks down the process to bring an application
to market into 7 phases. The purpose of phase in
the SDLC can encapsulated in a phrase which
indicates the basic rationale of that phase. The
software development process starts when a
customer requests an application, or a perceived
need is detected in the marketplace and ends
when the app has been deployed. The first,
second and third phases in the SDLC are the
Planning, Analysis and Design Phases.
5. Figure 2.
The purpose of each phase
in the SDLC
The Planning phase decides
whether the app should be
developed or not. Various
stakeholders in the project are
assembled and the reasons for
developing the app are discussed.
This phase examines the business
aspects of the proposed app and
determines scope of the project,
along with preliminary cost
estimates. Feasibility studies are
also conducted, and a tentative
timeline is proposed.
PLANNING PHASE
The Analysis phase is commenced after
the decision to develop the app has been
made. In this phase, the requirements of
the proposed app are finalized. This
phase is performed by members of the
development team, business analysts,
Subject Matter Experts (SMEs),
customers and end-users who will
ultimately use the app. The SMEs provide
subject matter expertise about the app
requirements, and the marketplace for
the app. The next phase, the Design
phase, depends upon the accuracy of the
requirements gathered in this phase,
which ends with the creation of a high-
level design document.
ANALYSIS PHASE
6. Design Phase Phase 3 of the SDLC is
the Design phase. In this phase, the
team decides upon the building blocks
that will be used to build the app. The
architecture of the application is
decided. This includes decisions about
the application frameworks, database
software, and development of function
specifications. For a web app, this
includes web site design, and for a
mobile app, it includes screen layouts.
Server configurations are also finalized.
Decisions about programming language
may be made in the Design phase or
deferred until the Coding phase.
DESIGN PHASE
7. FIGURE 3.
THE FIRST 3 PHASES OF THE SDLC.
CASE STUDY
To understand the SDLC better, a case study approach is used to
demonstrate the use of the SDLC. Consider a local pizzeria that
needs to build a web app that allows its customers to place orders
for various types of pizzas that the pizzeria makes via a website. The
customer must be allowed to make payments via the web app and
specify the time that they will pick up the pizza.
FIGURE 4. Case study example.
8. Planning Phase
In this phase, there are 3 sets of people
involved. The first are the members of
the design team. They bring in technical
and software expertise. The customer is
the pizzeria, while the pizzeria’s
customers are those who place orders
for their product. These are the end-
users of the app. It is the responsibility
of both the design team and the pizzeria
team to correctly understand and
anticipate the requirements of the end-
users, the pizzeria’s customers. Using
focus groups of potential end-users will
help refine requirements. Many
questions must be answered in the
Analysis phase. These questions will
need be viewed by both the client and
the end-user. Answers to these
questions impact the design of the
application.
The requirements from the
customer are stated in
business terms. The Pizzeria’s
offerings (pizzas) and their
current mode of doing
business must be understood,
along with other information.
If feasibility studies and
costing estimates have
indicated that building the
app is a sound business
decision, the project moves
ahead.
The Design phase commences after the
Analysis phase has concluded. The Design
document contains various information
items along with clarifying details. The
Database Management Software is
selected, along with a design of the
database to hold information. Application
architecture is finalized. This includes
determining if cloud architecture will be
used or whether the Pizzeria will maintain
hardware. Decisions to create the frontend
from scratch or use a Content Management
system is made, and frameworks are
selected for the back end. In addition to
this high-level view, detailed documents are
created showing screen-shots of proposed
front-end views and functional
specifications for front-end logic and back-
end programs. These functional
specifications are implemented in the
Coding phase.
Analysis Phase Design Phase
9. FIGURE 5
. Customer requirement — Details. Many questions must be
answered in the Analysis phase. These questions will need be
viewed by both the client and the end-user. Answers to these
questions impact the design of the application.
10. FIGURE 6. High level Design
Document. Items to be finalized in
the Design phase.
FIGURE 7. Completed High-
level Design Document.
11. UNCOVERING
ADDITIONAL FACTS:
What Does SDLC Stand for?
This lesson discusses the Software Development
Lifecycle, abbreviated to SDLC. However, there is another
process that is also abbreviated to SDLC, and it is the
System Development Lifecycle. The System
Development Lifecycle is used as a tool to plan IT
projects, and it includes hardware and software. It is
considered a superset of the Software Development
Lifecycle.
FIGURE 8. Categories of SDLC Implementations.
In this section you will learn about the
various SDLC implementations and
understand how each implementation
allocates software development tasks
amongst team members.
SDLC Implementations The SDLC is a high-level model that depicts all the phases in a software development
effort. There are many implementations of the SDLC model. Though the steps in the SDLC model are universal,
they are implemented differently in each of the SDLC variants. SDLC Models can be classified by categories.
These categories are Predictive Models, Adaptive Models and Agile Models.
12. The oldest of these models is
the Predictive model. In this
model, the SDLC phases are
completed one after the
other, with no backward
movement. For example, the
Design Phase is completed
before the Coding Phase is
stared. If there needs to be a
change in the app’s design, it
cannot be incorporated once
the Coding phase has
commenced. This can lead to
the development of apps that
do not meet customer or end-
user needs.
Predictive Models
The Waterfall Model: The most popular
Predictive model, and one the earliest SDLC
implementations, is the Waterfall model. It is a
sequential model where a phase is started
only after the previous phase has been
completed. In this model, it is critical that
requirements be correctly and accurately
identified in the Analysis phase. Once the
Design phase starts, modifications cannot be
incorporated since the Waterfall model does
not permit backward phase movements. If a
project’s requirements are well defined, and
the scope of the project is small, the Waterfall
model can be used to successfully. System
design and Development is relatively easy, and
the scope and cost of the project can be
predicted early in the process. However, if the
project requirements are unclear and evolving,
the Waterfall model’s shortcomings become
very evident. It does not allow for an iterative
approach where changes are incorporated
continuously throughout the lifetime of the
development effort.
Waterfall Model
The second SDLC category is the
Adaptive Model. This is also
referred to as the Iterative Model.
Here, the app is built
incrementally. The first build
creates a small section of the
software that is functional and
useful. If it does not meet
customer requirements, it is
modified, and the process is
repeated till it is finalized, making
this an iterative process. Once a
section has been completed, the
next increment is developed. This
model allows for changes to be
made during the Coding phase,
and this leads to applications
that meet customer need more
closely than those built using
predictive models.
Adaptive Model
13. The third implementation of the SDLC is
the Agile model. In 2001, seventeen
software developers met in Snowbird,
Utah, and developed the Manifesto for
Agile Software Development, which is
commonly referred to as the Agile
Manifesto. This document did not contain
detailed implementation plans but placed
emphasis on an iterative approach to
software development. The premise was
that while tools and processes are
important, people and interactions are
more important. It incorporates elements
of the Adaptive model with emphasis on
speed of delivery of software. Agile
projects are implemented in small
increments by compact self-managed
teams. The Agile model does not believe
in designing the entire app before starting
the Coding phase. Instead, an incremental
and iterative approach is used.
The project is broken into smaller
pieces and each of these is
competed in small sections of
time. The customer is part of the
development process and provides
feedback each step of the way,
allowing for changes to be
incorporated as the app is being
built. In Agile, multiple iterations
are performed. An iteration can be
a re-working of existing code that
needs to be changed due to
changes in user requirements, or it
can mean the development of new
software modules. Each iteration
runs for a few weeks. However, the
Agile approach has its drawbacks.
Users must commit time towards
the development process, and it
can be difficult to predict costs for
the project.
Agile Model
The Scrum Model. One of the most
popular variations of the Agile
methodology is the Scrum Model. Scrum
emphasizes simplicity and frequent
interactions between developers and
customers. There are 3 main roles in a
Scrum project. The Product Owner is the
interface between the customer and the
development team. This person
assembles customer requirements,
referred to as stories, and places them in
the product backlog. The Scrum Master is
the person who ensures that the
development team can work without any
obstacles. Scrum teams are self-
organizing, and do not need a formal team
leader or project manager. Team members
self-select roles during the Coding phase
based upon their competencies. The
success of the Scrum methodology rests
upon the fact that team members feel
empowered to perform tasks that fits
Scrum Model
14. their skill set best. Scrum projects
are broken into smaller timeboxed
events called sprints. A sprint is a
development effort that lasts 3-4
weeks. A sprint starts with a sprint
planning meeting. At this meeting,
sprints are removed from the
product backlog and placed in the
sprint backlog. The Development
team begins coding and testing the
assigned sprint. Daily scrum
meetings are held at the start of
business day. The meeting is a
standing-only meeting which lasts
10-15 minutes, where the team
discusses their progress during the
previous day. Once a sprint is
completed, it is reviewed and
presented to the Product Owner. If
the Product owner accepts the
sprint, the sprint is ended, and it is
moved into production. A sprint
retrospective is also performed to
review the sprint completion
process to see if any lessons can be
learned from the process.
FIGURE 11.
Roles in a Scrum project.
FIGURE 12. Steps in a Sprint.