Design for Reliability - Applications in Software
“...Structured approach to Predictive Product Performance & Reliability"
(A Three Day Workshop)

Register Online

Workshop Overview

Software reliability engineering is a fast growing field. More than 60% of mission critical applications are dependent on software.
The complexity of business software application is also increasing. Customers need products with high performance that can be
sustained over time.
Due to high cost of fixing failures, safety concerns, and legal liabilities organizations need to produce software that is reliable.
There are several methodologies to develop software but questions that need to be addressed are how many times will the
software fail and when, how to estimate testing effort, when to stop testing and when to release the software.
Also, for a software product we need to predict / estimate the maintenance effort for example, how long must the warranty
period must be, once the software is released, how many defects can be expected at what severity levels, how many engineers are
required to support the product, for how long etc.

Software reliability engineering addresses all these issues, from design to testing to maintenance phases.

Workshop Motivation

“Reliability cannot be just be tested-in, it has to be designed in”

Objectives of Software Reliability Engineering

  • Understanding the importance of software reliability
    • Why focus on software reliability?
    • How is it different from hardware reliability?
  • Get familiarized to the concept of design for reliability
  • Learning the methodology of software design for reliability
  • Establishing system reliability goals
    • Establishing reliability allocation to subsystems or modules
    • Design techniques to design-in reliability in software
  • Software reliability modeling to predict
    • When should we stop testing?
  • How many defects will escape to the customer?

‘Design for Reliability' Applicability to Software

Addresses:

  • How to move from “Tested-in” to “Designed-in” reliability
  • Building credibility to the immediate and ultimate customer, thereby giving a competitive edge to the business and grow revenues
  • Reliability concerns upfront in the early phases of design because the cost of improving reliability in the later phases of product lifecycle is very high
  • Reducing the service and warranty costs of the product

Workshop Andragogy

Courseware Coverage
The workshop is designed & developed by senior consultants who have been coaches & change leaders for reputed organizations,
having experience of teaching & mentoring several hundred System Analysts, Design Engineers, Software Engineers, & Quality
Professionals. The courseware is up to date linking with latest industry trends & practices in the software engineering domain.

Workshop Delivery

The workshop is a mix of concepts, examples, mini-case studies and exercises designed to enable the participants learn by doing it
themselves. The courseware consists of textual material, examples, hands on mini-cases & class exercises, templates, and software tools.

Pace
While this accelerated approach imparts enough knowledge to the participant on concepts, it also provides chances for hands-on
exposure and ample opportunity to interact with class & peers from industry

Workshop Contents

Detailed Table of Contents: 3 DAY SCHEDULE

S.No.

Module

Topic

Day

1

Introduction

Module I: Introduction to Basics of Software Reliability Engineering

DAY 1

1.2

Learning Objectives

1.3

Reliability Definition

1.4

Software Reliability Definition

1.5

Software Reliability Engineering

1.6

Why Reliability Consideration?

1.6.1

Benefits to the Business

1.6.2

Mission Critical Applications

1.6.3

Cost of Defect in SDLC

1.6.4

Software Development Costs

1.6.5

Predicability in Design

1.7

Applications of Software Reliability Engineering

1.8

Software Vs Hardware Reliability

1.9

Reliability Terminology

1.9.1

Failure, Fault, Defect

1.9.2

Failure Rate / Failure Intensity

1.9.3

Instantaneous Failure Rate

1.9.4

Mean Life, MTBF, MTTF, MTTR, BX Life

1.9.5

Failure Severity Classes

1.9.6

Reliability Function

1.9.7

Failure Intensity Vs Reliability

1.9.8

Failure Intensity Vs MTTF

1.9.9

Availability

1.9.10

Availability Vs Failure Intensity

1.9.11

Reliability Formulas

1.10

The Classical Bathtub Curve

1.11

Bathtub Curve for Software

1.12

Software Design for Reliability Process

1.13

Summary of Module I

1.14

Additional Sources of Information

2

Reliability Goals

Module II: How to Define Reliability Goals

2.1

Learning Objectives

2.2

Define Failures

2.3

Select the Right Metric

2.4

Techniques to Define Reliability Goals

2.5

Derive from Overall System

2.6

Good Reliability Goal

2.7

Reliability Baseline Analysis

2.8

Summary of Module II

3

Operational Profiles

Module III: How to Develop Product Operational Profiles

DAY 2

3.1

Learning Objectives

3.2

Product Operational Profiles: Definition

3.3

Developing Product Operational Profile: Step by Step

3.3.1

Product Operational Profiles: Example

3.3.2

Product Operational Profile: Mini-Case

3.4

Summary of Module III

4

Reliability Allocation

Module IV: Reliability Allocation

4.1

Learning Objectives

4.2

System Reliability Block Diagram

4.2.1

System Reliability Block Diagram: Definition

4.2.2

Series Systems

4.2.3

Parallel Systems

4.3

