99
Introduction to SDLC and SE Concepts Deloitte Consulting LLP New hire orientation program

SDLC and SE Concepts

Embed Size (px)

DESCRIPTION

Presentation on SDLC

Citation preview

Page 1: SDLC and SE Concepts

Introduction to SDLC and SE Concepts

Deloitte Consulting LLP

New hire orientation program

Page 2: SDLC and SE Concepts

- 2 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Timelines

Start time End time Session

9:00 AM 10:45 AM Introduction and getting started

10:45 AM 11:00 AM Tea break

11:00 AM 1:00 PM System development life cycle

1:00 PM 2:00 PM Lunch break

2:00 PM 3:45 PM Requirement engineering

3:45 PM 4:00 PM Tea break

4:00 PM 5:00 PM Testing techniques

5:00 PM 6:00 PM Configuration management

Page 3: SDLC and SE Concepts

Introduction to SDLC and SE

Concepts

Introduction and getting started

Deloitte Consulting LLP

Date : 6th July 2009

Page 4: SDLC and SE Concepts

- 4 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Software is the collection of.– Computer programs

– Procedures

– Rules

– Data

– Associated documentation

Software

Page 5: SDLC and SE Concepts

- 5 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

A set of activities performed to achieve a given purpose. Any specific combination of machines, tools, methods, materials, and/or people employed to attain specific qualities in a product or service.

For organization to improve its business, following are three critical dimensions:

A definition of process

Process is one of three quality leverage pointsPeople

Process Technology

Inputs Outputs

Page 6: SDLC and SE Concepts

- 6 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Establishment and use of sound engineering principles in order to obtain economically a software that is reliable and works efficiently on real machines (Bauer 69).

Application of science and mathematics by which capabilities of computer equipment are made useful to man via computer programs, procedures, and associated documentation (Boehm 81).

A systematic approach to the development, operation, maintenance, and retirement of a software (IEEE 87).

Application of a systematic, disciplined, and quantifiable approach to the development, operation, and maintenance of a software(IEEE93).

Software engineering

Page 7: SDLC and SE Concepts

- 7 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

High-quality product

At low cost

Goals of software engineering

Page 8: SDLC and SE Concepts

- 8 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Waterfall model

Prototyping model

Iterative enhancement model

Spiral model

Software development models

Page 9: SDLC and SE Concepts

- 9 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Sequential

Enforces complete requirements specification

Cannot proceed to the next phase till the current phase is over

Does not model the reality

Earliest availability of the working model — Midway through the project

Waterfall model

Page 10: SDLC and SE Concepts

- 10 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Do not wait for requirements Freeze. Build a prototype to understand requirements.

Prototype thrown away after requirements are understood.

Effective method to demonstrate the feasibility of a new concept.

Danger of mistaking the prototype as the real software.

Prototyping model

Page 11: SDLC and SE Concepts

- 11 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Software developed and delivered in increments.

Each increment adds some functionality.

At each step, enhancements based on client’s feedback analysis and design are carried out.

Iterative model

Page 12: SDLC and SE Concepts

- 12 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Risk driven

Iterative steps– Planning

– Risk analysis

– Development

– Customer evaluation

Provides early indication of risks

Requires high management skills

Spiral model

Page 13: SDLC and SE Concepts

- 13 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Part of a teamProgramming-in-the-largeDesign approaches

– OO, modules, etc.– Top-down/bottom-up

Translates requirements into specifications

Familiarity in multiple application areas

Converses with usersSees “big picture”Can model applicationGood communication and

interpersonal skills

Individual with good skillsProgramming-in-the-smallKnowledge on

– Data structures– Algorithms

Fluent in several programming languages

May lack formal trainingMinimal exposure to CS

Programmer versus software engineer

Page 14: SDLC and SE Concepts

- 14 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Coping with legacy systems, coping with increasing diversity, and coping with demands for reduced delivery times

