Software Aging by D. L. Parnas

Similar documents
Death March Projects in today s Hard Times

Negotiating Essentials

1. Historical Development of SSDMs

The Real Secret Of Making Passive Income By Using Internet At Your Spare Time!

NEGOTIATING A NEW ARTISTS MANAGER BASIC AGREEMENT Separating Fact from Fiction. Deadline

38. Looking back to now from a year ahead, what will you wish you d have done now? 39. Who are you trying to please? 40. What assumptions or beliefs

Terms and Conditions

Copyright 2018 Christian Mickelsen and Future Force, Inc. All rights reserved.

This is simply, customers looking for businesses that service their local area. Businesses like yours.

Teenagers Preparing for the Real World

Your 12 Step Guide to Future Financial Freedom

On the GED essay, you ll need to write a short essay, about four

Wealth Secrets of the Masters Special Report

Small step for you, big step for your career.

If you don t design your own life plan, chances are you ll fall into someone else s plan. And guess what they have planned for you? Not much.

Gift Basket Business Development Series From Gift Basket Network Construct Your Business with a One-page Business Plan

12 Things. You Should Be Able to Say About Yourself. Parnell Intermediary Services, Inc. Guide to Productive Living. Volume 4 NO V4

Why do they not make productivity permanent? Why do they only engage in these temporary cycles?

Your Guide to Quality Furnace Maintenance, Repair, and Replacement

Storybird audio transcript:

The Keys To Success. The Three Simple Things All Indie Publishers Do To Write and Sell More Books

Chapter 12 Summary Sample Surveys

LECTURE 8: SPECIAL PRODUCTION FUNCTIONS, PART II ANSWERS AND SOLUTIONS. True/False Questions

I designed this workshop to help you work smarter, not harder.

Probability Paradoxes

If you have decided to start your own online business and are ready to go, first, there is one thing that you have to decide on.

Google SEO Optimization

What You Need to Learn

CEOCFO Magazine. Pat Patterson, CPT President and Founder. Agilis Consulting Group, LLC

How to Choose Your Just Right Project. Lesson #1 The Greatest Myths about Choosing Ever Written

Where does architecture end and technology begin? Rami Razouk The Aerospace Corporation

will talk about Carry Look Ahead adder for speed improvement of multi-bit adder. Also, some people call it CLA Carry Look Ahead adder.

YOUR RIGHTS. In Intermediate Care Facilities for Persons with. Mental Retardation (ICF-MR) Programs. Texas Department of Aging and Disability Services

25 Reasons You Are Not a Millionaire

Instrumentation and Control

Health & Happiness Guide

Graduates expectations and experience of social care work: Strengths and abilities being nurtured?

Preparing For Your GCSEs

100 Day Program Week 11 Curriculum

ACF Equity Research. Key Messages for: Think Like a VC Meetup 20 March Accuracy Clarity Foresight

Human Interface/ Human Error

Are You Ready To Start Earning Thousands of Dollars As A Home-Based Business Owner?

THE AHA MOMENT: HELPING CLIENTS DEVELOP INSIGHT INTO PROBLEMS. James F. Whittenberg, PhD, LPC-S, CSC Eunice Lerma, PhD, LPC-S, CSC

Pre-Venture Assessment

Section 3 Step 1 U nderstanding Why We Need and Seek Change

episteme Probability

Chapter 6. Discussion

The right question asked to the right person at the right time starts the process of that person hiring you...

Scope of OOSE. A. Starts. CMPSC 487 Lecture 01 Topics: Schach - Chap 1. The Scope of Object-Oriented Software Engineering

Intro to Kernel Hacking - finding things to work on.

HOW TO HANDLE A CITATION: A GUIDE TO GETTING LEGAL HELP

ABOUT COMPUTER SCIENCE

Guitar Practice Sins - Answers

Money How to Make It Keep It Grow It! By DC Cordova Excellerated Business Schools/Money & You Program

72 of the Best Lessons for Leadership Success

Health Coaching Questionnaire

your thoughts and feelings. Make note of any new awarenesses that come forward. Trust that you will get exactly what you need, and... you will.

The 10 Biggest Mistakes

System and Network Administration

Intro: The One Minute Millionaire The Enlightened Way to Wealth Written by Mark Victor Hansen & Robert Allen

ENGINEERING INNOVATION

Some Thoughts on Hong Kong Maritime Industry Ping-Chi So, Institute of Seatransport

ALL THE IDEAS BUILDING A STRATEGIC ROADMAP

