You are on page 1of 28

sdlc

DEFINITION
It is the set of activities that analysis,design and implement information system. The steps are parellel,iterative(repeat) and should be followed in sequence.

STEPS INVOLVED IN SOFTWARE DEVELOPMENT LIFE CYCLE(SDLC)


Preject identification and selection Project initialisation and planning Requirement anaysis Design Coding Testing Implementation Maintainance

PROJECT IDENTIFICATION AND SELECTION


This identifies the need for a new system or enhance system. Information need of an organisation as whole are examined and project to meet these needs are identified. Mainly three steps are involved in this: Request clarification:-many of the request is not clearly defined hence it becomes necessary to examine

Continue
them before considering them for system investigation.

2. Feasibility study:- a project has to be


feasible in 3 respect which are technical,economical and operational. 3.Request approval:-It is not necessary that all products are feasible,only few of them are approval on the basis of cost,completion

time and requirements.

PROJECT INITIALISATION AND PLANNING


1. The two major activities in this step are formal investigation of system problem and presentation of reasons why the system should make the project. 2. A critical step at this point is to determine the scope of the proposal project.

REQUIREMENT ANALYSIS
Depending on the result of initial investigation,the survey is expanded to more detailed feasibility study. It consist of following steps: Statement of problem.
Recommendation. Details. Conclusion.

DESIGN
The most creative and challenging task is designing. It deals with transforming the customer requirement into a logical system. Design activities are broadly classified into 2 parts: Preliminary design Detailed design

CODING
The input to the coding phase is the design document. During this different modules are identified in the design document and are coded according to their specification. Good coding standard enhances understanding and good programming practices.

SOFTWARE TESTING
It is the process of executing the program with the intension of finding errors. Testing a program consist of providing with a set of inputs and observing the behaviour of the program as per the user requirement. If it is fail tobehave as per expectations,the condition under which failure is occurred are noted for correction.

TYPES OF TESTING
1. Unit testing:
Individual (stand-alone) components are tested to ensure that they operate correctly.

2. Module testing:
A collection of related components (a module) is tested as a group.

3. Sub-system testing:
The phase tests a set of modules integrated as a subsystem. Since the most common problems in large systems arise from sub-system interface mismatches, this phase focuses on testing these interfaces.

Continue
4. System testing:
This phase concentrates on (i) detecting errors resulting from unexpected interactions between sub-systems, and (ii) validating that the complete systems fulfils functional and non-functional requirements.

5. Acceptance testing (alpha/beta testing):


The system is tested with real rather than simulated data.

Testing is iterative! Regression testing is performed when defects are repaired.

Continue
Regression testing means testing that everything that used to work still works after changes are made to the system! tests must be deterministic and repeatable should test all functionality
every interface all boundary situations every feature every line of code everything that can conceivably go wrong!

TEST PLANNING
The preparation of the test plan should begin when the system requirements are formulated, and the plan should be developed in detail as the software is designed.

Continue
The plan should be revised regularly, and tests should be repeated and extended where the software process iterates. Testing finds the existence of defects. Testing should be planned. Testing should begin in small and progress toward large volume of testing. For a effective testing,the testing is done ny third party.

TOP DOWN TESTING


Start with sub-systems, where modules are represented by stubs Similarly test modules, representing functions as stubs Coding and testing are carried out as a single activity Design errors can be detected early on, avoiding expensive redesign Always have a running (if limited) system! BUT: may be impractical for stubs to simulate complex components

Continue
Start by testing units and modules Test drivers must be written to exercise lower-level components Works well for reusable components to be shared with other projects BUT: pure bottom-up testing will not uncover architectural faults till late in the software process

Roadmap
Reliability, Failures and Faults Fault Avoidance Fault Tolerance Verification and Validation The Testing process
Black box testing White box testing Statistical testing

FUNCTIONAL(BLACK BOX TESTING)


Functional box treats a component as a black box whose behaviour Can be determined By stusying inputs And outputs.

Structural (white box) Testing


Structural testing treats a component as a white box or glass box whose structure can be examined to generate test cases. Derive test cases to maximize coverage of that structure, yet minimize the number of test cases.

IMPLEMENTATION
Their are 3 types of implementation 1. Implementation of a computer system to replace a manual one. 2. Implementation of a new computer system to replace existing one. 3. Implementation of a modified application to replace existing one using same computer.

continue
This include following steps:1.Review of project plan and implement it. 2.Conversion of important files. 3.To conduct parallel processing. 4.To discontinue the older version. 5.User testing. 6.Plan for post implementation reviews.

MAINTAINANCE
This includes minor enhancement or corrections which appears late in the system operation. Ist maintainance is called corrective. 2nd maintainance is called adaptive. 3rd maintainance is called perfective. 4th maintainance is called preventive.

continue
CORRUPTIVE:-It is used to repair coding and implementation. ADAPTIVE:-It is used to modify the system to the environmental changes. PERFECTIVE:-It is used to extend the capability of the system beyond those initially intend for the system. PREVENTIVE:-It involves making changes to the system to safeguarded from future problem.

Software reliability,failure & faults


The reliability of a software system is a measure of how well it provides the services expected by its users, expressed in terms of software failures.

A software failure is an execution event where the software behaves in an unexpected or undesirable way. A software fault is an erroneous portion of a software system which may cause failures to occur if it is run in a particular state, or with particular inputs.

KINDS OF FAILURES
FAILURE CLASS DESCRIPTION

transient permanent recoverable

Occurs only with certain inputs Occurs with all inputs System can recover without operator intervention Operator intervention is needed to recover from failure Failure does not corrupt data Failure corrupts system data

unrecoverable

Non-corruptive corruptive

Programming for Reliability


Fault avoidance: development techniques to reduce the number of faults in a system

Fault tolerance: developing programs that will operate despite the presence of faults

END OF SLIDES
THANK You. THANK YOU