Facts and Fallacies of Software Engineering

ISBN-10: 0321117425
ISBN-13: 9780321117427
Edition: 2003
Authors: Robert L. Glass
List price: $44.99 Buy it from $13.00
eBook available
This item qualifies for FREE shipping

*A minimum purchase of $35 is required. Shipping is provided via FedEx SmartPost® and FedEx Express Saver®. Average delivery time is 1 – 5 business days, but is not guaranteed in that timeframe. Also allow 1 - 2 days for processing. Free shipping is eligible only in the continental United States and excludes Hawaii, Alaska and Puerto Rico. FedEx service marks used by permission."Marketplace" orders are not eligible for free or discounted shipping.

30 day, 100% satisfaction guarantee

If an item you ordered from TextbookRush does not meet your expectations due to an error on our part, simply fill out a return request and then return it by mail within 30 days of ordering it for a full refund of item cost.

Learn more about our returns policy

Description: A lot of what software engineers ought to know about building software is, for whatever reason, not known (forgotten, neglected, never considered, etc.). This book is a collection of fifty-five facts that software engineers should always consider.  More...

New Starting from $48.19
eBooks Starting from $35.99
Buy
what's this?
Rush Rewards U
Members Receive:
coins
coins
You have reached 400 XP and carrot coins. That is the daily max!
You could win $10,000

Get an entry for every item you buy, rent, or sell.

Study Briefs

Limited time offer: Get the first one free! (?)

All the information you need in one place! Each Study Brief is a summary of one specific subject; facts, figures, and explanations to help you learn faster.

Add to cart
Study Briefs
Periodic Table Online content $4.95 $1.99
Add to cart
Study Briefs
Writing a Scientific Report Online content $4.95 $1.99

Customers also bought

Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading

Book details

List price: $44.99
Copyright year: 2003
Publisher: Addison Wesley Professional
Publication date: 10/28/2002
Binding: Paperback
Pages: 224
Size: 7.50" wide x 9.25" long x 0.75" tall
Weight: 0.990

A lot of what software engineers ought to know about building software is, for whatever reason, not known (forgotten, neglected, never considered, etc.). This book is a collection of fifty-five facts that software engineers should always consider. The facts are fundamental. The facts are frequently forgotten. And above all, the facts are important to the success of a project. Robert Glass brings a lifetime's work in software engineering to this often-witty book. In his considerable experience, the author has witnessed that software engineers need to learn the same lessons over and over again. In formally presenting many of these key facts, he hopes that software builders can avoid many of the pitfalls that all too often plague a project. The book covers management, all stages of the software lifecycle, quality, research, and much more. The author even presents ten common fallacies that help support the fifty-five facts. Anyone with an interest in building better software can benefit from this thought-provoking new book.

Acknowledgments
Foreword
55 Facts
Introduction
About Management
People
The most important factor in software work is the quality of the programmers
The best programmers are up to 28 times better than the worst programmers
Adding people to a late project makes it later
The working environment has a profound impact on productivity and quality
Tools and Techniques
Hype (about tools and techniques) is the plague on the house of software
New tools and techniques cause an initial loss of productivity/quality
Software developers talk a lot about tools, but seldom use them
Estimation
One of the two most common causes of runaway projects is poor estimation
Software estimation usually occurs at the wrong time
Software estimation is usually done by the wrong people
Software estimates are rarely corrected as the project proceeds
It is not surprising that software estimates are bad. But we live and die by them anyway!
There is a disconnect between software management and their programmers
The answer to a feasibility study is almost always "yes."
Reuse
Reuse-in-the-small is a well-solved problem
Reuse-in-the-large remains a mostly unsolved problem
Reuse-in-the-large works best in families of related systems
Reusable components are three times as hard to build and should be tried out in three settings
Modification of reused code is particularly error-prone
Design pattern reuse is one solution to the problems of code reuse
Complexity
For every 25 percent increase in problem complexity, there is a 100 percent increase in solution complexity
Eighty percent of software work is intellectual. A fair amount of it is creative. Little of it is clerical
About the Life Cycle
Requirements
One of the two most common causes of runaway projects is unstable requirements
Requirements errors are the most expensive to fix during production
Missing requirements are the hardest requirements errors to correct
Design
Explicit requirements "explode" as implicit (design) requirements for a solution evolve
There is seldom one best design solution to a software problem
Design is a complex, iterative process. Initial design solutions are usually wrong and certainly not optimal
Coding
Designer "primitives" (solutions programmers can readily code) rarely match programmer "primitives."
COBOL is a very bad language, but all the others (for business applications) are so much worse
Error Removal
Error removal is the most time-consuming phase of the life cycle
Testing
Software is usually tested at best at the 55 to 60 percent (branch) coverage level
One hundred percent coverage is still far from enough
Test tools are essential, but many are rarely used
Test automation rarely is. Most testing activities cannot be automated
Programmer-created, built-in debug code is an important supplement to testing tools
Reviews and Inspections
Rigorous inspections can remove up to 90 percent of errors before the first test case is run
Rigorous inspections should not replace testing
Postdelivery reviews (some call them "retrospectives") are important and seldom performed
Reviews are both technical and sociological, and both factors must be accommodated
Maintenance
Maintenance typically consumes 40 to 80 percent of software costs. It is probably the most important life cycle phase of software
Enhancements represent roughly 60 percent of maintenance costs
Maintenance is a solution, not a problem
Understanding the existing product is the most difficult task of maintenance
Better methods lead to more maintenance, not less
About Quality
Quality
Quality is a collection of attributes
Quality is not user satisfaction, meeting requirements, achieving cost and schedule, or reliability
Reliability
There are errors that most programmers tend to make
Errors tend to cluster
There is no single best approach to software error removal
Residual errors will always persist. The goal should be to minimize or eliminate severe errors
Efficiency
Efficiency stems more from good design than good coding
High-order language code can be about 90 percent as efficient as comparable assembler code
There are tradeoffs between size and time optimization
About Research
Many researchers advocate rather than investigate
5+5 Fallacies
Introduction
About Management
You can't manage what you can't measure
You can manage quality into a software product
People
Programming can and should be egoless
Tools and Techniques
Tools and techniques: one size fits all
Software needs more methodologies
Estimation
To estimate cost and schedule, first estimate lines of code
About the Life Cycle
Testing
Random test input is a good way to optimize testing
Reviews
"Given enough eyeballs, all bugs are shallow"
Maintenance
The way to predict future maintenance costs and to make product replacement decisions is to look at past cost data
About Education
You teach people how to program by showing them how to write programs
Conclusions
About the Author
Index

×
Free shipping on orders over $35*

*A minimum purchase of $35 is required. Shipping is provided via FedEx SmartPost® and FedEx Express Saver®. Average delivery time is 1 – 5 business days, but is not guaranteed in that timeframe. Also allow 1 - 2 days for processing. Free shipping is eligible only in the continental United States and excludes Hawaii, Alaska and Puerto Rico. FedEx service marks used by permission."Marketplace" orders are not eligible for free or discounted shipping.

Learn more about the TextbookRush Marketplace.

×