New User Special Price Expires in

Let's log you in.

Sign in with Facebook


Don't have a StudySoup account? Create one here!


Create a StudySoup account

Be part of our community, it's free to join!

Sign up with Facebook


Create your account
By creating an account you agree to StudySoup's terms and conditions and privacy policy

Already have a StudySoup account? Login here


by: Vito Kilback

SoftwareDesign CS575

Vito Kilback
GPA 3.88


Almost Ready


These notes were just uploaded, and will be ready to view shortly.

Purchase these notes here, or revisit this page.

Either way, we'll remind you when they're ready :)

Preview These Notes for FREE

Get a free preview of these Notes, just enter your email below.

Unlock Preview
Unlock Preview

Preview these materials now for free

Why put in your email? Get access to more of this material and other relevant free materials for your school

View Preview

About this Document

Class Notes
25 ?




Popular in Course

Popular in ComputerScienence

This 26 page Class Notes was uploaded by Vito Kilback on Wednesday September 23, 2015. The Class Notes belongs to CS575 at Drexel University taught by Staff in Fall. Since its upload, it has received 27 views. For similar materials see /class/212482/cs575-drexel-university in ComputerScienence at Drexel University.

Similar to CS575 at Drexel


Reviews for SoftwareDesign


Report this Material


What is Karma?


Karma is the currency of StudySoup.

You can buy or earn more Karma at anytime and redeem it for class notes, study guides, flashcards, and more!

Date Created: 09/23/15
Software Aging by D L Parnas Software Design Software Aging SERG 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 DL Parnas Software Design Software Aging SERG Software Aging 7 It does not make sense to talk about software aging 7 Software is a mathematical product mathemat1cs does not decay W1th t1me 7 Ifa theorem was correct 200 years ago it will be correct tomorrow 7 Ifa program is correct today it will be correct 100 years from now 7 Ifa 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 Design Software Aging SERG Software Does Age Software aging is gaining in significance because 7 ofthe growing economic importance of software 7 software is the capital of many hightech rms Software Design Software Aging SERG 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 youngjogger scoffing at an 86 year old man exchampion swimmer and saying that he should have exercised more in his youth Software Design Software Aging SERG The Causes of Software Aging There are two types of software aging 7 Lack of Movement Aging caused by the failure of the product s owners to modify it to meet changing needs 7 orant Surge Aging caused as a result of changes that are made This onetwo punch can lead to rapid decline in the value of a software product Software Design Software Aging SERG 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 Software Design Software Aging SERG Ignorant Surgery One must upgrade software to prevent ag1ng Changing software can cause aging too Changes are made by people who do not understand the software 7 Hence software structure degrades Software Design Software Aging SERG Ignorant Surgery Cont d After many such changes nobody understands the software 7 the original designers no longer understand the modi ed software 7 those who made the modi cation still do not understand the software Changes take longer and introduce new bugs Inconsistent and inaccurate documentation makes changing the software harder to do Software Design Software Aging SERG The Cost of Software Failure Inability to keep up reduced perfonnance decreasing reliability Software Design Software Aging SERG Inability To Keep Up As software ages it grows bigger quotWeight 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 7 There is more code to change 7 it is more dif cult to nd the routines that must be changed Result Customers switch to a younger product to get the new features Software Design Software Aging SERG 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 longterrn ad hoc maintenance A younger product Will run faster and use less memory because it was designed to support the new features Software Design Software Aging SERG Decreasing Reliability 39 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 Software Design Software Aging SERG Decreasing Reliability Cont d Often the choice is to either 7 abandon the project 7 stop xing bugs For a commercial product Parnas was once told that the list of known unrepaired bugs exceeded 2000 Software Design Software Aging SERG Reducing the Cost of S WAging 39 We should be looking far beyond the rst 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 Software Design Software Aging SERG Reducing the Cost of S WAgl39ng 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 Software Design Software Aging SERG Preventive Medicine Design for success Keep records documentation Seek second opinions reviews Software Design Software Aging SERG Design for Success 39 Design for change This principle is known by various names 7 information hiding 7 abstraction 7 separation of concerns 7 data hiding 7 obj ect orientation Software Design Software Aging SERG 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 7 changes in the U1 7 change to a new windowing system 7 changes to data representation 7 porting to a new operating system Software Design Software Aging SERG Design for Change Cont d Since it is impossible to make everything equally easy to change it is important to 7 estimate the probabilities of each type of change 7 organize the software so that the items that are most likely to change are con ned to a small amount of code Software Design Software Aging SERG Why is Design or 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 Software Design Software Aging SERG Why is Design or 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 Software Design Software Aging SERG Keeping Records Documentation Even When software is well designed it is often not documented When documentation is present it is often 7 poorly organized 7 inconsistent 7 incomplete 7 written by people who do not understand the system Software Design Software Aging SERG Documentation Hence documentation is ignored by maintainers Worse documentation is ignored by managers because it does not speed up the initial release Software Design Software Aging SERG 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 Software Design Software Aging SERG


Buy Material

Are you sure you want to buy this material for

25 Karma

Buy Material

BOOM! Enjoy Your Free Notes!

We've added these Notes to your profile, click here to view them now.


You're already Subscribed!

Looks like you've already subscribed to StudySoup, you won't need to purchase another subscription to get this material. To access this material simply click 'View Full Document'

Why people love StudySoup

Steve Martinelli UC Los Angeles

"There's no way I would have passed my Organic Chemistry class this semester without the notes and study guides I got from StudySoup."

Jennifer McGill UCSF Med School

"Selling my MCAT study guides and notes has been a great source of side revenue while I'm in school. Some months I'm making over $500! Plus, it makes me happy knowing that I'm helping future med students with their MCAT."

Bentley McCaw University of Florida

"I was shooting for a perfect 4.0 GPA this semester. Having StudySoup as a study aid was critical to helping me achieve my goal...and I nailed it!"


"Their 'Elite Notetakers' are making over $1,200/month in sales by creating high quality content that helps their classmates in a time of need."

Become an Elite Notetaker and start selling your notes online!

Refund Policy


All subscriptions to StudySoup are paid in full at the time of subscribing. To change your credit card information or to cancel your subscription, go to "Edit Settings". All credit card information will be available there. If you should decide to cancel your subscription, it will continue to be valid until the next payment period, as all payments for the current period were made in advance. For special circumstances, please email


StudySoup has more than 1 million course-specific study resources to help students study smarter. If you’re having trouble finding what you’re looking for, our customer support team can help you find what you need! Feel free to contact them here:

Recurring Subscriptions: If you have canceled your recurring subscription on the day of renewal and have not downloaded any documents, you may request a refund by submitting an email to

Satisfaction Guarantee: If you’re not satisfied with your subscription, you can contact us for further help. Contact must be made within 3 business days of your subscription purchase and your refund request will be subject for review.

Please Note: Refunds can never be provided more than 30 days after the initial purchase date regardless of your activity on the site.