E-Book Content
Software Engineering A PRACTITIONER’S APPROACH McGraw-Hill Series in Computer Science Senior Consulting Editor C. L. Liu, National Tsing Hua University Consulting Editor Allen B. Tucker, Bowdoin College Fundamentals of Computing and Programming Computer Organization and Architecture Systems and Languages Theoretical Foundations Software Engineering and Databases Artificial Intelligence Networks, Parallel and Distributed Computing Graphics and Visualization The MIT Electrical and Computer Science Series Software Engineering and Databases Atzeni, Ceri, Paraborschi, and Torlone, Database Systems, 1/e Mitchell, Machine Learning, 1/e Musa, Iannino, and Okumoto, Software Reliability, 1/e Pressman, Software Engineering: A Beginner’s Guide, 1/e Pressman, Software Engineering: A Practioner’s Guide, 5/e Ramakrishnan/Gehrke, Database Management Systems, 2/e Schach, Classical and ObjectOriented Software Engineering with UML and C++, 4/e Schach, Classical and ObjectOriented Software Engineering with UML and Java, 1/e Software Engineering A PRACTITIONER’S APPROACH FIFTH EDITION Roger S. Pressman, Ph.D. Boston Burr Ridge, IL Dubuque, IA Madison, WI New York San Francisco St. Louis Bangkok Bogotá Caracas Lisbon London Madrid Mexico City Milan New Delhi Seoul Singapore Sydney Taipei Toronto McGraw-Hill Higher Education A Division of The McGraw-Hill Companies SOFTWARE ENGINEERING Published by McGraw-Hill, an imprint of The McGraw-Hill Companies, Inc. 1221 Avenue of the Americas, New York, NY, 10020. Copyright/2001, 1997, 1992, 1987, 1982, by The McGraw-Hill Companies, Inc. All rights reserved. No part of this publication may be reproduced or distributed in any form or by any means, or stored in a database or retrieval system, without the prior written consent of The McGraw-Hill Companies, Inc., inclu