Legacy systems– Old, valuable systems must be maintained and updated

Heterogeneity– Systems are distributed and include a mix of hardware and software

Delivery– There is increasing pressure for faster delivery of software

What are the key challenges facing software engineering?

Page 15: SDLC and SE Concepts

Q and A

Page 16: SDLC and SE Concepts

Introduction to SDLC and SE Concepts

SDLC – Jargon made easy

Deloitte Consulting LLP

Date : 6th July 2009

Page 17: SDLC and SE Concepts

Agenda

What is SDLC?

SDLC phases

SDLC models

SDLC key success factors

References

Summary

Q and A

Page 18: SDLC and SE Concepts

- 18 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

An acronym for system development life cycle.

A set of stages/phases that all information systems go through in their lifecycle.

A conceptual model used in system development.

What is SDLC?

Page 19: SDLC and SE Concepts

- 19 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

The generic phases of SDLC are:

Analysis

Design

Build/test

Deployment

Maintenance

SDLC phases

Page 20: SDLC and SE Concepts

- 20 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

SDLC phases (cont.)

ScopeBusiness

Requirements

Requirement

Specification

Product

Selection

Architecture

Master Test

Strategy

Proof of

Concept

DesignSpecification

Design Test

Cases

Deployment

Build

Execute Test

Build/test DeploymentAnalysis Design Maintenance

Maintenance

Page 21: SDLC and SE Concepts

- 21 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

The analysis phase involves:

Study the client’s current business processes and information systems.

Evaluate issues/problem areas that need to be addressed by the new system.

Gather/determine and structure the requirements.

Prepare requirements specification document (RSD).

Review the RSD.

Get sign-off from the authorized client personnel.

Analysis phase

Build/test DeploymentAnalysis Design Maintenance

Page 22: SDLC and SE Concepts

- 22 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

The design phase involves:

Designing the physical construction, hardware, operating systems, networking, communications, and security specifications.

Preparing the functional design document that focuses mainly on the business processes/aspects of the system.

Preparing the technical design document that is based on the functional design and provides detailed technical specifications that should be followed during the construction phase.

Prepare unit test plans/scripts (UTPS).

Review the functional design and technical design documents.

Get sign-off from the authorized client personnel.

Design phase

Build/test DeploymentAnalysis Design Maintenance

Page 23: SDLC and SE Concepts

- 23 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

The build activities involve:

Installation of hardware, operating system, etc.

Develop code based on the technical design.

Perform unit testing of the code using the UTPS.

Closure of unit testing findings.

The testing activities involve:

Prepare the system test plan/scripts for testing the new system.

Complete system testing and integration testing.

Close the findings from system testing and integration testing.

Complete user acceptance testing.

Close the findings from user acceptance testing.

Get sign-off on the system from authorized client personnel.

Build/test phase

Build/test DeploymentAnalysis Design Maintenance

Page 24: SDLC and SE Concepts

- 24 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

The deployment phase involves:

Ensure the required hardware, software, network, etc., are setup.

Train the users on using the new system.

Deploy the newly developed system.

Release the new system to client users for use.

Monitor the performance of new system.

Help the users to increase their comfort level in using the new system.

Deployment phase

Build/test DeploymentAnalysis Design Maintenance

Page 25: SDLC and SE Concepts

- 25 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

The maintenance phase involves:

Prepare and review the maintenance plan.

Get sign-off on the system from authorized client personnel.

Document the issues reported by users on the new system.

Design, build, test, and deploy the code changes for resolving these issues.

Make changes to accommodate changes in operating system, peripheral devices, etc.

Make changes to accommodate customer’s functional or performance enhancement requirements.

Maintenance phase

Build/test DeploymentAnalysis Design Maintenance

Page 26: SDLC and SE Concepts

- 26 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

The more popular SDLC models are:

The linear sequential model.

The prototyping model.

The rapid application development (RAD) model.

