Formal methods can be applied to systems and designs to increase system reliability. A software engineer's level of confidence in the correctness of other systems and components will encourage reuse. The method used to ensure the reliability of a reusable system or component should be kept with the system. The software engineer should restore the system to its previous level of assurance after making modifications for reuse.