System Development Life Cycle
System Development Life Cycle
Cycle
What is SDLC?
System Coding
System Evaluation
Water-fall model
Spiral model
What is SDLC?
The Systems development life cycle (SDLC) - is a
process of creating or altering information systems and
the models and methodologies that people use to
develop these systems.
In software engineering, the SDLC concept underpins
many kinds of software development methodologies.
These methodologies form the framework for planning
and controlling the creation of an information system:
the software development process.
The SDLC is a process used by a systems analyst to
develop an information system.
Any SDLC should result in a high quality system that
meets customer expectations, reaches completion
within time and cost estimates
What is SDLC?
Computer systems are complex and often (especially
with the recent rise of service-oriented architecture)
link multiple traditional systems potentially supplied
by different software vendors.
To manage this level of complexity, a number of SDLC
models or methodologies have been created
Waterfall
Spiral
Agile software development
rapid prototyping
Incremental
SDLC models can be described along spectrum of
agile to iterative to sequential
What is SDLC?
SDLC Phases
Preliminary
Investigati
on
Maintenance Analysis
Implementatio
Design
n
Testing Coding
What is SDLC?
Following are the phases
1) Preliminary Investigation
Request clarification
Feasibility study – identify whether request is feasible
Carry out by small group of people
Typically have following types
Economically
Technically
operationally
Request approval
Approved by management
After that cost, priority, completion time, and
personnel requirements are estimated
What is SDLC?
Determination of requirement (Analysis)
Analyst works with employees and managers to
understand facts
Find out facts about existing system, takes opinion
of experts.
Analyze the information which is collected.
Defines project goals into defined functions
and operation of the intended application.
Analyzes end-user information needs.
Design
Describes desired features and operations in detail,
including screen layouts, business rules, process
diagrams, pseudo code and other documentation.
What is SDLC?
Development
The real code is written here.
Testing
checks for errors, bugs and interoperability
by using different methods.
Deployment or Implementation: The final
stage of initial development, where the
software is put into production and runs actual
business.
Maintenance: What happens during the rest of
the software's life: changes, correction,
additions, moves to a different computing
platform and more. This is often the longest of
the stages.
What is SDLC?
Limitations
Interaction with user is limited
The analytical tools like flowcharts, programs
are focus more with physical aspects than
logical aspects
It is difficult to change or maintain specification
Complete software development is only viewed
at the end.
Changes at the ends are very difficult to
incorporate, almost impossible.
System Analysis
Specifications
Requirements analysis is a software engineering task that bridges
the gap between system level requirements engineering and
software design.
Requirements engineering activities result in the specification of
software’s operational characteristics like function, data, and
behavior, indicate software's interface with other system
elements, and establish constraints that software must meet.
Requirements analysis allows the software engineer (sometimes
called analyst in this role) to refine the software allocation and
build models of the data, functional, and behavioral domains that
will be treated by software.
Requirements analysis provides the software designer with a
representation of information, function, and behavior that can be
translated to data, architectural, interface, and component-level
designs.
Finally, the requirements specification provides the developer and
the customer with the means to assess quality once software is
built.
System Analysis
Specifications
Software requirements analysis may be divided into
five areas of effort:
Problem recognition,
Evaluation and production,
Modeling,
Specification,
Review
System Analysis
Specifications
Initially, the analyst studies the System Specification
and the Software Project Plan.
It is important to understand software in a system
context and to review the software scope that was used
to generate planning estimates.
Next, communication for analysis must be established
so that problem recognition is ensured.
The goal is recognition of the basic problem elements as
perceived by the customer/users.
Problem evaluation and solution synthesis is the next
major area of effort for analysis.
The analyst must define all externally observable data
objects, evaluate the flow and content of information,
define and elaborate all software functions, understand
software behavior in the context of events that affect
the system, establish system
Requirements Anticipation
Requirement – is a condition or a capability that must be
met or possessed by software system, to satisfy contract,
standards, specification or other formally imposed
documents.
Anticipation means expectations towards the requirements
Find out thorough requirements
Requirements analysis is the process of understanding the
customer needs and expectations from a proposed system
or application and is a well-defined stage in the SDLC.
This mainly focus on discovering, refining, modeling and
specifying the requirements.
All the stakeholders play an active role in requirement
analysis.
Requirements Anticipation
It is conducted with following objectives:
Identify customers’ needs.
Evaluation of system with reference to feasibility
study.
To establish a basis for the creation of a software
design.
To define a set of requirements that can be
validated once the software is build.
Requirement analysis results in the specification of
software’s operational characteristics
It indicate software’s interface with other system
elements
Established constraints that software must meet.
Requirements Anticipation
It allows the analyst to elaborate on basic requirements
established during earlier requirement engineering tasks
and build models that depict user scenarios, functional
activities, problem classes and their relationships, data flow,
class and functional behavior.
Throughout analysis modeling, software designer focus on
what, not how.
Some design invariably occurs as part of analysis, and some
analysis will be conducted during design.
Analysis Rules of Thumbs
The model should focus on requirements that are visible
within the problem or business domain.
Each element of the analysis model should add to an
overall understanding of software requirements and
provides insights into the information domain.
Requirements Anticipation
Delay consideration of infrastructure and other
non-functional model until design
Minimize coupling throughout the system.
Be certain that the analysis model provides
value to all stakeholders.
Keep the model as simple as it can be.
Requirements Investigation
Heart of System Analysis.
Depends on Fact Finding Techniques and also
includes method for documenting & describing the
features of the system.
Fact-finding Technique:
The Specific method that analyst used for collecting
data about requirements are called as fact-finding
techniques.
Types of Fact-Finding Technique
1. Sampling of Existing Documentation, forms, files
2. Research and site visits
3. Observation of the work Environment
4. Questionnaires
5. Interviews
6. Discovery Prototyping
7. Joint Requirement Planning
Types of Fact-Finding
Technique
1) Sampling of Existing system documentation, forms, files
Study the Organization Chart
Interoffice environment, customer complaints & Reports that
focus on Problem area.
Accounting Records, performance & operating reports.
IS project request past & future
Company’s strategic Plan
Objective of organization
Policy manuals
Standard Operating Procedure, job outline for day to day
operations
Forms, Samples of Manuals& Computerized database,
reports & Screens.
Types of Fact-Finding Technique
Various types of Flowcharts and Diagrams
Project Dictionaries
Design Documentation Related to Input, Output & Database
Program Documentation
Computer Operation Manuals & Training Manuals
2) Research & Site Visits
Focus On Problem Domain
Site visits(Other Organization/Departments)
Saves time & cost in Development Process
Computer Journals & Reference Books
From Environment
Intranet, Internet
Types of Fact-Finding Technique
3) Observation
Most Effective data collection technique
System analysts become observer
Observe People & activities to learn about system
Allow system Analyst to do work measurements
the analyst himself visits the organization and
observes and understand the flow of documents,
working of the existing system, the users of the
system etc.
Able to see exactly what is being done
Inexpensive
Types of Fact-Finding Technique
4) Questionnaires
Questionnaire is a special purpose document that allow system
analyst to collect information & opinion from Respondents.
Allow analyst to collect facts from large number of peoples.
This method can be adopted and used only by an skillful
analyst.
The Questionnaire consists of series of questions framed
together in logical manner.
The questions are simple, clear and to the point. This method
is very useful for attaining information from people who are
concerned with the usage of the system and who are living in
different countries. The questionnaire can be mailed or send to
people by post.
This is the cheapest source of fact finding.
Types of Fact-Finding Technique
2) Fixed Format
It contain questions that require selecting answers
from predefined set.
Respondent cant give additional information.
May be Multiple choice questions (Yes/No)
May be Rating questions(Agree/Not Agree/No
opinion)
May be Ranking Questions(Given several answers
which are ranked in order)
Types of Fact-Finding Technique
5) Interviews
Interview is a fact-finding technique whereby the system analyst
collect information from individuals through fact to face
interaction.
This method is used to collect the information from groups or
individuals.
Analyst selects the people who are related with the system for
the interview.
In this method the analyst sits face to face with the people and
records their responses.
The interviewer must plan in advance the type of questions he/
she is going to ask and should be ready to answer any type of
question.
He should also choose a suitable place and time which will be
comfortable for the respondent.
Types of Fact-Finding
Technique
The information collected is quite accurate and reliable
as the interviewer can clear and cross check the doubts
there itself.
This method also helps gap the areas of
misunderstandings and help to discuss about the future
problems.
Structured and unstructured are the two sub categories
of Interview.
Types of Fact-Finding Technique
Maintenance
Software maintenance is the modification of
a software product after delivery to correct
faults, to improve performance or other
attributes, or to adapt the product to a
modified environment
Maintainability metrics
Following are the maintainability metric
attribute
Problem recognition time
Administration delay time
Maintenance tools collection time
Problem analysis time
Change specification time
Active correction / modification time
Local testing time
Global testing time
Maintenance review time
Total recovery time
Problems in software maintenance
Environmental Resources
Software tools
Hardware
Network resources
Types of Maintenance and
maintenance cost
Following are the types of
maintenance
1. Corrective – which is required to correct
the bugs found in the software.
2. Adaptive – which is required to adapt to
the changed system requirements
3. Perfective – which is required to improve
the system, make it better.
4. Preventive – which is effected without
any specific requirements from the user
and which is done to prevent future
problems.
Types of Software Project Maintenance
1. Corrective maintenance:
This refers to modifications initiated by
defects (design errors , logic errors, and
coding errors) in the software.
design errors :
3. Perfective maintenance:
which is required to improve the system, make it better and more
better
or restructuring the software to improve change ability.
Perfective maintenance refer to enhancements : making the
product better, faster, smaller, better documented, with more
functions or report
Types of Software
Project Maintenance
Preventive (Protective) maintenance:
which is effected without any specific requirements from the user
and which is done to prevent future problems.
Types of S/w Project Maintenance
System Evaluation
Actual use of software.
Uses real data of the business.
Waterfall Model
Waterfall model sometimes called classic life-cycle.
It is introduced in 1970 by W. W. Royce
it is oldest paradigm of software development of SE.
A systematic sequential approach to software
development that begins with customer specification of
requirements and progresses through planning,
modeling, construction and deployment and sometimes
on-going support of the completed software.
Phases in waterfall model
1) Requirements – project initiation and requirement
gathering
2) Design – analysis and design
3) Implementation - coding
4) Verification – testing
5) Deployment-delivery
6) Maintenance-support and feedback
Waterfall Model
Waterfall model
Problems with the model
1) Real projects rarely follow the sequential flow
that the model proposes. Changes can cause
confusion as the project team proceeds.
2) It is often difficult for the customer to state all
requirements in details. This model requires at
the initial stages.
3) The customer must have a patience. A working
version not be available until late in the project
time span.
4) Some times leads into “blocking stage” and can
not exceeds until previous work completes.
Spiral model
Advantages
1. Faster software production through
involvement of the relevant stakeholders
2. Cheaper software via rework and
maintenance reduction.