Reliability Allocation to Subsystems

4.3.1

Reliability Allocation: Definition

4.3.2

Reliability Allocation: Example (Basic Allocation Method)

4.3.3

Reliability Allocation: Advanced Method

4.3.3.1

Effect of one factor

4.3.3.2

Effect of two factors

4.4

Summary of Module IV

5

Design Techniques

Module V: Software Reliability Design Techniques

5.1

Learning Objectives

5.2

Dependability of Software Systems

5.3

Traditional Approach for Defect Resolution

5.4

Failure Mode & Effect Analysis

5.4.1

FMEA: Definition

5.4.2

Inputs and Outputs of FMEA

5.4.3

Failure Mode & Effect Analysis: Step-by-Step

5.4.4

Further Notes on FMEA

5.5

Fault Tree Analysis

5.5.1

Fault Tree Analysis: Definition

5.5.2

Fault Tree Analysis: Step-by-Step

5.5.3

Fault Tree Analysis: Example

5.6

Summary of Module V

6

Risk Mitigation

Module VI: Risk Mitigation

6.1

Learning Objectives

6.2

Retire Risks & Update FMEA

6.3

Introducing Mean Cost of Failure

6.3.1

Mean Cost of Failure: Definition

6.3.2

Mean Cost of Failure: Method

6.3.3

System Mean Cost of Failure

6.4

Reliability Vs Availability

6.4.1

Availability Examples

6.5

Summary of Module VI

7

Reliability Testing

Module VII: Software Reliability Testing Techniques

DAY 3

7.1

Learning Objectives

7.2

Introduction to Reliability Testing

7.2.1

Reliability Testing: Definition

7.2.2

Types of Reliability Testing

7.2.3

Common Types of Software Testing

7.3

Developing Reliability Testing Protocol

7.3.1

Inputs to Software Testing

7.3.2

Test Case: Definition

7.3.3

How to Develop Test Cases: Orthogonal Arrays

7.4

Reliability Growth Testing: Definition

7.5

Reliability Growth Testing: Estimating Test Effort

7.5.1

Reliability Growth Testing: Example 1

7.5.2

Reliability Growth Testing: Example 2

7.6

Using Product Operational Profile for Reliability Testing

7.7

Accelerated Life Testing: Definition

7.8

Accelerated Life Testing: Method

7.9

Reliability Demonstration Testing: Definition

7.10

Summary of Module VII

8

Making Decisions

Module VIII: Applying Failure Data to Make Decisions

8.1

Learning Objectives

8.2

Data Gathering - Types of Data

8.2.1

Software Reliability Measurement

8.2.2

Calendar Time Vs Execution Time

8.2.3

Types of Data to Collect

8.2.4

Failure Data Trend Analysis

8.2.5

Data Collection: Examples

8.2.6

Sources of Fault

8.2.7

Sources of Failure Data

8.3

Getting Familiarized with Reliability Analysis Tool

8.3.1

About the Analysis Tool

8.3.2

Data Entry into the Tool

8.3.3

Model Applicability Analysis: Selection of Model

8.3.3.1

Model Applicability Analysis: Results

8.3.3.2

Model Applicability Analysis: Plots

8.3.4

Reliability Predictions Using the Model

8.3.5

Other ways of Data Entry (For Reference)

8.4

Other Software Reliability Analysis Tools

8.5

Making Decisions Based on Data

8.5.1

Types of Decisions to be Made

8.5.2

Reliability Demonstration Chart

8.5.3

When is Testing Enough

8.6

Summary of Module VIII


Who should attend

The target audiences for this course are software design and development professionals and testing professionals who may not have any previous background in software reliability engineering.
Following people can attend this course:

  • Project Managers
  • Reliability Engineers
  • Systems Engineers
  • Software Engineers
  • Testing Engineers

Workshop Deliverables

  • Two days of classroom coaching
  • Hard copy of courseware, examples, mini-cases, class exercises & solutions
  • Soft copy of templates & tools
  • Hands-on experience in software design for reliability approach and application of statistical modeling to the software reliability
  • Opportunity to learn and interact & learn from peers in the industry

What to Bring to the Class

Laptop Computer with

  • Microsoft® Office Tools such as Excel®, Power Point®, Word®
  • CD ROM Drive (To Install Software Tools & Templates)
 

Overview

List of courses

Calendar

How Do I register

Training request form

QAI e-school

Clients
 


Linking Design for Software Reliability to Design for Six Sigma

Design for reliability is an essential subset of Design for Six Sigma or the DMADOV process. The Six Sigma performance that is consistent over time results in the maximum customer satisfaction.

- Reliability consideration is a must for product design in DFSS process
- Reliability goals are included with the performance goals in the design process
- Prediction of the system reliability along with performance parameters
- Optimization and robust design to meet system performance and reliability goals

HOME | CONTACT | ABOUT US | CLIENTS | JOIN US | NEWSROOM