The following few slides explain each of these models.

SDLC models

Page 27: SDLC and SE Concepts

- 27 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

The linear sequential model

Is also called the “waterfall model” or the “classic life cycle model”.

Is a sequential approach to system development.

Progresses from one phase to another.

Has analysis, design, build/test, and deployment as the phases.

Is the oldest and most widely used model.

Linear sequential model

Build/test DeploymentAnalysis Design

Page 28: SDLC and SE Concepts

- 28 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Strengths

Oldest, widely used, and proven model.

More predictable and controllable project schedule.

Each phase proceeds in strict order and ensures all activities in previous phase are completed before moving to next phase.

High probability of delivering the system on time.

Weaknesses

Does not allow for revision or iteration. Not always feasible in real-time projects.

Sometimes is difficult for customers to clearly state all requirements.

Demands more patience from customers.

Adds a lot of waiting time for team members as they have to wait for the dependent tasks to be completed.

Linear sequential model (cont.)

Page 29: SDLC and SE Concepts

- 29 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Prototyping model

Customer test-drives prototype

Build/revise prototype

Listen to customer

Page 30: SDLC and SE Concepts

- 30 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

The prototyping model is adopted when

The customer has a generic set of objectives.

Detailed requirements are not identified.

Build a pilot system to give an idea to the customer.

Pilot system will further lead to detailed development life cycle.

Prototyping model (cont.)

Page 31: SDLC and SE Concepts

- 31 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Strengths

Serves as an effective mechanism for identifying requirements.

Iteration is possible and hence gives more flexibility.

Changing customer needs can be more effectively managed and hence provides better customer experience.

Adds comfort level to the client as the progress of the product is visible and they get a good idea of the final product.

Weaknesses

The initial prototype is not close to the final system. So, it may result in lot of rework.

Less/no focus on quality and hence may create more issues in the final system.

Prototyping model (cont.)

Page 32: SDLC and SE Concepts

- 32 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

RAD model

New systemNew

systemTeam 2

Team 3

Team 1

Modelling (business, data, and process)

Applicationgeneration

Testing and turnover

Page 33: SDLC and SE Concepts

- 33 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

The RAD model:

Is a linear sequential model that emphasizes extremely short development cycle.

Is a “high-speed” adaptation of waterfall model.

Achieves rapid development by using component-based approach.

Each component/function is addressed by a separate team and all components are quickly integrated to form a whole system.

Has modeling, application generation, and testing and turnover as the phases.

Demands well-understood requirements and highly scalable scope.

RAD model (cont.)

Page 34: SDLC and SE Concepts

- 34 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Strengths

Extremely short development lifecycles.

Embraces Object Oriented (OO) programming which inherently fosters reusable software components.

Encourages use of readily available tools in the market to reduce the lifecycles.

Results in highly maintainable and scalable system.

Lesser time spent on testing and review activities.

Weaknesses

Very high resource requirements.

Demands full-time availability and high commitment from customers.

Not suitable for projects where the system cannot be properly modularized.

RAD model (cont.)

Page 35: SDLC and SE Concepts

- 35 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Planning and scheduling

Document reviews

Following development standards

Code reviews and walk-through

Configuration management (version control)

Issue tracking

Testing and defect prevention

Change management process

SDLC key success factors

Page 36: SDLC and SE Concepts

- 36 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Deloitte KX Portal – https://kx.deloitteresources.com/default.aspx

Deloitte Learning Center – https://www.deloittenet.com/dtlearning/default.asp

Books– ‘Software Engineering – A Practitioner’s Approach’ by Roger Pressman

– ‘Software Engineering Productivity Handbook’ by J. Kayes

– ‘Encyclopedia of Software Engineering’ by J. J. Marchiniak

Other Useful Links– http://www.lifecyclestep.com/0.0.0LifecycleStepHomepage.htm

– http://scitec.uwichill.edu.bb/cmp/online/cs22l/waterfall_model.htm

