Implementing the IEEE Software Engineering Standards ; Implementing the IEEE Software Engineering Standards ; Michael Schmidt 800 East 96th Street Indianapolis, Indiana 46290 Copyright © 2000 by Sams Publishing All rights reserved No part of this book shall be reproduced, stored in a retrieval system, or transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise, without written permission from the publisher No patent liability is assumed with respect to the use of the information contained herein Although every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions Neither is any liability assumed for damages resulting from the use of the information contained herein International Standard Book Number: 0-672-31857-1 Library of Congress Catalog Card Number: 99-69168 Printed in the United States of America First Printing: October 2000 02 01 00 4321 Trademarks All terms mentioned in this book that are known to be trademarks or service marks have been appropriately capitalized Sams Publishing cannot attest to the accuracy of this information Use of a term in this book should not be regarded as affecting the validity of any trademark or service mark Figures reprinted with permission from IEEE Std 1074; 1490; 830-1984; 830-1998; 829; 1016; 982.1; 982.2; 1028; 1012 Copyright 2000, by IEEE The IEEE disclaims any responsibility or liability resulting from the placement and use in the described manner Associate Publisher Michael Stephens Acquisitions Editor Steve Anglin Development Editors Laura N.Williams Heather Goodell Managing Editor Matt Purcell Project Editor Dawn Pearson Copy Editor Mary Ellen Stephenson Indexer Sheila Schroeder Proofreader Katherin Bidwell Technical Reviewers Charles Ashbacher Tathagat Varma Team Coordinator Pamalee Nelson Interior Designer Karen Ruggles Cover Designer Alan Clements Warning and Disclaimer Every effort has been made to make this book as complete and as accurate as possible, but no warranty or fitness is implied.The information provided is on an “as is” basis.The author and the publisher shall have neither liability nor responsibility to any person or entity with respect to any loss or damages arising from the information contained in this book IEEE Standards Trademarks & Disclaimers The IEEE believes the information in this publication is accurate as of its publication date; such information is subject to change without notice.The IEEE is not responsible for any inadvertent errors IEEE Standards Copyright Information The IEEE Standards referenced in this book are copyrighted by the Institute of Electrical and Electronics Engineers, Inc All rights reserved IEEE Standards Information Network Endorsement Disclaimer The IEEE Standards Information Network (IEEE-SIN) endorsement in this publication does not render this publication a consensus document Information contained in this and other works has bee obtained from sources believed to be reliable and reviewed by credible members of IEEE Technical Societies, Standards Committees and/or Working Groups and/or relevant technical organizations Neither the IEEE nor its authors guarantee the accuracy or completeness of any information published herein and, neither the IEEE nor its volunteers, members and authors shall be responsible for any errors, omissions or damages arising out of use of this information Likewise, while the IEEE and its volunteers and members believe that the information and guidance given in this work serve as an enhancement to users, all parties must rely upon their own skill and judgment when making use of it Neither the IEEE nor its volunteers or members assume any liability to anyone for any loss or damage caused by any error or omission in the work, whether such error or omission is the result of negligence or any other cause Any and all such liability is disclaimed By endorsing this publication, it should be understood that the IEEE and its volunteers and members are supplying information through this publication, not attempting to render engineering or other professional services If such services are required, the assistance of an appropriate professional should be sought.The IEEE is not responsible for the statements and/or opinions advanced in this publication IEEE Review Policy The information contained in IEEE-SIN publications, and others publications endorsed by the IEEE-SIN, is reviewed and evaluated by peer reviewers of relevant IEEE Technical Societies, Standards Committees and/or Working Groups and/or relevant technical organizations.The publisher addressed all of the reviewer’s comments to the satisfaction of both the IEEE-SIN and those who served as peer reviewers for this document v The quality of the presentation of information contained in this publication reflects not only the obvious efforts of the authors, but also the work of these peer reviewers.The IEEE-SIN acknowledges with appreciation their dedication and contribution of time and effort on behalf of the IEEE To order IEEE publications, call 1-800-678-IEEE or, visit our web site at www.ieee.org To order The IEEE Standards referenced herein, call 1-800-678-IEEE or, visit the IEEE Standards web site at www.standards.ieee.org Endorsed by The IEEE Standards Information Network Implementing the IEEE Software Engineering Standards' by Michael Schmidt is recognized by the Software Engineering Standards Committee of the IEEE Computer Society as a useful guide for software practitioners applying software engineering standards vi Dedication To my family: My parents, Jürgen and Hanna My wife, Elizabeth My children, Emily, Evan, and Erica Acknowledgments I would like to thank the countless IEEE members who contributed to and reviewed the standards collection over the years.Without their efforts we would have no standards I would also like to thank my editors, Laura Williams, for encouraging me, and putting up with me, and Heather Goodell, for her help in completing the project Special thanks to Jim Moore, who provided invaluable feedback on the contents of the book I take credit for any remaining rough spots vii vii About the Author Michael Schmidt was born in Cologne, Germany in 1959 His father, Jürgen Schmidt, a well-known mathematician, moved the family to the United States in 1967 on a Fulbright-Hays teaching fellowship Mike graduated from the Kinkaid School in Houston,Texas, in 1977; received a B.A in Mathematics from the University of California at Berkeley in 1980; and a M.A in Mathematics from the University of Washington at Seattle in 1981 In 1980, as a student intern, Mike worked as a programmer on the cyclotron control system at Lawrence Berkeley Laboratories After receiving his degree at UW, Mike took a position as a software engineer at Bi-M Instruments, a start-up company in Houston developing ballast control systems for offshore oil rigs In 1981, Mike was recruited by Varian Associates in Palo Alto to work on the software for a next-generation linear accelerator for oncology care At Varian, Mike was promoted to project engineer, leading the team for the control system software In 1986, Mike was recruited to another start-up company,TransImage Corporation in Menlo Park, as a staff software engineer to develop a sophisticated optical-character-recognition system In 1987, Mike joined Siemens Medical Systems, again as a project engineer to head the software team developing a next-generation control system for a linear accelerator for oncology care Mike was promoted to manager of the software engineering department at Siemens Medical Systems, Oncology Care Systems, with responsibility for all software development in five major product areas In 1994, Mike started Software Engineering Services, Inc., a software consulting business specializing in fixed-price projects for software in the medical device, pharmaceutical, and biotechnology industries, and other industries for which software plays a safety-critical role SES has a long list of well-known clients in these industries, and has developed and validated software for numerous sophisticated applications Mike also has been teaching computer science classes at University of California Berkeley Extension, and Diablo Valley College, including C++ programming, and classes on the IEEE Software Engineering Standards In 2000, Mike joined Zeiss Humphrey Systems, a leading manufacturer of ophthalmic instruments, as the software engineering manager Mike is an IEEE member viii About the Technical Reviewers Charles Ashbacher has been programming for nearly 20 years, which makes him experienced and well-rounded rather than old and cynical He is co-editor of Journal of Recreational Mathematics and a regular contributor to Journal of ObjectOriented Programming Charles teaches computing at all levels: corporate training, college, and community education and is president and CEO of Charles Ashbacher Technologies (http://www.ashbacher.com) His background also includes stints writing commercial code and software to conduct scientific research Tathagat Varma received an M.Sc Computer Science (Software) degree from J.K Institute of Applied Physics and Technology, University of Allahabad, India in 1990 He then worked with the Defence Research and Development Organization, Government of India, as a computer scientist until 1995 During this tenure, he also participated in the XIII Indian Scientific Expedition to Antarctica, where he stayed for 16 months! In August 1995, he joined Siemens Communication Software, Bangalore, where he worked in telecommunication software development for over a year Since December 1996, he has worked with Philips Software Centre, Bangalore Philips Software Centre is the software arm of the Royal Philips Electronics,The Netherlands In the last three years with Philips, he has worked with Medical Systems and as SPI and QA Manager Currently, he is managing a project that involves development of embedded software for digital set-top boxes He is formally trained in CMM, ISO Tick-IT, and Philips Assessment Method He is also an active reviewer for the IEEE Software magazine ix ... call 1-800-678 -IEEE or, visit the IEEE Standards web site at www .standards .ieee. org Endorsed by The IEEE Standards Information Network Implementing the IEEE Software Engineering Standards' by.. .Implementing the IEEE Software Engineering Standards ; Implementing the IEEE Software Engineering Standards ; Michael Schmidt 800 East 96th Street Indianapolis, Indiana 46290 Copyright © 2000. .. all the standards are discussed in the book.We will focus on the most important principles in the IEEE Software Engineering Standards collection, to show the easiest way to phase in the standards