Traditional Engineering: Maintenance Against Physical Wear & Tear
Friction: Moving parts rubbing against each other cause material to wear away (e.g., brake pads on a car, bearings in a motor). Corrosion/Oxidation: Chemical reactions with the environment degrade materials (e.g., rust forming on a steel bridge, oxidation on electrical contacts). Fatigue: Repeated stress, even if below the material's failure limit, can cause microscopic cracks that eventually lead to failure (e.g., an airplane wing flexing on every flight). Environmental Stress: Exposure to UV radiation from the sun can make plastics brittle, temperature cycles can cause expansion and contraction, and moisture can seep into cracks.
Servicing: Proactive tasks to slow down wear, such as lubricating moving parts, cleaning filters, or applying protective coatings. Repair: Fixing a component that has broken or is malfunctioning. This could involve welding a crack, replacing a fuse, or patching a hole. Replacement: Swapping out a component that has reached the end of its useful life due to wear (e.g., changing tires, replacing a battery, installing a new roof on a building).
Software Engineering: Maintenance of a Logical System
Corrective Maintenance (Bug Fixing): This is the closest parallel to "repair," but with a critical difference. A software bug is not damage; it's a latent flaw in the original design. The error was present from the moment the code was written. Maintenance is the act of discovering and fixing this pre-existing logical mistake. Analogy: Finding a typo in a book years after it was published. The typo didn't appear over time; it was always there.
Adaptive Maintenance (Adapting to Change): This is the most common form of software maintenance. The software must be updated to remain compatible with its constantly changing environment. The code itself hasn't broken, but the world around it has shifted. Examples: An operating system update (e.g., to iOS 18 or Windows 12) requires apps to be updated to work correctly. A web browser (Chrome, Firefox) updates, and a website's CSS or JavaScript breaks. A third-party API that the software relies on is changed or discontinued. New security vulnerabilities are discovered in a library the software uses, requiring a patch.
Perfective Maintenance (Adding Features & Enhancements): This involves modifying the software to improve its performance, enhance its usability, or add new features based on user feedback. It's not about fixing something broken but about evolving the product to make it better and more valuable. Example: Adding "dark mode" to an application or improving the efficiency of a search algorithm.
0 Comments:
Post a Comment