Accendo Reliability

Your Reliability Engineering Professional Development Site

  • Home
  • About
    • Contributors
  • Reliability.fm
    • Speaking Of Reliability
    • Rooted in Reliability: The Plant Performance Podcast
    • Quality during Design
    • Way of the Quality Warrior
    • Critical Talks
    • Dare to Know
    • Maintenance Disrupted
    • Metal Conversations
    • The Leadership Connection
    • Practical Reliability Podcast
    • Reliability Matters
    • Reliability it Matters
    • Maintenance Mavericks Podcast
    • Women in Maintenance
    • Accendo Reliability Webinar Series
  • Articles
    • CRE Preparation Notes
    • on Leadership & Career
      • Advanced Engineering Culture
      • Engineering Leadership
      • Managing in the 2000s
      • Product Development and Process Improvement
    • on Maintenance Reliability
      • Aasan Asset Management
      • AI & Predictive Maintenance
      • Asset Management in the Mining Industry
      • CMMS and Reliability
      • Conscious Asset
      • EAM & CMMS
      • Everyday RCM
      • History of Maintenance Management
      • Life Cycle Asset Management
      • Maintenance and Reliability
      • Maintenance Management
      • Plant Maintenance
      • Process Plant Reliability Engineering
      • ReliabilityXperience
      • RCM Blitz®
      • Rob’s Reliability Project
      • The Intelligent Transformer Blog
      • The People Side of Maintenance
      • The Reliability Mindset
    • on Product Reliability
      • Accelerated Reliability
      • Achieving the Benefits of Reliability
      • Apex Ridge
      • Metals Engineering and Product Reliability
      • Musings on Reliability and Maintenance Topics
      • Product Validation
      • Reliability Engineering Insights
      • Reliability in Emerging Technology
    • on Risk & Safety
      • CERM® Risk Insights
      • Equipment Risk and Reliability in Downhole Applications
      • Operational Risk Process Safety
    • on Systems Thinking
      • Communicating with FINESSE
      • The RCA
    • on Tools & Techniques
      • Big Data & Analytics
      • Experimental Design for NPD
      • Innovative Thinking in Reliability and Durability
      • Inside and Beyond HALT
      • Inside FMEA
      • Integral Concepts
      • Learning from Failures
      • Progress in Field Reliability?
      • R for Engineering
      • Reliability Engineering Using Python
      • Reliability Reflections
      • Testing 1 2 3
      • The Manufacturing Academy
  • eBooks
  • Resources
    • Accendo Authors
    • FMEA Resources
    • Feed Forward Publications
    • Openings
    • Books
    • Webinars
    • Journals
    • Higher Education
    • Podcasts
  • Courses
    • 14 Ways to Acquire Reliability Engineering Knowledge
    • Reliability Analysis Methods online course
    • Measurement System Assessment
    • SPC-Process Capability Course
    • Design of Experiments
    • Foundations of RCM online course
    • Quality during Design Journey
    • Reliability Engineering Statistics
    • Quality Engineering Statistics
    • An Introduction to Reliability Engineering
    • Reliability Engineering for Heavy Industry
    • An Introduction to Quality Engineering
    • Process Capability Analysis course
    • Root Cause Analysis and the 8D Corrective Action Process course
    • Return on Investment online course
    • CRE Preparation Online Course
    • Quondam Courses
  • Webinars
    • Upcoming Live Events
  • Calendar
    • Call for Papers Listing
    • Upcoming Webinars
    • Webinar Calendar
  • Login
    • Member Home

by Adam Bahret 1 Comment

Software Design For Reliability

Software Design For Reliability

With all the complaints you hear about products rebooting and software crashing, do companies really practice Software Reliability? In fact, there are some companies that do, but they are mostly in the industries that require products to have high availability, such as telecom, defense, and space, or safety-averse industries, such as medical and industrial plant operation. Most other industries don’t pay as much attention to it. The best method to increase Software Reliability without significant increases to schedules or budgets is to use a Software Design for Reliability (SDFR) approach.  These are the key steps.pass fail Profile_Montecarlo

Software Reliability Assessment

