Software Development and Professional Practice
Copyright 2011 by John Dooley
All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher.
ISBN-13 (pbk): 978-1-4302-3801-0
ISBN-13 (electronic): 978-1-4302-3802-7
Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.
President and Publisher: Paul Manning
Lead Editor: Dominic Shakeshaft
Technical Reviewer: John Zukowski
Editorial Board: Steve Anglin, James Markham, Ewan Buckingham, Gary Cornell, Jonathan Gennick,
Jonathan Hassell, Michelle Lowman, James Markham, Matthew Moodie, Jeff Olson, Jeffrey Pepper, Frank
Pohlmann, Douglas Pundick, Ben Renow-Clarke, Dominic Shakeshaft, Matt Wade, Tom Welsh
Coordinating Editor: Adam Heath
Copy Editor: Tracy Brown
Compositor: Bytheway Publishing Services
Indexer: Toma Mulligan
Artist: April Milne
Cover Designer: Anna Ishchenko
Distributed to the book trade worldwide by Springer Science+Business Media, LLC., 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail .
For information on translations, please e-mail .
Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Special Bulk SaleseBook Licensing web page at www.apress.com/info/bulksales
.
The information in this book is distributed on an as is basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work.
The source code for this book is available to readers at www.apress.com. You will need to answer questions pertaining to this book in order to successfully download the code.
For Diane, who is always there;
for Patrick, the best son a guy could have; and
for Margaret Teresa Hume Dooley (19261976),
the first one is for you, Mom.
Contents at a Glance




















Contents




















About the Author

John Dooley wrote his first program 40 years ago on punch cards in Fortran IV. Since then, he's spent more than 18 years in industry, working for companies such as Bell Labs, IBM, McDonnell Douglas, and Motorola, along with the obligatory stint at a start-up. He's also spent 17 years teaching computer science to undergraduates, including at Knox College in Galesburg, Illinois, where he is chair of the Computer Science Department and has taught for the last 10 years. As a software professional, he has written everything from device drivers to compilers to embedded phone software to financial applications. He has also managed teams of from 5 to 30 developers in companies large and small. He holds degrees in mathematics, computer science, and electrical engineering.