– http://courses.cs.vt.edu/csonline/SE/Lessons/Waterfall/

– http://www.business-esolutions.com/islm.htm

– http://searchvb.techtarget.com/sDefinition

– http://searchsmallbizit.techtarget.com/sDefinition/0,,sid44_gci214246,00.html

– http://www.cs.wm.edu/~coppit/csci780-fall2003/presentations/15-spiral-model.pdf

– http://searchvb.techtarget.com/sDefinition/0,,sid8_gci755347,00.html

– http://www.sei.cmu.edu/

References

Page 37: SDLC and SE Concepts

- 37 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Define SDLC

SDLC phases

SDLC models

Key success factors

References

Summary

Page 38: SDLC and SE Concepts

Q and A

Page 39: SDLC and SE Concepts

Introduction to SDLC and SE Concepts

Deloitte Consulting LLP

Date : 6th July 2009

Requirement engineering process

Page 40: SDLC and SE Concepts

Topics

Requirement engineering

Why requirement engineering?

Types of requirement

Users of requirement

Requirement Measure

Guidelines for writing requirement document

Requirement management flow

Page 41: SDLC and SE Concepts

- 41 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

The process of establishing the services that the customer requires from a system and the constraints under which it operates and is developed

The requirements themselves are the descriptions of the system services and constraints that are generated during the requirements engineering process

Phases of requirements in project life cycle– Obtain an understanding of requirements

– Obtain commitment to requirements

– Manage requirements changes

– Maintain bidirectional traceability of requirements

– Identify inconsistencies between project work and requirements

Requirement engineering

Page 42: SDLC and SE Concepts

- 42 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

User’s perception of requirement

Why requirement engineering

Page 43: SDLC and SE Concepts

- 43 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Designer’s perception of requirement

Why requirement engineering

Page 44: SDLC and SE Concepts

- 44 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Developer’s perception of requirement

Why requirement engineering

Page 45: SDLC and SE Concepts

- 45 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

User requirements– Statements in natural language, plus diagrams of the services the system

provides and its operational constraints. Written for customers

System requirements– A structured document setting out detailed descriptions of the system

services. Written as a contract between client and contractor

Software specification– A detailed software description, which can serve as a basis for a design or

implementation. Written for developers

Types of requirements — 1

Page 46: SDLC and SE Concepts

- 46 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Types of requirements — 1 (cont.)

Client managers System end users Client engineers Contractor managers System architects

System end users Client engineers System architects Software developers

Client engineers (perhaps) System architects Software developers

User requirements

Software design specification

System requirements

Page 47: SDLC and SE Concepts

- 47 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Functional requirements– Statements of services the system should provide, how the system should

react to particular inputs, and how the system should behave in particular situations

Nonfunctional requirements– constraints on the services or functions offered by the system, such as timing

constraints, constraints on the development process, standards, etc.

Domain requirements– Requirements that come from the application domain of the system and that

reflect characteristics of that domain

Types of requirements — 2

Page 48: SDLC and SE Concepts

- 48 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Different users of requirement document

Specify the requirements and read them to check that they meet their needs.

They specify changes to the requirementsSystem customers

Managers

System engineers

System test engineers

System maintenance engineers

Use the requirements document to plan a bid for the system and to plan the

system development process

Use the requirement to understand what system is to be developed

Use the requirement to develop validation tests for the system

Use the requirements to help understand the system and the relationships

between its parts

Page 49: SDLC and SE Concepts

- 49 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Requirements measures

Property Measure

Speed Processed transactions/second

User/even response time

Screen refresh time

Size Kilo bytes

Number of RAM chips

Ease of use Training time

Number of help frames

Reliability Meantime to failure

Probability of unavailability

Rate of failure occurrence

Availability

Robustness Time to restart after failure

Percentage of events causing failure

Probability of data corruption on failure