Before starting a Software Reliability program, perform a Software Reliability Assessment by assessing your team’s capability to produce good software. Benchmark your development practices against industry best practices to ensure they have a solid foundation upon which to integrate the other reliability services. The benchmark study will help you fill in gaps by identifying existing internal best practices and techniques to yield the desired results. It will also help define a set of reliability practices to move defect prevention and detection tasks as far upstream in the development cycle as possible. Once you complete the assessment, choose the specific software techniques and integrate  Software Reliability throughout the lifecycle of your program.

Software Reliability Integration in the Concept Phase

In the concept phase, there are two main Software Reliability techniques:

  1. Software Reliability Goal Setting
  2. Software Reliability Program Plan

Perform a Software Reliability Goal Setting by defining system-level software reliability goals. These goals become part of the overall Software Reliability Program Plan. Apply the goals to the design and testing phases.robust design and variability

Software Reliability Integration in the Design Phase

In the design phase, there are six main Software Reliability techniques:

  1. Facilitation of Team Design Template Reviews
  2. Facilitation of Team Design Reviews
  3. Software Failure Modes and Effects Analysis (SFMEA)
  4. Software Fault Tree Analysis (SFTA)
  5. Software Failure Analysis
  6. Software Fault Tolerance

Use the technique Facilitation of Team Design Template Reviews to conduct group pre-design review meetings, which provide your team with forums to expand their knowledge base of design techniques by exchanging design templates. Your team will greatly improve their design inspection results if the inspections are preceded by brief, informal reviews that are highly interactive at multiple points throughout the progression from system architecture through low-level design. This is known as the Facilitation of Team Design Reviews. Use Software Failure Modes and Effects Analysis (SFMEA) and Software Fault Tree Analysis (SFTA) to identify and mitigate failure modes in software, similarly to how you used FMEA and FTA for hardware. Prior to the final stage of a design, use  Software Failure Analysis to identify core and vulnerable sections of the software that may benefit from additional run-time protection by incorporating Software Fault Tolerance techniques.software reliability curve

Software Reliability Integration in the Implementation Phase

In the implementation phase, there are two main Software Reliability techniques:

  1. Facilitation of Code Reviews
  2. Software Robustness and Coverage Testing

For Facilitation of Code Reviews, use reliability reviews to target the core and vulnerable sections of code to allow the owner of the source code to develop sufficient synergy with a small team of developers in finding defects. Use system testing efforts to focus on efficient detection of software faults using Software Robustness and Coverage Testing techniques for thorough module-level testing.

Software Reliability Integration in the Testing Phase

In the testing phase, there are four main Software Reliability techniques:

  1. Software Reliability Measurements and Metrics
  2. Usage Profile-Based Testing
  3. Software Reliability Estimation
  4. Software Reliability Demonstration Tests

Use Software Reliability Measurements and Metrics to track the number of remaining software defects, to calculate the Software mean time to failure (MTTF), and to anticipate when the software is ready for deployment. You will be able to apply Usage Profile-Based Testing methods to emphasize test cases based on their anticipated frequency of execution in the field. One important new technique in Software Reliability is Software Reliability Growth.

All of these steps appear as a large resource requirement in the schedule and man hours. But time and time again it has been shown that in the full program ROI analysis that including this methodology brings a net gain in product and program performance that can be measured even before customer delivery.

-Adam

Filed Under: Apex Ridge, Articles, on Product Reliability Tagged With: analysis

About Adam Bahret

I am a Reliability engineer with over 20 years of experience in mechanical and electrical systems in many industries. I founded Apex Ridge Reliability as a firm to assist technology companies with the critical reliability steps in their product development programs and organizational culture.

« Retaining Knowledge to Reduce Risks
MTBF Use May Reduce Product Reliability »

Comments

  1. Larry Weaver says

    January 3, 2018 at 5:46 PM

    Thanks for explaining that software reliability Measurements and Metrics is the first technique of the testing phase. Having product reliability software that works through all of the techniques in the testing phase would be the type of software I would look for. If I were to get product reliability software, I would be sure to get it from a professional company.

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Article by Adam Bahret
in the Apex Ridge series

Join Accendo

Receive information and updates about articles and many other resources offered by Accendo Reliability by becoming a member.

It’s free and only takes a minute.

Join Today

Recent Articles

  • test
  • test
  • test
  • Your Most Important Business Equation
  • Your Suppliers Can Be a Risk to Your Project

© 2025 FMS Reliability · Privacy Policy · Terms of Service · Cookies Policy