Sunteți pe pagina 1din 36

System Development Life

Cycle
System Development Life Cycle

• An effective System Development Life Cycle (SDLC) should result in a


high quality system that meets customer expectations, reaches
completion within time and cost evaluations, and works effectively
and efficiently in the current and planned Information Technology
infrastructure.
• System Development Life Cycle (SDLC) is a conceptual model which
includes policies and procedures for developing or altering systems
throughout their life cycles.
• SDLC is used by analysts to develop an information system. SDLC
includes the following activities −
• requirements
• design
• implementation
• testing
• deployment
• operations
• maintenance
Phases of SDLC

• Systems Development
Life Cycle is a
systematic approach
which explicitly breaks
down the work into
phases that are
required to implement
either new or
modified Information
System.
• Feasibility Study or Planning
• Define the problem and scope of existing system.
• Overview the new system and determine its objectives.
• Confirm project feasibility and produce the project Schedule.
• During this phase, threats, constraints, integration and security of
system are also considered.
• A feasibility report for the entire project is created at the end of this
phase.
• Analysis and Specification
• Gather, analyze, and validate the information.
• Define the requirements and prototypes for new system.
• Evaluate the alternatives and prioritize the requirements.
• Examine the information needs of end-user and enhances the system
goal.
• A Software Requirement Specification (SRS) document, which
specifies the software, hardware, functional, and network
requirements of the system is prepared at the end of this phase
• System Design
• Includes the design of application, network, databases, user interfaces,
and system interfaces.
• Transform the SRS document into logical structure, which contains
detailed and complete set of specifications that can be implemented in a
programming language.
• Create a contingency, training, maintenance, and operation plan.
• Review the proposed design. Ensure that the final design must meet the
requirements stated in SRS document.
• Finally, prepare a design document which will be used during next phases.
• Implementation
• Implement the design into source code through coding.
• Combine all the modules together into training environment that
detects errors and defects.
• A test report which contains errors is prepared through test plan that
includes test related tasks such as test case generation, testing
criteria, and resource allocation for testing.
• Integrate the information system into its environment and install the
new system.
• Maintenance/Support
• Include all the activities such as phone support or physical on-site
support for users that is required once the system is installing.
• Implement the changes that software might undergo over a period of
time, or implement any new requirements after the software is
deployed at the customer location.
• It also includes handling the residual errors and resolve any issues that
may exist in the system even after the testing phase.
• Maintenance and support may be needed for a longer time for large
systems and for a short time for smaller systems.
Popular SDLC models

• One of the basic notions of the software development


process is SDLC models which stands for Software
Development Life Cycle models. 
• SDLC – is a continuous process, which starts from the
moment, when it’s made a decision to launch the project,
and it ends at the moment of its full remove from the
exploitation. 
• There is no one single SDLC model. They are divided into
main groups, each with its features and weaknesses.
• Evolving from the first and oldest “waterfall” SDLC model, their
variety significantly expanded.
• The SDLC models diversity is predetermined by the wide number of
product types – starting with a web application development to a
complex medical software.
• And if you take one of the SDLC models mentioned below as the basis
– in any case, it should be adjusted to the features of the product,
project, and company.
• The most used, popular and important SDLC models are given below:
• Waterfall model
• Iterative model
• Spiral model
• V-shaped model
• Agile model
Waterfall SDLC Model
• Waterfall – is a cascade SDLC model, in which development
process looks like the flow, moving step by step through the
phases of analysis, projecting, realization, testing,
implementation, and support.
• This SDLC model includes gradual execution of every stage
completely.
• This process is strictly documented and predefined with
features expected to every phase of this software
development life cycle model.
ADVANTAGES DISADVANTAGES
Simple to use and understand The software is ready only after the last
stage is over
Management simplicity thanks to its High risks and uncertainty
rigidity: every phase has a defined result
and process review
Development stages go one by one Not the best choice for complex and
object-oriented projects
Perfect for the small or mid-sized projects Inappropriate for the long-term projects
where requirements are clear and not
equivocal
Easy to determine the key points in the The progress of the stage is hard to
development cycle measure while it is still in the development

