You are on page 1of 60

ELEC 001 - 1ST SEMESTER, TERM 2

SOFTWARE
DEVELOPMENT PROCESS
Lecture 03
#1
Objectives To define what is software development
process

#2
To describe the phases during the
software development phase

#3
To describe the various methods used in
the software development process
Definition

ELEC 001 - LECTURE 3-1


Software development
process
DEFINITION
A general term describing the over-arching process
of developing a software product.
Sometimes referred to as the software life cycle,
this process may be used for the implementation of
a single application or a far-reaching ERP
(enterprise resource planning) system.
Software development
process
DEFINITION
A division of software development work into
distinct phases (or stages) containing activities with
the intent of better planning and management. It is
often considered a subset of the systems
development life cycle.
The methodology may include the pre-definition of
specific deliverables and artifacts that are created
and completed by a project team to develop or
maintain an application.
Software development
life cycle
DEFINITION
A framework that defines the steps involved in the
development of software at each phase. It covers
the detailed plan for building, deploying and
maintaining the software.
This defines the complete cycle of development i.e.
all the tasks involved in planning, creating, testing,
and deploying a Software Product.
SDLC phases
PHASES INCLUDE THE FOLLOWING:
Requirements
Analysis and design
Implementation and coding
Documentation
Testing
Deployment, installation, and maintenance
Software development
phase
Requirements phase
In the requirements, we describe what the system
should do. The requirements include both
functional requirements and non-functional
requirements.
Requirements phase
THIS INCLUDES
Functional Requirements: Statements of services
the system should provide, how the system should
react to inputs and how the system should behave
in different situations. May state what the system
should not do.
In other words, any requirement which specifies
what the system should do.
Requirements phase
THIS INCLUDES
Non-Functional Requirements: Constraints on the
services or functions offered by the system such as
timing constraints, constraints on the development
process, standards, etc. Often apply to the system
rather than individual features or services.
In other words, any requirement that specifies how
the system performs a certain function.
Requirements phase
THIS INCLUDES
Software requirement specification (SRS)
document - a document that describes what the
software will do and how it will be expected to
perform. It also describes the functionality the
product needs to fulfill all stakeholders (business,
users) needs.
Design phase
In the design phase, we use the specification and
transform it into descriptions of how we should do
it.
In principle, requirements should state what the
system should do and the design should describe
how it does this – but in practice this is not so easy!
- In practice, requirements and design are
inseparable.
Design phase
MAIN GROUPS
Technical Design – Platform and Architecture
Design, i.e., how to build the software.
UX Design – Design of User eXperience (UX) and the
Graphical User Interface (GUI), sometimes also
called Human Machine Interface (HMI). This is what
the end user of the software sees.
Implementation phase
IMPLEMENTATION = CODING
Software is usually designed and created
(coded/written/programmed) in integrated
development environments (IDE).
Software is usually created on top of existing
software and the application programming
interface (API) that the underlying software
frameworks provide, e.g. Microsoft .NET, etc.
Most of the software has a Graphical User Interface
(GUI). Normally you separate the GUI design and
code in different layers or files.
Testing phase
Testing can be performed on different levels and by
different persons. Testing is a very important part of
software development. About 50% of the software
development is about testing your software.
Deployment phase
This includes the work necessary to deploy the final
solution into the target production environments.
Plus, creating guides for installation, system
operations, system administration, and end-user
functionality.
When the software is deployed, or installed, you
normally go into a Maintenance phase. The
maintenance of software involves bug fixes of the
software after the software is released, etc. At some
time, you also need to start planning new releases
of the software.
Software development
methods

ELEC 001 - LECTURE 3-2