Portability Percentage of target dependent statements

Number of target systems

Page 50: SDLC and SE Concepts

- 50 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Invent a standard format and use it for all requirements

Use language in a consistent way. Use shall for mandatory requirements, should for desirable requirements

Use text highlighting to identify key parts of the requirement

Avoid the use of computer jargon

Specify external system behavior

Specify implementation constraints

Easy to change

Serve as reference tool for maintenance

Record forethought about the life cycle of the system i.e. predict changes

Characterize responses to unexpected events

Guidelines for writing requirements

Page 51: SDLC and SE Concepts

- 51 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Requirements document structure.– Introduction

– Glossary

– User requirements definition

– System architecture

– System requirements specification

– System models

– System evolution

– Appendices

– Index

Guidelines for writing requirements (cont.)

Page 52: SDLC and SE Concepts

- 52 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

RM process — Functional spec (FS) preparation

Alternative solutions (for decision making)

Create FS

For changes, refer to change control procedure

Review requirements

Input — Business requirement

Review FSSign off FSOutput — Baseline functional specs

Page 53: SDLC and SE Concepts

- 53 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

RM process — Technical spec (TS) preparation

Alternative solutions (for decision making)

Create TS and test cases

For changes, refer to change control procedure

Initial object review/requirements understanding

Input Functional spec Tech spec

review checklist

Review TS andtest cases

Sign off TS and test cases

Output Baseline

technical spec Baseline test

cases

Page 54: SDLC and SE Concepts

- 54 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Requirements management

Alternative solutions (for decision making)

Maintain configuration status report

For changes, refer to change control procedure

Requirements allocation and understanding

Input — Requirement document (FS/TS)

Prepare communication log/issue log

Receive response

Output — Reviewed FS/TS

Receive clarifications

Revised FS/TS

Page 55: SDLC and SE Concepts

- 55 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Software requirements

Software requirements in a nutshell

Business requirements

Vision and scope

User requirements

User casesFunctional requirements

Software requirements specification

System requirements

Constraints

Quality attributes

Other nonfunctional requirements

Page 56: SDLC and SE Concepts

- 56 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

User requirements should be written in natural language, tables and diagrams

System requirements are intended to communicate the functions that the system should provide

System requirements may be written in structured natural language, or in a formal language

A software requirements document is an agreed statement of the system requirements

Requirements set out what the system should do and define constraints on its operation and implementation

Functional requirements set out services the system should provideNonfunctional requirements constrain the system being developed or

the development processUser requirements are high-level statements of what the system

should do

Key points

Page 57: SDLC and SE Concepts

Q and A

Page 58: SDLC and SE Concepts

Introduction to SDLC and SE Concepts

Deloitte Consulting LLP

Date : 6th July 2009

Software testing techniques

Page 59: SDLC and SE Concepts

- 59 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Dijkstra “Testing can show the presence of bugs, but not their absence!”

Independent testing is a necessary, but not sufficient condition for trustworthiness.

Good testing is hard and occupies 20% of the schedule.

Poor testing can dominate 40% of the schedule.

Test to assure confidence in operation; not to find bugs.

Software testing

Page 60: SDLC and SE Concepts

- 60 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Various types of tests

Test phases

Un

it Te

st

Pa

cka

ge

d V

alid

atio

n/

Str

ing

Te

st

Sys

tem

Te

st

Inte

gra

tion

Te

st

Pe

rfo

rma

nce

Te

st

Op

era

tion

al T

est

Use

r Acc

ep

tan

ce T

est

De

plo

yme

nt T

est

Re

gre

ssio

n T

est

Sh

ake

ou

t Te

st

Err

or

Sce

na

rio T

est

Ad

-ho

c Te

st

Developmenttest phases Seven formal test phases

Supplementary test phases

Page 61: SDLC and SE Concepts

- 61 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Testing phases

Requirements specification

System specification

System design Detailed design