Easy to classify and prioritize tasks Integration is done at the very end, which
does not give the option of identifying the
problem in advance
• Use cases for the Waterfall SDLC model:
• The requirements are precisely documented
• Product definition is stable
• The technologies stack is predefined which makes it not dynamic
• No ambiguous requirements
• The project is short
Iterative SDLC Model
• The Iterative SDLC model does not need the full list of requirements
before the project starts.
• The development process may start with the requirements to the
functional part, which can be expanded later.
• The process is repetitive, allowing to make new versions of the product
for every cycle.
• Every iteration (which last from two to six weeks) includes the
development of a separate component of the system, and after that,
this component is added to the functional developed earlier.
• Speaking with math terminology, the iterative model is a realization of
the sequential approximation method; that means a gradual closeness
to the planned final product shape.
ADVANTAGES DISADVANTAGES
Some functions can be quickly developed at the Iterative model requires more resources than the
beginning of the development lifecycle waterfall model

The paralleled development can be applied Constant management is required

The progress is easy measurable Issues with architecture or design may occur
because not all the requirements are foreseen
during the short planning stage

The shorter iteration is - the easier testing and Bad choice for the small projects
debugging stages are
It is easier to control the risks as high-risk tasks The process is difficult to manage
are completed first
Problems and risks defined within one iteration The risks may not be completely determined
can be prevented in the next sprints even at the final stage of the project

Flexibility and readiness to the changes in the Risks analysis requires involvement of the highly-
requirements qualified specialists
• Use cases for the Iteration model:
• The requirements to the final product are strictly predefined
• Applied to the large-scale projects
• The main task is predefined, but the details may advance with the
time
Spiral SDLC Model
• Spiral model – is SDLC model, which combines architecture and prototyping by
stages.
• It is a combination of the Iterative and Waterfall SDLC models with the significant
accent on the risk analysis.
• The main issue of the spiral model – is defining the right moment to make a step
into the next stage.
• The preliminary set time frames are recommended as the solution to this issue.
• The shift to the next stage is done according to the plan, even if the work on the
previous stage isn’t done yet.
• The plan is introduced basing on the statistic data, received during the previous
projects even from the personal developer’s experience.
ADVANTAGES DISADVANTAGES
Lifecycle is divided into small parts, and Can be quite expensive
if the risk concentration is higher, the
phase can be finished earlier to address
the treats

The development process is precisely The risk control demands involvement


documented yet scalable to the of the highly-skilled professionals
changes
The scalability allows to make changes Can be ineffective for the small projects
and add new functionality even at the
relatively late stages

The earlier working prototype is done - Big number of the intermediate stages
sooner users can point out the flaws requires excessive documentation
• Use cases for the Spiral model
• Customer isn’t sure about the requirements
• Major edits are expected during the development cycle
• The projects with mid or high-level risk, where it is important to
prevent these risks
• The new product that should be released in a few stages to have
enough of clients feedback
V-shaped SDLC Model
• V-shaped SDLC model is an expansion of classic waterfall
model and it’s based on associated test stage for the every
development stage.
• This is a very strict model and the next stage is started only
after the previous phase.
• This is also called “Validation and verification” model.
• Every stage has the current process control, to make sure
that the conversion to the next stage is possible.
ADVANTAGES DISADVANTAGES

Every stage of V-shaped model Lack of the flexibility


has strict results so it’s easy to
control

Testing and verification take place Bad choice for the small projects
in the early stages

Good for the small projects, Relatively big risks


where requirements are static
and clear
• Use cases for the V-shaped model:
• For the projects where an accurate product testing is required
• For the small and mid-sized projects, where requirements are strictly
predefined
• The engineers of the required qualification, especially testers, are
within easy reach.
Agile SDLC Model
• In the agile methodology after every development iteration, the
customer is able to see the result and understand if he is satisfied
with it or he is not.
• This is one of the advantages of the agile software development life
cycle model.
• One of its disadvantages is that with the absence of defined
requirements it is difficult to estimate the resources and development
cost.
• Extreme programming is one of the practical use of the agile model.
• The basis of such model consists of short weekly meetings – Sprints
which are the part of the Scrum approach.
ADVANTAGES DISADVANTAGES
Corrections of functional requirements Difficulties with measuring the final
are implemented into the cost because of permanent changes
development process to provide the
competitiveness

