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 Fred Schenkelberg Leave a Comment

Software Reuse Considerations

Software Reuse Considerations

Software elements of a product or system take time to create. Thus re-using blocks of code developed for previous applications may save on development time.

Software created with re-use in mind most likely used a structured and modular programming approach.

This permits the elements which provide a discreet function to encompass a self-contained block of code. It accepts specific inputs and returns the desired outputs. A printer driver is an example of software code that may become part of many different applications and printing tools.

Software reuse is a process to create a software element or system which incorporates previously created software elements.

Benefits of software reuse

  • Dependability & reliability may improve given previous testing and use
  • Risk reduction as you avoid the elements of detailed software development
  • Standards compliance accomplished with prior work
  • Development time reduced by starting with blocks of reusable software
  • Permits more resources for new functional elements of the system

Downside of software reuse

  • Maintenance cost increase
  • Software tools require longer support
  • Software tools may become obsolete
  • “Not invented here” attitude reduces acceptance
  • Overhead of creating & maintaining a component library
  • It takes time to select reusable software components.

With some work to organize and plan for the reuse of software, an organization can save significant time and money.

Thinking through and creating a strategy to build systems using reusable software blocks mirrors the hardware concept of creating a platform. Each successive iteration of the system as much as 80% (or more) of the components remain the same allowing the development team to focus on incorporating new functionality within the platform.

Software components do require an element of flexibility, yet many functions remain relatively stable over time.

For example, gathering and recording a voltage sensor reading hasn’t really changed much over time. Once that software component is developed and proven to work well, it becomes part of the software component library available for use and reuse.

What can be reused?

Reusing simple functions makes sense and is likely already in use within your software team. It is possible to also reuse complete application system, too. Here is a list of possible software elements that could be reused:

  • Component frameworks
  • Application product lines
  • Legacy wrapping algorithms
  • COTS integration services

Beside specific blocks of code, it is also possible to reuse solution concepts to solve similarly structured problems, this includes design patterns and generative programming.

Related:

Part Selection Process and Reliability (article)

Material Selection and Reliability (article)

Descriptive Models of the Design Process (article)

Filed Under: Articles, CRE Preparation Notes, Reliability in Design and Development Tagged With: Selection standardization and reuse

About Fred Schenkelberg

I am the reliability expert at FMS Reliability, a reliability engineering and management consulting firm I founded in 2004. I left Hewlett Packard (HP)’s Reliability Team, where I helped create a culture of reliability across the corporation, to assist other organizations.

« Basic Description of a Fault Tree Analysis
Using the Maintenance Data You Already Have »

Leave a Reply Cancel reply

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

CRE Preparation Notes

Article by Fred Schenkelberg

Join Accendo

Join our members-only community for full access to exclusive eBooks, webinars, training, and more.

It’s free and only takes a minute.

Get Full Site Access

Not ready to join?
Stay current on new articles, podcasts, webinars, courses and more added to the Accendo Reliability website each week.
No membership required to subscribe.

[popup type="" link_text="Get Weekly Email Updates" link_class="button" ]

[/popup]

  • CRE Preparation Notes
  • CRE Prep
  • Reliability Management
  • Probability and Statistics for Reliability
  • Reliability in Design and Development
  • Reliability Modeling and Predictions
  • Reliability Testing
  • Maintainability and Availability
  • Data Collection and Use

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