Acceptance testSystem

integration test Subsystem

integration test

Acceptance test plan

System integration test

plan

Subsystem integration test

plan

Module and unit code and tess

Service

Page 62: SDLC and SE Concepts

- 62 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Coverage based — All statements must be executed at least once

Fault based — Detect faults, artificially seed, and determine whether tests get at least X% of the faults

Error based — Focus on typical errors, such as boundary values (off by 1) or max elements in list

Black box — Function, specification based, test cases derived from specification

White box — Structure, program based, testing considering internal logical structure of the software

Stress based — No load, impulse, uniform, linear growth, exponential growth by 2’s

Testing approaches

Page 63: SDLC and SE Concepts

- 63 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Error — Human action producing incorrect result

Fault is a manifestation of an error in the code

Failure — A system anomaly, executing a fault induces a failure

Validation “The process of evaluating a system or component during or at the end of development process to determine whether it satisfies specified requirements”

Certification “The process of assuring that the solution solves the problem

Testing approaches (cont.)

Page 64: SDLC and SE Concepts

- 64 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Test process

Input Subset of input

Subset of input Execute

Expected output

Actual output Testresults

Execute

Program or doc

Prototype or model

Test strategy

Compare

Page 65: SDLC and SE Concepts

- 65 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Testing provokes failure behavior — A good strategy for fault detection, but does not inspire confidence

User wants failure free behavior — High reliability

Automatic recovery minimizes user doubts

Test team results can demoralize end users, so report only those impacting them

A project with no problems is in deep trouble

Fault detection versus confidence building

Page 66: SDLC and SE Concepts

- 66 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Review or inspection to check that all aspects of the system have been described– Scenarios with prospective users resulting in functional tests

Common errors in a specification:– Missing information

– Wrong information

– Extra information

Testing requirements

Page 67: SDLC and SE Concepts

- 67 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Features — Requirements relate to observable system/product features

Source — Source for each requirement

Dependency — Relation of requirements to each other

Subsystem — Requirements by subsystem

Interface requirements relation to internal and external interfaces

Traceability tables

Page 68: SDLC and SE Concepts

- 68 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Traceability table: Pressman

S01 S02 S03

R01 X

R02 X X

R03… XReq

uire

men

t

Subsystem

Page 69: SDLC and SE Concepts

- 69 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Test design document specifies for each software feature the details of the test approach and lists the associated tests.

Test case document lists inputs, expected outputs, and execution conditions.

Test procedure document lists the sequence of action in the testing process.

Test report states what happened for each test case. Sometimes, these are required as part of the contract for the system delivery.

In small projects many of these can be combined.

Test documentation

Page 70: SDLC and SE Concepts

- 70 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Reading — Peer reviews (best and worst technique)

Walk-through and inspections

Correctness proofs

Stepwise abstraction from code to specification

Human static testing

Page 71: SDLC and SE Concepts

- 71 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Sometimes referred to as Fagan inspections

Basically a team of about four folks examines code, statement by statement– Code is read before meeting

– Meeting is run by a moderator

– Two inspectors or readers paraphrase code

– Author is silent observer

– Code analyzed using checklist of faults: wrongful use of data, declaration, computation, relational expressions, control flow, and interfaces

Results in problems identified that author corrects and moderator re-inspects

Constructive attitude essential; do not use for programmer’s performance reviews

Inspections

Page 72: SDLC and SE Concepts

- 72 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Guided reading of code using test data to run a “simulation”

Generally less formal

Learning situation for new developers

Parnas advocates a review with specialized roles where the roles define questions asked - proven to be very effective reviews

Nondirective listening

Walk- through

Page 73: SDLC and SE Concepts

- 73 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Inspections can be 20 times more efficient than testing.

Code reading detects twice as many defects/hour as testing.

80% of development errors were found by inspections.

Inspections resulted in a 10 times reduction in cost of finding errors.