Project is divided by short and The team should be highly professional


transparent iterations and client-oriented

Risks are minimized thanks to the New requirements may conflict with
flexible change process the existing architecture

Fast release of the first product version With all the corrections and changes
there is possibility that the project will
exceed expected time
• Use cases for the Agile model:
• The users’ needs change dynamically
• Less price for the changes implemented because of the many
iterations
• Unlike the Waterfall model, it requires only initial planning to start the
project
• Why SDLC?
• Here, are prime reasons why SDLC is important for developing a software system.
• It offers a basis for project planning, scheduling, and estimating
• Provides a framework for a standard set of activities and deliverables
• It is a mechanism for project tracking and control
• Increases visibility of project planning to all involved stakeholders of the
development process
• Increased and enhance development speed
• Improved client relations
• Helps you to decrease project risk and project management plan overhead
• The SDLC is a systematic process for building software that ensures the quality and correctness of the software built
• The full form SDLC is Software Development Lifecycle.
• SDLC process provides a framework for a standard set of activities and deliverables
• Seven different SDLC stages are 1) Requirement collection and analysis 2) Feasibility study: 3) Design 4) Coding 5) Testing: 6)
Installation/Deployment and 7) Maintenance
• The senior team members conduct the requirement analysis phase
• Feasibility Study stage includes everything which should be designed and developed during the project life cycle
• In the Design phase, the system and software design documents are prepared as per the requirement specification document
• In the coding phase, developers start build the entire system by writing code using the chosen programming language
• Testing is the next phase which is conducted to verify that the entire application works according to the customer requirement.
• Installation and deployment face begins when the software testing phase is over, and no bugs or errors left in the system
• Bug fixing, upgrade, and engagement actions covered in the maintenance face
• Waterfall, Incremental, Agile, V model, Spiral, Big Bang are some of the popular SDLC models
• SDLC consists of a detailed plan which explains how to plan, build, and maintain specific software
• Here, are some most important phases of SDLC life cycle:
• Waterfall model
• The waterfall is a widely accepted SDLC model. In this approach, the whole process of the software development is divided into
various phases. In this SDLC model, the outcome of one phase acts as the input for the next phase.
• This SDLC model is documentation-intensive, with earlier phases documenting what need be performed in the subsequent phases.
• Incremental Approach
• The incremental model is not a separate model. It is essentially a series of waterfall cycles. The requirements are divided into groups
at the start of the project. For each group, the SDLC model is followed to develop software. The SDLC process is repeated, with each
release adding more functionality until all requirements are met. In this method, every cycle act as the maintenance phase for the
previous software release. Modification to the incremental model allows development cycles to overlap. After that subsequent cycle
may begin before the previous cycle is complete.
• V-Model
• In this type of SDLC model testing and the development, the phase is planned in parallel. So, there are verification phases on the side
and the validation phase on the other side. V-Model joins by Coding phase.
• Agile Model
• Agile methodology is a practice which promotes continue interaction of development and testing during the SDLC process of any
project. In the Agile method, the entire project is divided into small incremental builds. All of these builds are provided in iterations,
and each iteration lasts from one to three weeks.
• Spiral Model
• The spiral model is a risk-driven process model. This SDLC model helps the team to adopt
elements of one or more process models like a waterfall, incremental, waterfall, etc.
• This model adopts the best features of the prototyping model and the waterfall model. The
spiral methodology is a combination of rapid prototyping and concurrency in design and
development activities.
• Big bang model
• Big bang model is focusing on all types of resources in software development and coding,
with no or very little planning. The requirements are understood and implemented when they
come.
• This model works best for small projects with smaller size development team which are
working together. It is also useful for academic software development projects. It is an ideal
model where requirements is either unknown or final release date is not given.

S-ar putea să vă placă și