Japan s business system has changed significantly since 2000, shifting toward

Edexcel On-screen English Functional Skills Pilot Sample Assessment Materials April 2009 Level 2

Creating POWER. G oa l s. How to create a roadmap to achieve the greatness you deserve.

COMMONLY ASKED QUESTIONS About easyfreeincome.com system

Computer Consultant Questionnaire

The Best 50 of Murphy's Law

Managing Complex Land Mobile Radio Systems

LESSON 6. Finding Key Cards. General Concepts. General Introduction. Group Activities. Sample Deals

Pevans Board games reviews and articles by Paul Evans Coal, Iron and Railroads

Be prepared! Upgrade for mission success.

Stanford CS Commencement Alex Aiken 6/17/18

"Of course you always lose your voice," she said "Your technique is wrong." And from that moment on, my life would never be the same.

Questioning Strategies Questions and Answers

Service-Oriented Software Engineering - SOSE (Academic Year 2015/2016)

reclaim your life From illness, disability, pain or fatigue

Welcome to the revolution

English as a Second Language Podcast ESL Podcast 200 Meeting a Deadline

GMAT Timing Strategy Guide

5 Steps to Buying a Used Car Nissan24auto.com 1016 Belmont Street Brockton, MA 02301

I believe in you, and so does everyone who truly knows you. Trust the wonderful things happening in your life they were meant just for you. You have b

Your Rights. In An ICF-MR Program

5 Reasons why People in Moray Claim for Personal injury

The SPE Foundation through member donations and a contribution from Offshore Europe

MOBE 21 Steps Strategy Session Preparation Growth Work Worksheet (Coach David Traub)

InternetMarketingWithBarb.com

system design & management

The Finding Respect and Ending Stigma around HIV (FRESH) Study Intervention Post-Workshop Survey Community Participants

When you have written down your questions, you should then try to answer them. This will give you a basis for the story.

Course Introduction and Overview of Software Engineering. Richard N. Taylor Informatics 211 Fall 2007

Information Systemss and Software Engineering. Computer Science & Information Technology (CS)

CAPITAL GRANTS PROGRAMME

What most people do when they're thinking building an online business is they're just thinking a website.

Challenging procrastination: A guide for students

AI 101: An Opinionated Computer Scientist s View. Ed Felten

Graduation Address Arizona Charter Academy May 15, 2015 Mayor Wolcott FINAL

A Rebirth in the North Sea or simply a False Dawn

COPYWRITER CHECKLIST. Find Out If You ve Got What It Takes to Succeed

Transcription:

Software Aging by D. L. Parnas

Software Aging Programs, like people, get old. We can t prevent aging, but we can understand its causes, take steps to limit its effects, temporarily reverse some of the damage it has caused, and prepare for the day when the software is no longer viable.... (We must) lose our preoccupation with the first release and focus on the long term health of our products. D.L. Parnas

Software Aging? It does not make sense to talk about software aging! Software is a mathematical product, mathematics does not decay with time. If a theorem was correct 200 years ago, it will be correct tomorrow. If a program is correct today, it will be correct 100 years from now. If a program is wrong 100 years from now, it must have been wrong when it was written. All of the above statements are true, but not really relevant.

Software Does Age Software aging is gaining in significance because: of the growing economic importance of software, software is the capital of many high-tech firms.

Software Does Age The authors and owners of new software products often look at aging software with disdain. If only the software had been designed using today s languages and techniques Like a young jogger scoffing at an 86 year old man (ex-champion swimmer) and saying that he should have exercised more in his youth!

The Causes of Software Aging There are two types of software aging: Lack of Movement: Aging caused by the failure of the product s owners to modify it to meet changing needs. Ignorant Surgery: Aging caused as a result of changes that are made. This one-two punch can lead to rapid decline in the value of a software product.

Lack of Movement Unless software is frequently updated, its user s will become dissatisfied and change to a new product. Excellent software developed in the 60 s would work perfectly well today, but nobody would use it. That software has aged even though nobody has touched it. Actually, it has aged because nobody bothered to touch it.

Ignorant Surgery One must upgrade software to prevent aging. Changing software can cause aging too. Changes are made by people who do not understand the software. Hence, software structure degrades.

Ignorant Surgery (Cont d) After many such changes nobody understands the software: the original designers no longer understand the modified software, those who made the modification still do not understand the software. Changes take longer and introduce new bugs. Inconsistent and inaccurate documentation makes changing the software harder to do.