The value of inspections/walk-through (Humphrey 1989)

Page 74: SDLC and SE Concepts

- 74 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Top-down and Bottom-up (Humphrey 1989)

Bottom-up Top-down

Major features Allows early testing

Modules can be integrated in various clusters as desired

Major emphasis is on module functionality and performance

The control program is tested first

Modules are integrated one at a time

Major emphasis is on interface testing

Advantages No test stubs are needed

It is easier to adjust staffing needs

Errors in critical modules are found early

No test drivers are needed

The control program, plus a few modules forms a basic early prototype

Interface errors are discovered early

Modular features aid debugging

Disadvantages Test drivers and harness are needed

Many modules must be integrated before a working program is available

Interface errors are discovered late

Test stubs are needed

The extended early phases dictate a slow staff buildup

Errors in critical modules at low levels are found late

Page 75: SDLC and SE Concepts

- 75 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Testing GUIs

Testing with client/server architectures

Testing documentation and help facilities

Testing real-time systems

Acceptance test

Conformance test

Some specialized tests

Page 76: SDLC and SE Concepts

- 76 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Before you reuse software look below the surface.

Lack of functionality

No support

Hidden costs

Poor documentation

Poor performance

Vendor instability

Lessons learned

Page 77: SDLC and SE Concepts

- 77 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Customer interests

Features

Price

Schedule

Reliability

Response time

ThroughputInst

alla

tio

n

Before After

Page 78: SDLC and SE Concepts

- 78 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Why bad things happen to good systems

Customer buys off-the-shelf

System works with 40%-60% flow- through

Developers complies

with enhancements

Customer refuses critical billing module

Customer demands 33 enhancements and tinkers with database

Unintended system consequences

Bu

t

Page 79: SDLC and SE Concepts

Q and A

Page 80: SDLC and SE Concepts

- 80 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Introduction to SDLC and SE Concepts

Software configuration management

Deloitte Consulting LLP

Date : 6th July 2009

Page 81: SDLC and SE Concepts

- 81 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Definition:

A set of management disciplines within the software engineering process to develop a baseline.

Description:

Software configuration management encompasses the disciplines and techniques of initiating, evaluating, and controlling change to software products during and after the software engineering process.

What is software configuration management?

Page 82: SDLC and SE Concepts

- 82 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Multiple developers are working at the

same time...

What happened to this piece of code?

It worked yesterday!

How do I make sure that the right changes go into

the release?

What happened to the fix I added to

this code last week?

A bug, I cannot reproduce it.

Configuraiton management

How can I authorize access to the work

products?

Why configuration management ?

Problems

Page 83: SDLC and SE Concepts

- 83 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Functions in configuration management

Configurationmanagement

process

Plan and perform for configuration audit

Verify with physical CI's Report and closure of

audit

ControlStatus

accounting

Verification Identification

Planning

CI identification Base lining

Adding of new CI's Update CI attributes Control changes

CI status update CI status tracking CI status reporting

Scoping Procedure definition Roles and responsibility Directory structure and

access definition

Page 84: SDLC and SE Concepts

- 84 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Configurable Item (CI) – An aggregation of work products that is designated for configuration management and treated as a single entity in the configuration management process. Common CIs:– Process-related documentation (plans, standards, and procedures)

– Engineering documents and work products (requirements, design, code units, and test cases)

– Tools (compilers and other support tools)

– Receivables (customer- supplied items)

– System build for the software test activity or delivery

Baseline – Set of specifications or work product that has been formally reviewed and agreed upon. Baselines thereafter serve as the basis for further development and can be changed only through formal change control procedures.

Basic definitions

Page 85: SDLC and SE Concepts

- 85 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Naming convention – A unique identification given to each configuration item. Example – <project name>_<doc name>

Version – Version defines unique number and status of the document. – All the document shall be versioned as m.n. where m is the numeric starting