Methods in software
development process
LIST OF KNOWN METHODS
Waterfall model
V-model
Spiral model
Unified Process (UP)/Rational Unified Process (RUP)
Scrum
Methods in software
development process
LIST OF KNOWN METHODS
eXtreme Programming (XP)
Lean Software Development
TDD (Test Driven Development)
Lean Software Development
Kanban
etc.
Methods in software
development process
CATEGORIES
Plan-driven - a software development method
which attempts to plan and develop all of the
features a user might want in the final product and
determines how all those features are to be
developed.
Waterfall
V-model
Spiral
Methods in software
development process
CATEGORIES
Agile - a type of development methodology that
anticipates the need for flexibility and applies a
level of pragmatism to the delivery of the finished
product.
Scrum
eXtreme Programming
Methods in software
development process
CATEGORIES
Agile - a type of development methodology that
anticipates the need for flexibility and applies a
level of pragmatism to the delivery of the finished
product.
Scrum
eXtreme Programming
Waterfall model
DEFINITION
It is also referred to as a linear-sequential life cycle
model. It is very simple to understand and use. In a
waterfall model, each phase must be completed
before the next phase can begin and there is no
overlapping in the phases.
Waterfall model
PHASES INCLUDE:
Waterfall model
PHASES INCLUDE:
Requirement gathering and analysis − All possible
requirements of the system to be developed are
captured in this phase and documented in a
requirement specification document.
System design − The requirement specifications
from first phase are studied in this phase and the
system design is prepared.
Waterfall model
PHASES INCLUDE:
Implementation − With inputs from the system
design, the system is first developed in small
programs called units, which are integrated in the
next phase. Each unit is developed and tested for
its functionality, which is referred to as Unit Testing.
Integration and Testing − All the units developed in
the implementation phase are integrated into a
system after testing of each unit. Post integration
the entire system is tested for any faults and
failures.
Waterfall model
PHASES INCLUDE:
Deployment of system − Once the functional and
non-functional testing is done; the product is
deployed in the customer environment or released
into the market.
Maintenance − There are some issues which come
up in the client environment. To fix those issues,
patches are released. Also to enhance the product
some better versions are released. Maintenance is
done to deliver these changes in the customer
environment.
Iterative model
DEFINITION
Iterative process starts with a simple
implementation of a small set of the software
requirements and iteratively enhances the evolving
versions until the complete system is implemented
and ready to be deployed.
Iterative model
PHASES INCLUDE:
Iterative model
PHASES INCLUDE:
Iterative and Incremental development is a
combination of both iterative design or iterative
method and incremental build model for
development. "During software development, more
than one iteration of the software development
cycle may be in progress at the same time." This
process may be described as an "evolutionary
acquisition" or "incremental build" approach."
Spiral model
DEFINITION
The spiral model combines the idea of iterative
development with the systematic, controlled
aspects of the waterfall model.
It allows incremental releases of the product or
incremental refinement through each iteration
around the spiral.
Spiral model
PHASES INCLUDE:
Spiral model
PHASES INCLUDE:
Identification - this phase starts with gathering the
business requirements in the baseline spiral. In the
subsequent spirals as the product matures,
identification of system requirements, subsystem
requirements and unit requirements are all done in
this phase.
Spiral model
PHASES INCLUDE:
Design - this phase starts with the conceptual
design in the baseline spiral and involves
architectural design, logical design of modules,
physical product design and the final design in the
subsequent spirals.
Spiral model
PHASES INCLUDE:
Construction or build - this phase refers to
production of the actual software product at every
spiral. In the baseline spiral, when the product is
just thought of and the design is being developed a
POC (Proof of Concept) is developed in this phase
to get customer feedback.
Spiral model
PHASES INCLUDE:
Evaluation and risk analysis - includes identifying,
estimating and monitoring the technical feasibility
and management risks, such as schedule slippage
and cost overrun.
After testing the build, at the end of first iteration,
the customer evaluates the software and provides
feedback.
V-model
DEFINTION
An SDLC model where execution of processes
happens in a sequential manner in a V-shape. It is
also known as Verification and Validation model.
The V-Model is an extension of the waterfall model
and is based on the association of a testing phase
for each corresponding development stage.
V-model
DEFINTION
An SDLC model where execution of processes
happens in a sequential manner in a V-shape. It is
also known as Verification and Validation model.
The V-Model is an extension of the waterfall model
and is based on the association of a testing phase
for each corresponding development stage.
V-model
PHASES INCLUDE:
V-model
VERIFICATION PHASE
Business requirement analysis - this is the first
phase in the development cycle where the product
requirements are understood from the customer’s
perspective.
This phase involves detailed communication with
the customer to understand his expectations and
exact requirement.
V-model
VERIFICATION PHASE
System design - this will have the understanding
and detailing the complete hardware and
communication setup for the product under
development.
The system test plan is developed based on the
system design.
V-model
VERIFICATION PHASE
Architectural design - architectural specifications
are understood and designed in this phase.
Usually more than one technical approach is
proposed and based on the technical and financial
feasibility the final decision is taken.
The system design is broken down further into
modules taking up different functionality.
V-model
VERIFICATION PHASE
Coding phase - the actual coding of the system
modules designed in the design phase is taken up
in the Coding phase. The best suitable
programming language is decided based on the
system and architectural requirements.
V-model
VALIDATION PHASE
Unit testing - these are designed in the module
design phase are executed on the code during this
validation phase.
This is the testing at code level and helps eliminate
bugs at an early stage, though all defects cannot be
uncovered by unit testing.
V-model
VALIDATION PHASE
Integration testing - this is associated with the
architectural design phase. Integration tests are
performed to test the coexistence and
communication of the internal modules within the
system.
V-model
VALIDATION PHASE
System testing - this is directly associated with the
system design phase.
System tests check the entire system functionality
and the communication of the system under
development with external systems.
Most of the software and hardware compatibility
issues can be uncovered during this system test
execution.
V-model
VALIDATION PHASE
Acceptance testing - this is associated with the
business requirement analysis phase and involves
testing the product in user environment.
Acceptance tests uncover the compatibility issues
with the other systems available in the user
environment.
It also discovers the non-functional issues such as
load and performance defects in the actual user
environment.
Big bang model
DEFINITION
An SDLC model where it does not follow any
specific process. The development just starts with
the required money and efforts as the input, and
the output is the software developed which may or
may not be based on customer requirement.
Big bang model
PHASES INCLUDE:
Agile model
DEFINITION
A combination of iterative and incremental process
models with focus on process adaptability and
customer satisfaction by rapid delivery of working
software product.
Agile Methods break the product into small
incremental builds. These builds are provided in
iterations. Each iteration typically lasts from about
one to three weeks.
Agile model
PHASES INCLUDE:
RAD model
DEFINITION
This is based on prototyping and iterative
development with no specific planning involved.
The process of writing the software itself involves
the planning required for developing the product.
This focuses on gathering customer requirements
through workshops or focus groups, early testing of
the prototypes by the customer using iterative
concept, reuse of the existing prototypes
(components), continuous integration and rapid
delivery.
RAD model
PHASES INCLUDE:
RAD model
PHASES INCLUDE:
Business modeling - the business model for the
product under development is designed in terms of
flow of information and the distribution of
information between various business channels.
A complete business analysis is performed to find
the vital information for business.
RAD model
PHASES INCLUDE:
Data modeling - the information gathered in the
Business Modelling phase is reviewed and analyzed
to form sets of data objects vital for the business.
The attributes of all data sets is identified and
defined. The relation between these data objects
are established and defined in detail in relevance to
the business model.
RAD model
PHASES INCLUDE:
Process modeling - the data object sets defined in
the Data Modelling phase are converted to
establish the business information flow needed to
achieve specific business objectives based on the
business model.
The process model for any changes or
enhancements to the data object sets is defined in
this phase.
RAD model
PHASES INCLUDE:
Application generation - The actual system is built
and coding is done by using automation tools to
convert process and data models into actual
prototypes.
Testing and turnover - The overall testing time is
reduced in the RAD model as the prototypes are
independently tested during every iteration.
However, the data flow and the interfaces between
all the components need to be thoroughly tested
with complete test coverage.
Scrum methodology
DEFINITION
This is used in the development of Software based
on an iterative and incremental processes.
Scrum is adaptable, fast, flexible and effective agile
framework that is designed to deliver value to the
customer throughout the development of the
project.
The primary objective of scrum is to satisfy the
customer’s need through an environment of
transparency in communication, collective
responsibility and continuous progress.
Get in Touch
Feel free to contact me if you have
any concerns

FACEBOOK
Ruel Rick Villegas Ranay

EMAIL #1
ruelrick.ranay@gmail.com

EMAIL #2
rranay@uic.edu.ph

You might also like