Practical Software Estimation Infosys Press Infosys Press seeks to develop and publish a series of pragmatic books on software engineering and information technologies, both current and emerging. Leveraging Infosys’s extensive global experience helping clients to implement technologies successfully, each book distills critical lessons learned and shows how to apply them in a real-world,enterprise setting.Readers will find throughout this open-ended and broad-ranging series a wealth of practical insights, specific guidance, and informative examples not readily available elsewhere. ■ ■ ■ www.awprofessional.com www.infosys.com Practical Software Estimation Function Point Methods for Insourced and Outsourced Projects M. A. Parthasarathy Foreword by N. R. Narayana Murthy Chairman and Chief Mentor Infosys Technologies Ltd. Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trade- marks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. This document contains material, which has been extracted from the International Function Point Users Group (IFPUG) 4.2 Counting Practices Manual. It is reproduced in this document with the permission of IFPUG (http://www.ifpug.org). The International Function Point Users Group (IFPUG) is a not-for-profit, member run, user group. The IFPUG mission is to be a recognized leader in promoting and encouraging the effective management of application software development and maintenance activities using Function Point Analysis and other software measurement techniques. For more information contact IFPUG at http://www.ifpug.org, or e-mail [email protected], or phone (USA) 609-799-4900, or fax 609-799-7032. The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. The publisher offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales, which may include electronic versions and/or custom covers and content particular to your business, training goals, marketing focus, and branding interests. For more information, please contact U.S. Corporate and Government Sales, (800) 382-3419, [email protected]. For sales outside the United States, please contact International Sales, [email protected]. This Book Is Safari Enabled The Safari®Enabled icon on the cover of your favorite technology book means the book is available through Safari Bookshelf. When you buy this book, you get free access to the online edition for 45 days. Safari Bookshelf is an electronic reference library that lets you easily search thousands of technical books, find code samples, download chapters, and access technical information whenever and wherever you need it. To gain 45-day Safari Enabled access to this book: • Go to http://www.awprofessional.com/safarienabled • Complete the brief registration form • Enter the coupon code W2G8-LHVF-XVZQ-XWFQ-B9GX If you have difficulty registering on Safari Bookshelf or accessing the online edition, please e-mail customer-service @safaribooksonline.com. Visit us on the Web: www.awprofessional.com Library of Congress Cataloging-in-Publication Data Parthasarathy, M. A. Practical software estimation : function point methods for insourced and outsourced projects / M. A. Parthasarathy. p. cm. Includes bibliographical references and index. ISBN 0-321-43910-4 (pbk. : alk. paper) 1. Computer software—Development. 2. Computer software—Development—Estimates. I. Title. QA76.76.D47P356 2007 005.3—dc22 2006036476 Copyright © 2007 M. A. Parthasarathy All rights reserved. Printed in the United States of America. This publication is protected by copyright, and per- mission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, write to Pearson Education, Inc., Rights and Contracts Department, 75 Arlington Street, Suite 300, Boston, MA02116, fax: (617) 848-7047. ISBN 0-321-43910-4 Text printed in the United States on recycled paper at Courier in Stoughton, Massachusetts. First printing, February 2007 To My son, Aravind, and my wife, Rama, who kept pushing me to complete this book. My father, Tiru Narayan, and my mother, Padma, for grooming me to be worthy of many achievements! My fellow Infoscions, for providing me the platform to learn and share. This page intentionally left blank CONTENTS List of Figures .................................................................... xvii List of Tables ...................................................................... xix Foreword............................................................................... xxv Preface .................................................................................. xxvii Acknowledgments ............................................................. xxxiii Chapter 1: Introduction ....................................................................... 1 What Is Software Estimation? .................................................. 1 Ingredients of a Good Estimation ............................................ 6 Activity Scope .......................................................................... 6 Work Environment .................................................................. 6 Consistency ............................................................................. 7 Usage of Tools........................................................................... 7 Learning from Past Experience ................................................ 8 Software Project Estimation ..................................................... 8 Project Scope ............................................................................ 9 Software Environment ............................................................. 10 Team Experience ....................................................................... 11 Software Development Tools .................................................... 11 Continuous Improvement Cycle ............................................. 12 Why Software Estimation? ....................................................... 15 Metrics—Past, Present, and Future ........................................ 16 Importance of Estimation ......................................................... 18 Estimation—Who and How ..................................................... 19 vii viii Contents Conclusion .................................................................................. 21 References ................................................................................... 22 Other Interesting Reading Material ........................................ 23 Chapter 2: Role of Estimation in Software Projects ....................... 25 Software Projects and Estimation ............................................ 25 Project Budget Approval Phase ................................................ 26 Project Contract Phase ............................................................. 27 Project Execution Phase ........................................................... 28 Estimation and Measurement .................................................. 31 Estimation and Measurement Complexities............................. 32 Modularized Estimation .......................................................... 34 Case Study—Modularized Estimation .................................... 37 Large Application Systems ....................................................... 40 Heterogeneous Portfolio of Application Systems ..................... 41 Conclusion .................................................................................. 42 References ................................................................................... 43 Other Interesting Reading Material ........................................ 43 Chapter 3: AStudy of Function Point Analysis .............................. 45 Why Estimation? ........................................................................ 45 What Is an Estimation Method? .............................................. 46 Function Points .......................................................................... 47 What Is a Function Point? ....................................................... 47 Function Point as a Measuring Yardstick ............................... 49 Uses and Benefits of Function Points ...................................... 50 Function Point Analysis ............................................................ 51 FPA—Objectives...................................................................... 53 The FPAModel......................................................................... 55 The FPAProcess ....................................................................... 57 Conclusion .................................................................................. 70 References ................................................................................... 72 Contents ix Chapter 4: Data Functions ................................................................... 73 Introduction ................................................................................ 73 Definition of Files ...................................................................... 74 AData File Example.....................................................................74 Data Functions Defined by IFPUG .......................................... 75 ILFs and EIFs ........................................................................... 76 Embedded Terms ...................................................................... 77 Rules for Identification of ILFs and EIFs ................................. 80 Determining Complexity of ILFs and EIFs .............................. 81 Complexity and FP Count Contributions ................................ 86 Tips to Remember ..................................................................... 88 Conclusion .................................................................................. 95 Identifying ILF/EIF: User View versus Developer View ......... 95 References ................................................................................... 96 Other Interesting Reading Material ........................................ 96 Chapter 5: Transactional Functions ................................................... 97 Introduction ................................................................................ 97 Definition of Transactions ......................................................... 98 Albrecht’s Definition of Transactions ..................................... 100 Ingredients of a Transaction ..................................................... 100 Transactional Functions Defined by IFPUG ........................... 102 EI, EO, and EQ ........................................................................... 104 External Input .......................................................................... 104 External Output ...................................................................... 104 External Inquiry ...................................................................... 104 Embedded Terms ...................................................................... 105 Rules for Identification of EI, EO, and EQ .............................. 107 Complexity and FPCount Contributions ............................. 111 External Inputs ........................................................................ 111 External Outputs/External Inquiries ...................................... 112 Step-by-Step FP Contribution Calculation Process ................. 112 CRUD Transactions ................................................................. 115