The Cost of Software Failure Inability to keep up, reduced performance, decreasing reliability.

Inability To Keep Up As software ages, it grows bigger. Weight gain is a result of the fact that the easiest way to add a feature is to add new code. Changes become more difficult as the size of the software increases because: There is more code to change, it is more difficult to find the routines that must be changed. Result: Customers switch to a younger product to get the new features.

Reduced Performance As the size of the program grows, it places more demands on the computer memory. Customers must upgrade their computers to get acceptable response. Performance decreases because of poor design that has resulted from long-term ad hoc maintenance. A younger product will run faster and use less memory because it was designed to support the new features.

Decreasing Reliability As the software is maintained, errors are introduced. Many studies have shown that each time an attempt is made to decrease the failure rate of a system, the failure rate got worse! That means that, on average, more than one error is introduced for every repaired error.

Decreasing Reliability (Cont d) Often the choice is to either: abandon the project stop fixing bugs For a commercial product, Parnas was once told that the list of known unrepaired bugs exceeded 2,000.

Reducing the Cost of SW Aging We should be looking far beyond the first release to the time when the product is old. Inexperienced programmers get a rush after the first successful compile or demonstration. Experienced programmers realize that this is only the beginning...

Reducing the Cost of SW Aging (Cont d) Responsible, professional, organizations realize that more work is invested between the time after the first successful run and the first release than is required to get the first successful run. Extensive testing and rigorous reviews are necessary.

Preventive Medicine Design for success Keep records (documentation) Seek second opinions (reviews)

Design for Success Design for change. This principle is known by various names: information hiding abstraction separation of concerns data hiding object-orientation

Design for Change To apply this principle one begins by trying to characterize the changes that are likely to occur over the lifetime of a product. Since actual changes cannot be predicted, predictions will be about classes of changes: changes in the UI change to a new windowing system changes to data representation porting to a new operating system...

Design for Change (Cont d) Since it is impossible to make everything equally easy to change, it is important to: estimate the probabilities of each type of change organize the software so that the items that are most likely to change are confined to a small amount of code

Why is Design for Change Ignored? Textbooks fail to discuss the process of estimating the probability of change for various classes of changes. Programmers are impatient because they are too eager to get the first version working. Designs that result from this principle are different from the natural designs of the programmer s intuition.

Why is Design for Change Ignored? (Cont d) Few good examples of the application of the principle. Designers tend to mimic other designs they have seen. Programmers tend to confuse design principles with languages. Many practitioners lack training in software development.

Keeping Records (Documentation) Even when software is well designed, it is often not documented. When documentation is present it is often: poorly organized inconsistent incomplete written by people who do not understand the system

Documentation Hence, documentation is ignored by maintainers. Worse, documentation is ignored by managers because it does not speed up the initial release.

Second Opinions (Reviews) In engineering, as in medicine, the need for reviews by other professionals is never questioned. In designing a building, ship, aircraft, there is always a series of design documents that are carefully reviewed by others.

Reviews This is not true in the software industry: Many programmers have no professional training in software at all. Emphasis of CS degrees on mathematics and science; professional discipline is not a topic for a liberal education. Difficult to find people who can serve as quality reviewers; no money to hire outsiders. Time pressure misleads designers into thinking that they have no time for proper reviews. Many programmers resent the idea of being reviewed.

Reviews Every design should be reviewed and approved by someone whose responsibilities are for the long-term future of the product.

Why is Software Aging Inevitable? Our ability to design for change depends on our ability to predict the future. We can do so only approximately and imperfectly. Over a period of years: changes that violate original assumptions will be made documentation will never be perfect reviewers are bound to miss flaws...

Why is Software Aging Inevitable? (Cont d) Preventive measures are worthwhile but anyone who thinks that this will eliminate aging is living in a dream world.

Software Geriatrics Retroactive Documentation: A major step in slowing the age of older software, and often rejuvenating it, is to upgrade the quality of the documentation. Retroactive Modularization: Change structure so that each module hides a design decision that is likely to change.

Software Geriatrics (Cont d) Amputation: A section of code has been modified so often, and so thoughtlessly, that it is not worth saving. Major Surgery (Restructuring): Identify and eliminate redundant components and gratuitous dependencies.

Planning Ahead It s time to stop acting as if getting it to run was the only thing that matters. Designs and changes have to be documented and carefully reviewed. If it s not documented, it s not done. In other areas of engineering, product obsolescence is recognized and included in design and marketing plans. The same should be done for software engineering.