with 1, indicating release version numbers. n is numeric, starting with 0, indicating the minor version number.

– Once document gets released,versioning will be done on the basis of defined changes (major/minor).

Basic definitions (cont.)

Page 86: SDLC and SE Concepts

- 86 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

CI identification

Page 87: SDLC and SE Concepts

- 87 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

CI identification

Configuration identification step involves identification of:– CI to be controlled

– Categorization of CI

– Identification of controls for selected CI's

– Baseline of CI's if available

– Preparation of configuration register with CI details

Functions in configuration management (cont.)

Page 88: SDLC and SE Concepts

- 88 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Configuration control

Page 89: SDLC and SE Concepts

- 89 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Configuration change control – change management

Changes can be triggered by any one of the following:– Requirement change request

– Problem report

– Defect(s)

All change requests are logged in XD portal in case of EA projects. TI projects uses CR log for the same.

Impact analysis will be done using XD portal for EA projects and CR log for TI projects.

Functions in configuration management (cont.)

Page 90: SDLC and SE Concepts

- 90 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Functions in configuration management (cont.)

Approve CR (SCCB)

Rejected?Receive change

Request(PM)

Conduct impact analysis (TL/PM)

Close CR (TL/PM)

Plan for change Implementation

(PM)

No

Yes

Item already

configured?

Retrieve items (CM)

Verify change and update baseline

library (PM)

Update configuration status report/XD

portal

Monitor changeImplementation

(TL/PM)

Review/ test the change implementation

Yes

No

Yes

Send CR back to initiator (TL/PM)

Open deferred CR (TL/PM)

No

Label/version the artifact to be

delivered

Configuration change control – change management (flow)

Assign responsibilities to change the items affected

(PM)

Page 91: SDLC and SE Concepts

- 91 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Configuration change control – version control

Version number should reflect the impact of changes. There can be major or minor changes.

Major change– Change of complete text or major part of the text.

– Defining new responsibilities and activities.

Minor changes– Typographical errors.

– Incorrect reference to related documents.

– Addition/deletion of references.

– Change of sequence of activities, etc.

Functions in configuration management (cont.)

Page 92: SDLC and SE Concepts

- 92 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Software configuration management can be staffed in several ways:

A single team performs all software configuration management activities for the whole organization.

A separate configuration management team is set up for each project.

All the software configuration management activities are performed by the developers themselves.

Mixture of all of the above.

Managing software configurations

Page 93: SDLC and SE Concepts

- 93 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Bugs that have been corrected reappear.

Previous releases of software cannot be rebuilt.

Previous releases of software cannot be found.

Files get lost.

Files are “mysteriously” changed.

The same or similar code exists multiple times in different projects.

Two developers accidentally change the same file concurrently.

Symptoms of poor configuration management

Page 94: SDLC and SE Concepts

- 94 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

Benefits

Prevent unauthorized access to project work products

Coordinate, track, and manage change activities

Ability to deliver revisions, updates, and cross-platform versions faster

Less time wasted fixing old code

Confidence that each release addresses all the requested changes

Why configuration management ? (cont.)

Do configuration right, or forget about improving development process.

Page 95: SDLC and SE Concepts

- 95 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

What is a baseline?

Baseline – Set of specifications or work product that has been formally reviewed and agreed upon. Baselines thereafter serve as the basis for further development, and can be changed only through formal change control procedures.

Questions?

Page 96: SDLC and SE Concepts

- 96 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

List 5 examples of CI from software project?

PMP

TD

UTP

FSD

SRS

Questions?

Page 97: SDLC and SE Concepts

- 97 - Cam

pus_

Intr

oduc

tion

to S

DLC

and

SE

Con

cept

s.pp

tx

What is SCCB?

Software change/configuration control board

Questions?

Page 98: SDLC and SE Concepts

Q and A

Page 99: SDLC and SE Concepts

Copyright © 2008 Deloitte Development LLC. All rights reserved.